mirror of
https://github.com/MetaCubeX/Clash.Meta.git
synced 2025-04-11 04:50:56 +00:00
fix: websocket host and httpupgrade support for trojan and more
This commit is contained in:
parent
a9ce5da09d
commit
02c9086d9d
2 changed files with 17 additions and 5 deletions
|
@ -178,15 +178,23 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
|
|||
}
|
||||
|
||||
switch network {
|
||||
case "ws":
|
||||
case "ws", "httpupgrade":
|
||||
headers := make(map[string]any)
|
||||
wsOpts := make(map[string]any)
|
||||
|
||||
headers["User-Agent"] = RandUserAgent()
|
||||
if host := query.Get("host"); host != "" {
|
||||
headers["Host"] = host
|
||||
}
|
||||
|
||||
wsOpts["path"] = query.Get("path")
|
||||
wsOpts["headers"] = headers
|
||||
|
||||
if network == "httpupgrade" {
|
||||
wsOpts["v2ray-http-upgrade"] = true
|
||||
wsOpts["v2ray-http-upgrade-fast-open"] = true
|
||||
}
|
||||
|
||||
trojan["ws-opts"] = wsOpts
|
||||
|
||||
case "grpc":
|
||||
|
@ -350,6 +358,7 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
|
|||
wsOpts["max-early-data"] = med
|
||||
wsOpts["early-data-header-name"] = "Sec-WebSocket-Protocol"
|
||||
case "httpupgrade":
|
||||
wsOpts["v2ray-http-upgrade"] = true
|
||||
wsOpts["v2ray-http-upgrade-fast-open"] = true
|
||||
}
|
||||
query.Del("ed")
|
||||
|
@ -443,10 +452,12 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
|
|||
} else if strings.Contains(pluginName, "v2ray-plugin") {
|
||||
ss["plugin"] = "v2ray-plugin"
|
||||
ss["plugin-opts"] = map[string]any{
|
||||
"mode": pluginInfo.Get("mode"),
|
||||
"host": pluginInfo.Get("host"),
|
||||
"path": pluginInfo.Get("path"),
|
||||
"tls": strings.Contains(plugin, "tls"),
|
||||
"mode": pluginInfo.Get("mode"),
|
||||
"host": pluginInfo.Get("host"),
|
||||
"path": pluginInfo.Get("path"),
|
||||
"tls": strings.Contains(plugin, "tls"),
|
||||
"mux": pluginInfo.Get("mux") != "0",
|
||||
"v2ray-http-upgrade": strings.Contains(plugin, "httpupgrade"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,6 +118,7 @@ func handleVShareLink(names map[string]int, url *url.URL, scheme string, proxy m
|
|||
wsOpts["max-early-data"] = med
|
||||
wsOpts["early-data-header-name"] = "Sec-WebSocket-Protocol"
|
||||
case "httpupgrade":
|
||||
wsOpts["v2ray-http-upgrade"] = true
|
||||
wsOpts["v2ray-http-upgrade-fast-open"] = true
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue