mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-10-31 12:22:51 +00:00 
			
		
		
		
	quic removed
This commit is contained in:
		
							parent
							
								
									b4baf35ed8
								
							
						
					
					
						commit
						58c721e7d2
					
				
					 18 changed files with 5 additions and 228 deletions
				
			
		|  | @ -268,13 +268,13 @@ func (s *SubJsonService) realityData(rData map[string]interface{}) map[string]in | ||||||
| 	rltyData["spiderX"] = "/" + random.Seq(15) | 	rltyData["spiderX"] = "/" + random.Seq(15) | ||||||
| 	shortIds, ok := rData["shortIds"].([]interface{}) | 	shortIds, ok := rData["shortIds"].([]interface{}) | ||||||
| 	if ok && len(shortIds) > 0 { | 	if ok && len(shortIds) > 0 { | ||||||
| 		rltyData["shortId"] = shortIds | 		rltyData["shortId"] = shortIds[random.Num(len(shortIds))].(string) | ||||||
| 	} else { | 	} else { | ||||||
| 		rltyData["shortId"] = "" | 		rltyData["shortId"] = "" | ||||||
| 	} | 	} | ||||||
| 	serverNames, ok := rData["serverNames"].([]interface{}) | 	serverNames, ok := rData["serverNames"].([]interface{}) | ||||||
| 	if ok && len(serverNames) > 0 { | 	if ok && len(serverNames) > 0 { | ||||||
| 		rltyData["serverName"] = serverNames | 		rltyData["serverName"] = serverNames[random.Num(len(serverNames))].(string) | ||||||
| 	} else { | 	} else { | ||||||
| 		rltyData["serverName"] = "" | 		rltyData["serverName"] = "" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -213,12 +213,6 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string { | ||||||
| 		http, _ := stream["httpSettings"].(map[string]interface{}) | 		http, _ := stream["httpSettings"].(map[string]interface{}) | ||||||
| 		obj["path"], _ = http["path"].(string) | 		obj["path"], _ = http["path"].(string) | ||||||
| 		obj["host"] = searchHost(http) | 		obj["host"] = searchHost(http) | ||||||
| 	case "quic": |  | ||||||
| 		quic, _ := stream["quicSettings"].(map[string]interface{}) |  | ||||||
| 		header := quic["header"].(map[string]interface{}) |  | ||||||
| 		obj["type"], _ = header["type"].(string) |  | ||||||
| 		obj["host"], _ = quic["security"].(string) |  | ||||||
| 		obj["path"], _ = quic["key"].(string) |  | ||||||
| 	case "grpc": | 	case "grpc": | ||||||
| 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | ||||||
| 		obj["path"] = grpc["serviceName"].(string) | 		obj["path"] = grpc["serviceName"].(string) | ||||||
|  | @ -370,12 +364,6 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { | ||||||
| 		http, _ := stream["httpSettings"].(map[string]interface{}) | 		http, _ := stream["httpSettings"].(map[string]interface{}) | ||||||
| 		params["path"] = http["path"].(string) | 		params["path"] = http["path"].(string) | ||||||
| 		params["host"] = searchHost(http) | 		params["host"] = searchHost(http) | ||||||
| 	case "quic": |  | ||||||
| 		quic, _ := stream["quicSettings"].(map[string]interface{}) |  | ||||||
| 		params["quicSecurity"] = quic["security"].(string) |  | ||||||
| 		params["key"] = quic["key"].(string) |  | ||||||
| 		header := quic["header"].(map[string]interface{}) |  | ||||||
| 		params["headerType"] = header["type"].(string) |  | ||||||
| 	case "grpc": | 	case "grpc": | ||||||
| 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | ||||||
| 		params["serviceName"] = grpc["serviceName"].(string) | 		params["serviceName"] = grpc["serviceName"].(string) | ||||||
|  | @ -604,12 +592,6 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string | ||||||
| 		http, _ := stream["httpSettings"].(map[string]interface{}) | 		http, _ := stream["httpSettings"].(map[string]interface{}) | ||||||
| 		params["path"] = http["path"].(string) | 		params["path"] = http["path"].(string) | ||||||
| 		params["host"] = searchHost(http) | 		params["host"] = searchHost(http) | ||||||
| 	case "quic": |  | ||||||
| 		quic, _ := stream["quicSettings"].(map[string]interface{}) |  | ||||||
| 		params["quicSecurity"] = quic["security"].(string) |  | ||||||
| 		params["key"] = quic["key"].(string) |  | ||||||
| 		header := quic["header"].(map[string]interface{}) |  | ||||||
| 		params["headerType"] = header["type"].(string) |  | ||||||
| 	case "grpc": | 	case "grpc": | ||||||
| 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | ||||||
| 		params["serviceName"] = grpc["serviceName"].(string) | 		params["serviceName"] = grpc["serviceName"].(string) | ||||||
|  | @ -839,12 +821,6 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st | ||||||
| 		http, _ := stream["httpSettings"].(map[string]interface{}) | 		http, _ := stream["httpSettings"].(map[string]interface{}) | ||||||
| 		params["path"] = http["path"].(string) | 		params["path"] = http["path"].(string) | ||||||
| 		params["host"] = searchHost(http) | 		params["host"] = searchHost(http) | ||||||
| 	case "quic": |  | ||||||
| 		quic, _ := stream["quicSettings"].(map[string]interface{}) |  | ||||||
| 		params["quicSecurity"] = quic["security"].(string) |  | ||||||
| 		params["key"] = quic["key"].(string) |  | ||||||
| 		header := quic["header"].(map[string]interface{}) |  | ||||||
| 		params["headerType"] = header["type"].(string) |  | ||||||
| 	case "grpc": | 	case "grpc": | ||||||
| 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | 		grpc, _ := stream["grpcSettings"].(map[string]interface{}) | ||||||
| 		params["serviceName"] = grpc["serviceName"].(string) | 		params["serviceName"] = grpc["serviceName"].(string) | ||||||
|  |  | ||||||
|  | @ -471,7 +471,6 @@ class StreamSettings extends CommonClass { | ||||||
|         this.kcp = kcpSettings; |         this.kcp = kcpSettings; | ||||||
|         this.ws = wsSettings; |         this.ws = wsSettings; | ||||||
|         this.http = httpSettings; |         this.http = httpSettings; | ||||||
|         this.quic = quicSettings; |  | ||||||
|         this.grpc = grpcSettings; |         this.grpc = grpcSettings; | ||||||
|         this.httpupgrade = httpupgradeSettings; |         this.httpupgrade = httpupgradeSettings; | ||||||
|         this.splithttp = splithttpSettings; |         this.splithttp = splithttpSettings; | ||||||
|  | @ -523,7 +522,6 @@ class StreamSettings extends CommonClass { | ||||||
|             kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined, |             kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined, | ||||||
|             wsSettings: network === 'ws' ? this.ws.toJson() : undefined, |             wsSettings: network === 'ws' ? this.ws.toJson() : undefined, | ||||||
|             httpSettings: network === 'http' ? this.http.toJson() : undefined, |             httpSettings: network === 'http' ? this.http.toJson() : undefined, | ||||||
|             quicSettings: network === 'quic' ? this.quic.toJson() : undefined, |  | ||||||
|             grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, |             grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, | ||||||
|             httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, |             httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, | ||||||
|             splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, |             splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, | ||||||
|  | @ -591,7 +589,7 @@ class Outbound extends CommonClass { | ||||||
| 
 | 
 | ||||||
|     canEnableTls() { |     canEnableTls() { | ||||||
|         if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false; |         if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false; | ||||||
|         return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network); |         return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //this is used for xtls-rprx-vision
 |     //this is used for xtls-rprx-vision
 | ||||||
|  | @ -707,11 +705,6 @@ class Outbound extends CommonClass { | ||||||
|             stream.http = new HttpStreamSettings( |             stream.http = new HttpStreamSettings( | ||||||
|                 json.path, |                 json.path, | ||||||
|                 json.host); |                 json.host); | ||||||
|         } else if (network === 'quic') { |  | ||||||
|             stream.quic = new QuicStreamSettings( |  | ||||||
|                 json.host ? json.host : 'none', |  | ||||||
|                 json.path, |  | ||||||
|                 json.type ? json.type : 'none'); |  | ||||||
|         } else if (network === 'grpc') { |         } else if (network === 'grpc') { | ||||||
|             stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi'); |             stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi'); | ||||||
|         } else if (network === 'httpupgrade') { |         } else if (network === 'httpupgrade') { | ||||||
|  | @ -753,11 +746,6 @@ class Outbound extends CommonClass { | ||||||
|             stream.ws = new WsStreamSettings(path, host); |             stream.ws = new WsStreamSettings(path, host); | ||||||
|         } else if (type === 'http' || type == 'h2') { |         } else if (type === 'http' || type == 'h2') { | ||||||
|             stream.http = new HttpStreamSettings(path, host); |             stream.http = new HttpStreamSettings(path, host); | ||||||
|         } else if (type === 'quic') { |  | ||||||
|             stream.quic = new QuicStreamSettings( |  | ||||||
|                 url.searchParams.get('quicSecurity') ?? 'none', |  | ||||||
|                 url.searchParams.get('key') ?? '', |  | ||||||
|                 headerType ?? 'none'); |  | ||||||
|         } else if (type === 'grpc') { |         } else if (type === 'grpc') { | ||||||
|             stream.grpc = new GrpcStreamSettings( |             stream.grpc = new GrpcStreamSettings( | ||||||
|                 url.searchParams.get('serviceName') ?? '', |                 url.searchParams.get('serviceName') ?? '', | ||||||
|  |  | ||||||
|  | @ -449,37 +449,6 @@ class HttpStreamSettings extends XrayCommonClass { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class QuicStreamSettings extends XrayCommonClass { |  | ||||||
|     constructor( |  | ||||||
|         security = 'none', |  | ||||||
|         key = RandomUtil.randomSeq(10), |  | ||||||
|         type = 'none' |  | ||||||
|     ) { |  | ||||||
|         super(); |  | ||||||
|         this.security = security; |  | ||||||
|         this.key = key; |  | ||||||
|         this.type = type; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     static fromJson(json = {}) { |  | ||||||
|         return new QuicStreamSettings( |  | ||||||
|             json.security, |  | ||||||
|             json.key, |  | ||||||
|             json.header ? json.header.type : 'none', |  | ||||||
|         ); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     toJson() { |  | ||||||
|         return { |  | ||||||
|             security: this.security, |  | ||||||
|             key: this.key, |  | ||||||
|             header: { |  | ||||||
|                 type: this.type, |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| class GrpcStreamSettings extends XrayCommonClass { | class GrpcStreamSettings extends XrayCommonClass { | ||||||
|     constructor( |     constructor( | ||||||
|         serviceName = "", |         serviceName = "", | ||||||
|  | @ -1092,7 +1061,6 @@ class StreamSettings extends XrayCommonClass { | ||||||
|         kcpSettings = new KcpStreamSettings(), |         kcpSettings = new KcpStreamSettings(), | ||||||
|         wsSettings = new WsStreamSettings(), |         wsSettings = new WsStreamSettings(), | ||||||
|         httpSettings = new HttpStreamSettings(), |         httpSettings = new HttpStreamSettings(), | ||||||
|         quicSettings = new QuicStreamSettings(), |  | ||||||
|         grpcSettings = new GrpcStreamSettings(), |         grpcSettings = new GrpcStreamSettings(), | ||||||
|         httpupgradeSettings = new HTTPUpgradeStreamSettings(), |         httpupgradeSettings = new HTTPUpgradeStreamSettings(), | ||||||
|         splithttpSettings = new SplitHTTPStreamSettings(), |         splithttpSettings = new SplitHTTPStreamSettings(), | ||||||
|  | @ -1109,7 +1077,6 @@ class StreamSettings extends XrayCommonClass { | ||||||
|         this.kcp = kcpSettings; |         this.kcp = kcpSettings; | ||||||
|         this.ws = wsSettings; |         this.ws = wsSettings; | ||||||
|         this.http = httpSettings; |         this.http = httpSettings; | ||||||
|         this.quic = quicSettings; |  | ||||||
|         this.grpc = grpcSettings; |         this.grpc = grpcSettings; | ||||||
|         this.httpupgrade = httpupgradeSettings; |         this.httpupgrade = httpupgradeSettings; | ||||||
|         this.splithttp = splithttpSettings; |         this.splithttp = splithttpSettings; | ||||||
|  | @ -1173,7 +1140,6 @@ class StreamSettings extends XrayCommonClass { | ||||||
|             KcpStreamSettings.fromJson(json.kcpSettings), |             KcpStreamSettings.fromJson(json.kcpSettings), | ||||||
|             WsStreamSettings.fromJson(json.wsSettings), |             WsStreamSettings.fromJson(json.wsSettings), | ||||||
|             HttpStreamSettings.fromJson(json.httpSettings), |             HttpStreamSettings.fromJson(json.httpSettings), | ||||||
|             QuicStreamSettings.fromJson(json.quicSettings), |  | ||||||
|             GrpcStreamSettings.fromJson(json.grpcSettings), |             GrpcStreamSettings.fromJson(json.grpcSettings), | ||||||
|             HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings), |             HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings), | ||||||
|             SplitHTTPStreamSettings.fromJson(json.splithttpSettings), |             SplitHTTPStreamSettings.fromJson(json.splithttpSettings), | ||||||
|  | @ -1194,7 +1160,6 @@ class StreamSettings extends XrayCommonClass { | ||||||
|             kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined, |             kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined, | ||||||
|             wsSettings: network === 'ws' ? this.ws.toJson() : undefined, |             wsSettings: network === 'ws' ? this.ws.toJson() : undefined, | ||||||
|             httpSettings: network === 'http' ? this.http.toJson() : undefined, |             httpSettings: network === 'http' ? this.http.toJson() : undefined, | ||||||
|             quicSettings: network === 'quic' ? this.quic.toJson() : undefined, |  | ||||||
|             grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, |             grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined, | ||||||
|             httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, |             httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined, | ||||||
|             splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, |             splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined, | ||||||
|  | @ -1311,10 +1276,6 @@ class Inbound extends XrayCommonClass { | ||||||
|         return this.network === "kcp"; |         return this.network === "kcp"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     get isQuic() { |  | ||||||
|         return this.network === "quic" |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     get isGrpc() { |     get isGrpc() { | ||||||
|         return this.network === "grpc"; |         return this.network === "grpc"; | ||||||
|     } |     } | ||||||
|  | @ -1393,18 +1354,6 @@ class Inbound extends XrayCommonClass { | ||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     get quicSecurity() { |  | ||||||
|         return this.stream.quic.security; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     get quicKey() { |  | ||||||
|         return this.stream.quic.key; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     get quicType() { |  | ||||||
|         return this.stream.quic.type; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     get kcpType() { |     get kcpType() { | ||||||
|         return this.stream.kcp.type; |         return this.stream.kcp.type; | ||||||
|     } |     } | ||||||
|  | @ -1424,7 +1373,7 @@ class Inbound extends XrayCommonClass { | ||||||
| 
 | 
 | ||||||
|     canEnableTls() { |     canEnableTls() { | ||||||
|         if (![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol)) return false; |         if (![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol)) return false; | ||||||
|         return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade", "splithttp"].includes(this.network); |         return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.network); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //this is used for xtls-rprx-vision
 |     //this is used for xtls-rprx-vision
 | ||||||
|  | @ -1497,10 +1446,6 @@ class Inbound extends XrayCommonClass { | ||||||
|             obj.net = 'h2'; |             obj.net = 'h2'; | ||||||
|             obj.path = this.stream.http.path; |             obj.path = this.stream.http.path; | ||||||
|             obj.host = this.stream.http.host.join(','); |             obj.host = this.stream.http.host.join(','); | ||||||
|         } else if (network === 'quic') { |  | ||||||
|             obj.type = this.stream.quic.type; |  | ||||||
|             obj.host = this.stream.quic.security; |  | ||||||
|             obj.path = this.stream.quic.key; |  | ||||||
|         } else if (network === 'grpc') { |         } else if (network === 'grpc') { | ||||||
|             obj.path = this.stream.grpc.serviceName; |             obj.path = this.stream.grpc.serviceName; | ||||||
|             obj.authority = this.stream.grpc.authority; |             obj.authority = this.stream.grpc.authority; | ||||||
|  | @ -1570,12 +1515,6 @@ class Inbound extends XrayCommonClass { | ||||||
|                 params.set("path", http.path); |                 params.set("path", http.path); | ||||||
|                 params.set("host", http.host); |                 params.set("host", http.host); | ||||||
|                 break; |                 break; | ||||||
|             case "quic": |  | ||||||
|                 const quic = this.stream.quic; |  | ||||||
|                 params.set("quicSecurity", quic.security); |  | ||||||
|                 params.set("key", quic.key); |  | ||||||
|                 params.set("headerType", quic.type); |  | ||||||
|                 break; |  | ||||||
|             case "grpc": |             case "grpc": | ||||||
|                 const grpc = this.stream.grpc; |                 const grpc = this.stream.grpc; | ||||||
|                 params.set("serviceName", grpc.serviceName); |                 params.set("serviceName", grpc.serviceName); | ||||||
|  | @ -1691,12 +1630,6 @@ class Inbound extends XrayCommonClass { | ||||||
|                 params.set("path", http.path); |                 params.set("path", http.path); | ||||||
|                 params.set("host", http.host); |                 params.set("host", http.host); | ||||||
|                 break; |                 break; | ||||||
|             case "quic": |  | ||||||
|                 const quic = this.stream.quic; |  | ||||||
|                 params.set("quicSecurity", quic.security); |  | ||||||
|                 params.set("key", quic.key); |  | ||||||
|                 params.set("headerType", quic.type); |  | ||||||
|                 break; |  | ||||||
|             case "grpc": |             case "grpc": | ||||||
|                 const grpc = this.stream.grpc; |                 const grpc = this.stream.grpc; | ||||||
|                 params.set("serviceName", grpc.serviceName); |                 params.set("serviceName", grpc.serviceName); | ||||||
|  | @ -1779,12 +1712,6 @@ class Inbound extends XrayCommonClass { | ||||||
|                 params.set("path", http.path); |                 params.set("path", http.path); | ||||||
|                 params.set("host", http.host); |                 params.set("host", http.host); | ||||||
|                 break; |                 break; | ||||||
|             case "quic": |  | ||||||
|                 const quic = this.stream.quic; |  | ||||||
|                 params.set("quicSecurity", quic.security); |  | ||||||
|                 params.set("key", quic.key); |  | ||||||
|                 params.set("headerType", quic.type); |  | ||||||
|                 break; |  | ||||||
|             case "grpc": |             case "grpc": | ||||||
|                 const grpc = this.stream.grpc; |                 const grpc = this.stream.grpc; | ||||||
|                 params.set("serviceName", grpc.serviceName); |                 params.set("serviceName", grpc.serviceName); | ||||||
|  |  | ||||||
|  | @ -239,7 +239,6 @@ | ||||||
|             <a-select-option value="kcp">mKCP</a-select-option> |             <a-select-option value="kcp">mKCP</a-select-option> | ||||||
|             <a-select-option value="ws">WebSocket</a-select-option> |             <a-select-option value="ws">WebSocket</a-select-option> | ||||||
|             <a-select-option value="http">H2</a-select-option> |             <a-select-option value="http">H2</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-option value="httpupgrade">HTTPUpgrade</a-select-option> |             <a-select-option value="httpupgrade">HTTPUpgrade</a-select-option> | ||||||
|             <a-select-option value="splithttp">SplitHTTP</a-select-option> |             <a-select-option value="splithttp">SplitHTTP</a-select-option> | ||||||
|  | @ -318,30 +317,6 @@ | ||||||
|           </a-form-item> |           </a-form-item> | ||||||
|         </template> |         </template> | ||||||
|          |          | ||||||
|         <!-- quic --> |  | ||||||
|         <template v-if="outbound.stream.network === 'quic'"> |  | ||||||
|           <a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'> |  | ||||||
|             <a-select v-model="outbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme"> |  | ||||||
|               <a-select-option value="none">None</a-select-option> |  | ||||||
|               <a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option> |  | ||||||
|               <a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option> |  | ||||||
|             </a-select> |  | ||||||
|           </a-form-item> |  | ||||||
|           <a-form-item label='{{ i18n "password" }}'> |  | ||||||
|             <a-input v-model.trim="outbound.stream.quic.key"></a-input> |  | ||||||
|           </a-form-item> |  | ||||||
|           <a-form-item label='{{ i18n "camouflage" }}'> |  | ||||||
|             <a-select v-model="outbound.stream.quic.type" :dropdown-class-name="themeSwitcher.currentTheme"> |  | ||||||
|               <a-select-option value="none">None</a-select-option> |  | ||||||
|               <a-select-option value="srtp">SRTP</a-select-option> |  | ||||||
|               <a-select-option value="utp">uTP</a-select-option> |  | ||||||
|               <a-select-option value="wechat-video">WeChat</a-select-option> |  | ||||||
|               <a-select-option value="dtls">DTLS 1.2</a-select-option> |  | ||||||
|               <a-select-option value="wireguard">WireGuard</a-select-option> |  | ||||||
|             </a-select> |  | ||||||
|           </a-form-item> |  | ||||||
|         </template> |  | ||||||
| 
 |  | ||||||
|         <!-- grpc --> |         <!-- grpc --> | ||||||
|         <template v-if="outbound.stream.network === 'grpc'"> |         <template v-if="outbound.stream.network === 'grpc'"> | ||||||
|           <a-form-item label='Service Name'> |           <a-form-item label='Service Name'> | ||||||
|  |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| {{define "form/streamQUIC"}} |  | ||||||
| <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }"> |  | ||||||
|     <a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'> |  | ||||||
|         <a-select v-model="inbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme"> |  | ||||||
|             <a-select-option value="none">None</a-select-option> |  | ||||||
|             <a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option> |  | ||||||
|             <a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option> |  | ||||||
|         </a-select> |  | ||||||
|     </a-form-item> |  | ||||||
|     <a-form-item> |  | ||||||
|         <template slot="label"> |  | ||||||
|             <a-tooltip> |  | ||||||
|                 <template slot="title"> |  | ||||||
|                     <span>{{ i18n "reset" }}</span> |  | ||||||
|                 </template> |  | ||||||
|                 {{ i18n "password" }} |  | ||||||
|                 <a-icon @click="inbound.stream.quic.key = RandomUtil.randomSeq(10)"type="sync"> </a-icon> |  | ||||||
|             </a-tooltip> |  | ||||||
|         </template> |  | ||||||
|         <a-input v-model.trim="inbound.stream.quic.key"></a-input> |  | ||||||
|     </a-form-item> |  | ||||||
|     <a-form-item label='{{ i18n "camouflage" }}'> |  | ||||||
|         <a-select v-model="inbound.stream.quic.type" style="width: 50%" :dropdown-class-name="themeSwitcher.currentTheme"> |  | ||||||
|             <a-select-option value="none">None</a-select-option> |  | ||||||
|             <a-select-option value="srtp">SRTP</a-select-option> |  | ||||||
|             <a-select-option value="utp">uTP</a-select-option> |  | ||||||
|             <a-select-option value="wechat-video">WeChat</a-select-option> |  | ||||||
|             <a-select-option value="dtls">DTLS 1.2</a-select-option> |  | ||||||
|             <a-select-option value="wireguard">WireGuard</a-select-option> |  | ||||||
|         </a-select> |  | ||||||
|     </a-form-item> |  | ||||||
| </a-form> |  | ||||||
| {{end}} |  | ||||||
|  | @ -8,7 +8,6 @@ | ||||||
|             <a-select-option value="kcp">mKCP</a-select-option> |             <a-select-option value="kcp">mKCP</a-select-option> | ||||||
|             <a-select-option value="ws">WebSocket</a-select-option> |             <a-select-option value="ws">WebSocket</a-select-option> | ||||||
|             <a-select-option value="http">H2</a-select-option> |             <a-select-option value="http">H2</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-option value="httpupgrade">HTTPUpgrade</a-select-option> |             <a-select-option value="httpupgrade">HTTPUpgrade</a-select-option> | ||||||
|             <a-select-option value="splithttp">SplitHTTP</a-select-option> |             <a-select-option value="splithttp">SplitHTTP</a-select-option> | ||||||
|  | @ -36,11 +35,6 @@ | ||||||
|     {{template "form/streamHTTP"}} |     {{template "form/streamHTTP"}} | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <!-- quic --> |  | ||||||
| <template v-if="inbound.stream.network === 'quic'"> |  | ||||||
|     {{template "form/streamQUIC"}} |  | ||||||
| </template> |  | ||||||
| 
 |  | ||||||
| <!-- grpc --> | <!-- grpc --> | ||||||
| <template v-if="inbound.stream.network === 'grpc'"> | <template v-if="inbound.stream.network === 'grpc'"> | ||||||
|     {{template "form/streamGRPC"}} |     {{template "form/streamGRPC"}} | ||||||
|  |  | ||||||
|  | @ -58,26 +58,6 @@ | ||||||
|               </td> |               </td> | ||||||
|             </tr> |             </tr> | ||||||
|           </template> |           </template> | ||||||
|           <template v-if="inbound.isQuic"> |  | ||||||
|             <tr> |  | ||||||
|               <td>quic {{ i18n "encryption" }}</td> |  | ||||||
|               <td> |  | ||||||
|                 <a-tag>[[ inbound.quicSecurity ]]</a-tag> |  | ||||||
|               </td> |  | ||||||
|             </tr> |  | ||||||
|             <tr> |  | ||||||
|               <td>quic {{ i18n "password" }}</td> |  | ||||||
|               <td> |  | ||||||
|                 <a-tag>[[ inbound.quicKey ]]</a-tag> |  | ||||||
|               </td> |  | ||||||
|             </tr> |  | ||||||
|             <tr> |  | ||||||
|               <td>quic {{ i18n "camouflage" }}</td> |  | ||||||
|               <td> |  | ||||||
|                 <a-tag>[[ inbound.quicType ]]</a-tag> |  | ||||||
|               </td> |  | ||||||
|             </tr> |  | ||||||
|           </template> |  | ||||||
|           <template v-if="inbound.isKcp"> |           <template v-if="inbound.isKcp"> | ||||||
|             <tr> |             <tr> | ||||||
|               <td>kcp {{ i18n "encryption" }}</td> |               <td>kcp {{ i18n "encryption" }}</td> | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Request Header" | "requestHeader" = "Request Header" | ||||||
| "responseHeader" = "Response Header" | "responseHeader" = "Response Header" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Encryption" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Panel Settings" | "title" = "Panel Settings" | ||||||
| "save" = "Save" | "save" = "Save" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Encabezado de solicitud" | "requestHeader" = "Encabezado de solicitud" | ||||||
| "responseHeader" = "Encabezado de respuesta" | "responseHeader" = "Encabezado de respuesta" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Cifrado" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Configuraciones" | "title" = "Configuraciones" | ||||||
| "save" = "Guardar" | "save" = "Guardar" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "سربرگ درخواست" | "requestHeader" = "سربرگ درخواست" | ||||||
| "responseHeader" = "سربرگ پاسخ" | "responseHeader" = "سربرگ پاسخ" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "رمزنگاری" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "تنظیمات پنل" | "title" = "تنظیمات پنل" | ||||||
| "save" = "ذخیره" | "save" = "ذخیره" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Header Permintaan" | "requestHeader" = "Header Permintaan" | ||||||
| "responseHeader" = "Header Respons" | "responseHeader" = "Header Respons" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Enkripsi" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Pengaturan Panel" | "title" = "Pengaturan Panel" | ||||||
| "save" = "Simpan" | "save" = "Simpan" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Cabeçalho da Requisição" | "requestHeader" = "Cabeçalho da Requisição" | ||||||
| "responseHeader" = "Cabeçalho da Resposta" | "responseHeader" = "Cabeçalho da Resposta" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Criptografia" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Configurações do Painel" | "title" = "Configurações do Painel" | ||||||
| "save" = "Salvar" | "save" = "Salvar" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Заголовок запроса" | "requestHeader" = "Заголовок запроса" | ||||||
| "responseHeader" = "Заголовок ответа" | "responseHeader" = "Заголовок ответа" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Шифрование" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Настройки" | "title" = "Настройки" | ||||||
| "save" = "Сохранить" | "save" = "Сохранить" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "İstek Başlığı" | "requestHeader" = "İstek Başlığı" | ||||||
| "responseHeader" = "Yanıt Başlığı" | "responseHeader" = "Yanıt Başlığı" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Şifreleme" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Panel Ayarları" | "title" = "Panel Ayarları" | ||||||
| "save" = "Kaydet" | "save" = "Kaydet" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Заголовок запиту" | "requestHeader" = "Заголовок запиту" | ||||||
| "responseHeader" = "Заголовок відповіді" | "responseHeader" = "Заголовок відповіді" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Шифрування" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Параметри панелі" | "title" = "Параметри панелі" | ||||||
| "save" = "Зберегти" | "save" = "Зберегти" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "Header yêu cầu" | "requestHeader" = "Header yêu cầu" | ||||||
| "responseHeader" = "Header phản hồi" | "responseHeader" = "Header phản hồi" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "Mã hóa" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "Cài đặt" | "title" = "Cài đặt" | ||||||
| "save" = "Lưu" | "save" = "Lưu" | ||||||
|  |  | ||||||
|  | @ -225,9 +225,6 @@ | ||||||
| "requestHeader" = "请求头" | "requestHeader" = "请求头" | ||||||
| "responseHeader" = "响应头" | "responseHeader" = "响应头" | ||||||
| 
 | 
 | ||||||
| [pages.inbounds.stream.quic] |  | ||||||
| "encryption" = "加密" |  | ||||||
| 
 |  | ||||||
| [pages.settings] | [pages.settings] | ||||||
| "title" = "面板设置" | "title" = "面板设置" | ||||||
| "save" = "保存" | "save" = "保存" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 mhsanaei
						mhsanaei