From 1fe1fda285437b5c9e866d8b4923c10600ff1f91 Mon Sep 17 00:00:00 2001 From: H1JK Date: Fri, 3 Jun 2022 00:42:46 +0000 Subject: [PATCH] Add PacketEncoding parameter --- Netch/Servers/V2ray/V2rayConfig.cs | 4 ++++ Netch/Servers/V2ray/V2rayConfigUtils.cs | 6 ++++++ Netch/Servers/V2ray/V2rayUtils.cs | 2 ++ Netch/Servers/VLESS/VLESSForm.cs | 5 +++++ Netch/Servers/VMess/VMessForm.cs | 6 +++--- Netch/Servers/VMess/VMessServer.cs | 2 +- build.ps1 | 2 +- 7 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Netch/Servers/V2ray/V2rayConfig.cs b/Netch/Servers/V2ray/V2rayConfig.cs index 349c1430..3d6dcdc9 100644 --- a/Netch/Servers/V2ray/V2rayConfig.cs +++ b/Netch/Servers/V2ray/V2rayConfig.cs @@ -31,6 +31,8 @@ public class Outbound public StreamSettings streamSettings { get; set; } + public string packetEncoding { get; set; } + public Mux mux { get; set; } } @@ -54,6 +56,8 @@ public class Mux { public bool enabled { get; set; } + public string packetEncoding { get; set; } + public int concurrency { get; set; } } diff --git a/Netch/Servers/V2ray/V2rayConfigUtils.cs b/Netch/Servers/V2ray/V2rayConfigUtils.cs index 2e54838a..f769a74b 100644 --- a/Netch/Servers/V2ray/V2rayConfigUtils.cs +++ b/Netch/Servers/V2ray/V2rayConfigUtils.cs @@ -89,6 +89,9 @@ public static class V2rayConfigUtils } }; + outbound.packetEncoding = vless.PacketEncoding ?? "none"; + outbound.mux.packetEncoding = vless.PacketEncoding ?? "none"; + outbound.streamSettings = boundStreamSettings(vless); if (vless.TLSSecureType == "xtls") @@ -125,6 +128,9 @@ public static class V2rayConfigUtils } }; + outbound.packetEncoding = vmess.PacketEncoding ?? "none"; + outbound.mux.packetEncoding = vmess.PacketEncoding ?? "none"; + outbound.streamSettings = boundStreamSettings(vmess); outbound.mux.enabled = vmess.UseMux ?? Global.Settings.V2RayConfig.UseMux; diff --git a/Netch/Servers/V2ray/V2rayUtils.cs b/Netch/Servers/V2ray/V2rayUtils.cs index 234e2e9c..f3202cc8 100644 --- a/Netch/Servers/V2ray/V2rayUtils.cs +++ b/Netch/Servers/V2ray/V2rayUtils.cs @@ -22,6 +22,7 @@ public static class V2rayUtils var parameter = HttpUtility.ParseQueryString(text.Split('?')[1]); text = text.Substring(0, text.IndexOf("?", StringComparison.Ordinal)); server.TransferProtocol = parameter.Get("type") ?? "tcp"; + server.PacketEncoding = parameter.Get("packetEncoding") ?? "xudp"; server.EncryptMethod = parameter.Get("encryption") ?? scheme switch { "vless" => "none", _ => "auto" }; switch (server.TransferProtocol) { @@ -79,6 +80,7 @@ public static class V2rayUtils // protocol-specific fields parameter.Add("type", server.TransferProtocol); parameter.Add("encryption", server.EncryptMethod); + parameter.Add("packetEncoding", server.PacketEncoding); // transport-specific fields switch (server.TransferProtocol) diff --git a/Netch/Servers/VLESS/VLESSForm.cs b/Netch/Servers/VLESS/VLESSForm.cs index fe8365ab..9580a3bf 100644 --- a/Netch/Servers/VLESS/VLESSForm.cs +++ b/Netch/Servers/VLESS/VLESSForm.cs @@ -23,6 +23,11 @@ internal class VLESSForm : ServerForm VLESSGlobal.TransferProtocols, s => server.TransferProtocol = s, server.TransferProtocol); + CreateComboBox("PacketEncoding", + "Packet Encoding", + VMessGlobal.PacketEncodings, + s => server.PacketEncoding = s, + server.PacketEncoding); CreateComboBox("FakeType", "Fake Type", VLESSGlobal.FakeTypes, s => server.FakeType = s, server.FakeType); CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host); diff --git a/Netch/Servers/VMess/VMessForm.cs b/Netch/Servers/VMess/VMessForm.cs index 3d08e197..30df79ac 100644 --- a/Netch/Servers/VMess/VMessForm.cs +++ b/Netch/Servers/VMess/VMessForm.cs @@ -20,9 +20,9 @@ public class VMessForm : ServerForm server.TransferProtocol); CreateComboBox("PacketEncoding", "Packet Encoding", - VMessGlobal.TransferProtocols, - s => server.TransferProtocol = s, - server.TransferProtocol); + VMessGlobal.PacketEncodings, + s => server.PacketEncoding = s, + server.PacketEncoding); CreateComboBox("FakeType", "Fake Type", VMessGlobal.FakeTypes, s => server.FakeType = s, server.FakeType); diff --git a/Netch/Servers/VMess/VMessServer.cs b/Netch/Servers/VMess/VMessServer.cs index 00e355fd..500ab6e6 100644 --- a/Netch/Servers/VMess/VMessServer.cs +++ b/Netch/Servers/VMess/VMessServer.cs @@ -125,7 +125,7 @@ public class VMessGlobal "none", "packet", // requires v2fly/v2ray-core v5.0.2+ or SagerNet/v2ray-core "xudp" // requires XTLS/Xray-core or SagerNet/v2ray-core - } + }; /// /// V2Ray 传输协议 diff --git a/build.ps1 b/build.ps1 index 6887e60a..d67d014c 100644 --- a/build.ps1 +++ b/build.ps1 @@ -60,7 +60,7 @@ if ( -Not ( Test-Path ".\Netch\bin\$Configuration" ) ) { -c $Configuration ` -r 'win-x64' ` -p:Platform='x64' ` - -p:SelfContained=$SelfContained ` + -p:SelfContained=$False ` -p:PublishTrimmed=$PublishReadyToRun ` -p:PublishSingleFile=$PublishSingleFile ` -p:PublishReadyToRun=$PublishReadyToRun `