Merge pull request #113 from MHSanaei/dev

Dev
This commit is contained in:
Ho3ein 2023-03-27 03:15:49 +03:30 committed by GitHub
commit 3da6c4d7d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 43 additions and 42 deletions

View file

@ -1160,7 +1160,7 @@ class Inbound extends XrayCommonClass {
} }
if (this.XTLS) { if (this.XTLS) {
params.set("security", "tls"); params.set("security", "xtls");
params.set("alpn", this.stream.tls.alpn); params.set("alpn", this.stream.tls.alpn);
if(this.stream.tls.settings[0].allowInsecure){ if(this.stream.tls.settings[0].allowInsecure){
params.set("allowInsecure", "1"); params.set("allowInsecure", "1");
@ -1261,7 +1261,7 @@ class Inbound extends XrayCommonClass {
} }
if (this.XTLS) { if (this.XTLS) {
params.set("security", "tls"); params.set("security", "xtls");
params.set("alpn", this.stream.tls.alpn); params.set("alpn", this.stream.tls.alpn);
if(this.stream.tls.settings[0].allowInsecure){ if(this.stream.tls.settings[0].allowInsecure){
params.set("allowInsecure", "1"); params.set("allowInsecure", "1");

View file

@ -8,7 +8,7 @@
<a-select-option value="ws">WS</a-select-option> <a-select-option value="ws">WS</a-select-option>
<a-select-option value="http">HTTP</a-select-option> <a-select-option value="http">HTTP</a-select-option>
<a-select-option value="quic">QUIC</a-select-option> <a-select-option value="quic">QUIC</a-select-option>
<a-select-option value="grpc">GRPC</a-select-option> <a-select-option value="grpc">gRPC</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-form> </a-form>

View file

@ -172,7 +172,7 @@
</a-col> </a-col>
<a-col :sm="24" :md="12"> <a-col :sm="24" :md="12">
<a-card hoverable :class="siderDrawer.isDarkTheme ? darkClass : ''"> <a-card hoverable :class="siderDrawer.isDarkTheme ? darkClass : ''">
x-ui: <a href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">3x-ui v{{ .cur_ver }}</a-tag></a> 3x-ui: <a href="https://github.com/MHSanaei/3x-ui/releases" target="_blank"><a-tag color="green">v{{ .cur_ver }}</a-tag></a>
<a href="https://t.me/panel3xui" target="_blank"><a-tag color="green">Telegram</a-tag></a> <a href="https://t.me/panel3xui" target="_blank"><a-tag color="green">Telegram</a-tag></a>
<a-tag color="blue" style="cursor: pointer;" @click="openLogs">Log Reports</a-tag> <a-tag color="blue" style="cursor: pointer;" @click="openLogs">Log Reports</a-tag>
</a-card> </a-card>

View file

@ -154,14 +154,16 @@ func GetInboundClientIps(clientEmail string) (*model.InboundClientIps, error) {
} }
return InboundClientIps, nil return InboundClientIps, nil
} }
func addInboundClientIps(clientEmail string,ips []string) error { func addInboundClientIps(clientEmail string, ips []string) error {
inboundClientIps := &model.InboundClientIps{} inboundClientIps := &model.InboundClientIps{}
jsonIps, err := json.Marshal(ips) jsonIps, err := json.Marshal(ips)
checkError(err) checkError(err)
// Trim any leading/trailing whitespace from clientEmail
clientEmail = strings.TrimSpace(clientEmail)
inboundClientIps.ClientEmail = clientEmail inboundClientIps.ClientEmail = clientEmail
inboundClientIps.Ips = string(jsonIps) inboundClientIps.Ips = string(jsonIps)
db := database.GetDB() db := database.GetDB()
tx := db.Begin() tx := db.Begin()
@ -247,47 +249,46 @@ func GetInboundByEmail(clientEmail string) (*model.Inbound, error) {
return inbounds, nil return inbounds, nil
} }
func LimitDevice(){ func LimitDevice() {
var destIp, destPort, srcIp, srcPort string
localIp,err := LocalIP()
checkError(err) localIp,err := LocalIP()
checkError(err)
c := cmd.NewCmd("bash","-c","ss --tcp | grep -E '" + IPsToRegex(localIp) + "'| awk '{if($1==\"ESTAB\") print $4,$5;}'","| sort | uniq -c | sort -nr | head") c := cmd.NewCmd("bash","-c","ss --tcp | grep -E '" + IPsToRegex(localIp) + "'| awk '{if($1==\"ESTAB\") print $4,$5;}'","| sort | uniq -c | sort -nr | head")
<-c.Start() <-c.Start()
if len(c.Status().Stdout) > 0 { if len(c.Status().Stdout) > 0 {
ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`) ipRegx, _ := regexp.Compile(`[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+`)
portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`) portRegx, _ := regexp.Compile(`(?:(:))([0-9]..[^.][0-9]+)`)
for _, row := range c.Status().Stdout { for _, row := range c.Status().Stdout {
data := strings.Split(row," ")
destIp,destPort,srcIp,srcPort := "","","",""
destIp = string(ipRegx.FindString(data[0])) data := strings.Split(row," ")
destPort = portRegx.FindString(data[0]) if len(data) < 2 {
destPort = strings.Replace(destPort,":","",-1) continue // Skip this row if it doesn't have at least two elements
}
srcIp = string(ipRegx.FindString(data[1]))
srcPort = portRegx.FindString(data[1]) destIp = string(ipRegx.FindString(data[0]))
srcPort = strings.Replace(srcPort,":","",-1) destPort = portRegx.FindString(data[0])
destPort = strings.Replace(destPort,":","",-1)
if(contains(disAllowedIps,srcIp)){ srcIp = string(ipRegx.FindString(data[1]))
dropCmd := cmd.NewCmd("bash","-c","ss -K dport = " + srcPort) srcPort = portRegx.FindString(data[1])
dropCmd.Start() srcPort = strings.Replace(srcPort,":","",-1)
logger.Debug("request droped : ",srcIp,srcPort,"to",destIp,destPort) if contains(disAllowedIps,srcIp){
} dropCmd := cmd.NewCmd("bash","-c","ss -K dport = " + srcPort)
} dropCmd.Start()
}
logger.Debug("request droped : ",srcIp,srcPort,"to",destIp,destPort)
}
}
}
} }
func LocalIP() ([]string, error) { func LocalIP() ([]string, error) {
// get machine ips // get machine ips

View file

@ -170,7 +170,7 @@
"restartPanelDesc" = "Are you sure you want to restart the panel? Click OK to restart after 3 seconds. If you cannot access the panel after restarting, please go to the server to view the panel log information" "restartPanelDesc" = "Are you sure you want to restart the panel? Click OK to restart after 3 seconds. If you cannot access the panel after restarting, please go to the server to view the panel log information"
"panelConfig" = "Panel Configuration" "panelConfig" = "Panel Configuration"
"userSetting" = "User Setting" "userSetting" = "User Setting"
"xrayConfiguration" = "xray Configuration" "xrayConfiguration" = "Xray Configuration"
"TGReminder" = "TG Reminder Related Settings" "TGReminder" = "TG Reminder Related Settings"
"otherSetting" = "Other Setting" "otherSetting" = "Other Setting"
"panelListeningIP" = "Panel listening IP" "panelListeningIP" = "Panel listening IP"

View file

@ -74,8 +74,8 @@
"xraySwitch" = "تغییر ورژن" "xraySwitch" = "تغییر ورژن"
"xraySwitchClick" = "ورژن مورد نظر را انتخاب کنید" "xraySwitchClick" = "ورژن مورد نظر را انتخاب کنید"
"xraySwitchClickDesk" = "لطفا با دقت انتخاب کنید ، در صورت انتخاب اشتباه امکان قطعی سیستم وجود دارد ." "xraySwitchClickDesk" = "لطفا با دقت انتخاب کنید ، در صورت انتخاب اشتباه امکان قطعی سیستم وجود دارد ."
"operationHours" = "ساعت فعال" "operationHours" = "مدت فعالیت"
"operationHoursDesc" = "ساعت فعال بعد از شروع سیستم" "operationHoursDesc" = "مدت فعالیت سیستم بعد از روشن شدن"
"systemLoad" = "بار روی سیستم" "systemLoad" = "بار روی سیستم"
"connectionCount" = "تعداد کانکشن ها" "connectionCount" = "تعداد کانکشن ها"
"connectionCountDesc" = "تعداد کانکشن ها برای کل شبکه" "connectionCountDesc" = "تعداد کانکشن ها برای کل شبکه"
@ -83,7 +83,7 @@
"downSpeed" = "سرعت دانلود در حال حاضر سیستم" "downSpeed" = "سرعت دانلود در حال حاضر سیستم"
"totalSent" = "جمع کل ترافیک آپلود مصرفی" "totalSent" = "جمع کل ترافیک آپلود مصرفی"
"totalReceive" = "جمع کل ترافیک دانلود مصرفی" "totalReceive" = "جمع کل ترافیک دانلود مصرفی"
"xraySwitchVersionDialog" = "تغییر ورژن Xray" "xraySwitchVersionDialog" = "تغییر ورژن"
"xraySwitchVersionDialogDesc" = "آیا از تغییر ورژن مطمئن هستین" "xraySwitchVersionDialogDesc" = "آیا از تغییر ورژن مطمئن هستین"
"dontRefreshh" = "در حال نصب ، لطفا رفرش نکنید " "dontRefreshh" = "در حال نصب ، لطفا رفرش نکنید "
@ -128,7 +128,7 @@
"keyContent" = "محتوای Private.key" "keyContent" = "محتوای Private.key"
"clickOnQRcode" = "برای کپی بر روی کد تصویری کلیک کنید" "clickOnQRcode" = "برای کپی بر روی کد تصویری کلیک کنید"
"client" = "کاربر" "client" = "کاربر"
"export" = "استخراج لینکها" "export" = "استخراج لینکها"
[pages.client] [pages.client]
"add" = "کاربر جدید" "add" = "کاربر جدید"