diff --git a/Netch/Servers/VMess/VMessForm.cs b/Netch/Servers/VMess/VMessForm.cs index 956d7ba9..3d08e197 100644 --- a/Netch/Servers/VMess/VMessForm.cs +++ b/Netch/Servers/VMess/VMessForm.cs @@ -18,6 +18,12 @@ public class VMessForm : ServerForm VMessGlobal.TransferProtocols, s => server.TransferProtocol = s, server.TransferProtocol); + CreateComboBox("PacketEncoding", + "Packet Encoding", + VMessGlobal.TransferProtocols, + s => server.TransferProtocol = s, + server.TransferProtocol); + CreateComboBox("FakeType", "Fake Type", VMessGlobal.FakeTypes, s => server.FakeType = s, server.FakeType); CreateTextBox("Host", "Host", s => true, s => server.Host = s, server.Host); diff --git a/Netch/Servers/VMess/VMessServer.cs b/Netch/Servers/VMess/VMessServer.cs index 4bc9f36a..00e355fd 100644 --- a/Netch/Servers/VMess/VMessServer.cs +++ b/Netch/Servers/VMess/VMessServer.cs @@ -10,7 +10,7 @@ public class VMessServer : Server public override string MaskedData() { - var maskedData = $"{EncryptMethod} + {TransferProtocol} + {FakeType}"; + var maskedData = $"{EncryptMethod} + {TransferProtocol} + {PacketEncoding} + {FakeType}"; switch (TransferProtocol) { case "tcp": @@ -49,6 +49,11 @@ public class VMessServer : Server /// public virtual string TransferProtocol { get; set; } = VMessGlobal.TransferProtocols[0]; + /// + /// 包传输格式 + /// + public virtual string PacketEncoding { get; set; } = VMessGlobal.PacketEncodings[2]; + /// /// 伪装类型 /// @@ -115,6 +120,13 @@ public class VMessGlobal "chacha20-poly1305" }; + public static readonly List PacketEncodings = new() + { + "none", + "packet", // requires v2fly/v2ray-core v5.0.2+ or SagerNet/v2ray-core + "xudp" // requires XTLS/Xray-core or SagerNet/v2ray-core + } + /// /// V2Ray 传输协议 ///