mirror of
https://github.com/netchx/netch.git
synced 2026-03-14 17:43:18 +08:00
Add gRPC support
This commit is contained in:
@@ -51,6 +51,8 @@
|
||||
"Path": "路径",
|
||||
"QUIC Security": "QUIC 加密方式",
|
||||
"QUIC Secret": "QUIC 加密密钥",
|
||||
"GRPC Mode": "QUIC 模式",
|
||||
"GRPC ServiceName": "QUIC 服务名称",
|
||||
"TLS Secure": "TLS 底层传输安全",
|
||||
"Use Mux": "Mux 多路复用",
|
||||
"Encrypt Method": "加密方式",
|
||||
|
||||
@@ -183,6 +183,8 @@ namespace Netch.Servers.Models
|
||||
public QuicSettings quicSettings { get; set; }
|
||||
|
||||
public TlsSettings xtlsSettings { get; set; }
|
||||
|
||||
public GrpcSettings grpcSettings { get; set; }
|
||||
}
|
||||
|
||||
public class TlsSettings
|
||||
@@ -278,4 +280,9 @@ namespace Netch.Servers.Models
|
||||
|
||||
public Header header { get; set; }
|
||||
}
|
||||
|
||||
public class GrpcSettings
|
||||
{
|
||||
public string serviceName { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -310,6 +310,14 @@ namespace Netch.Servers.Utils
|
||||
|
||||
streamSettings.quicSettings = quicSettings;
|
||||
break;
|
||||
case "grpc":
|
||||
var grpcSettings = new GrpcSettings
|
||||
{
|
||||
serviceName = server.GRPCServiceName
|
||||
};
|
||||
|
||||
streamSettings.grpcSettings = grpcSettings;
|
||||
break;
|
||||
default:
|
||||
if (server.FakeType == "http")
|
||||
{
|
||||
|
||||
@@ -41,5 +41,7 @@ namespace Netch.Servers
|
||||
public static List<string> TransferProtocols => VMessGlobal.TransferProtocols;
|
||||
|
||||
public static List<string> QUIC => VMessGlobal.QUIC;
|
||||
|
||||
public static List<string> GRPCModes => VMessGlobal.GRPCModes;
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,8 @@ namespace Netch.Servers.VLESSForm
|
||||
CreateTextBox("Path", "Path", s => true, s => server.Path = s, server.Path);
|
||||
CreateComboBox("QUICSecurity", "QUIC Security", VLESSGlobal.QUIC, s => server.QUICSecure = s, server.QUICSecure);
|
||||
CreateTextBox("QUICSecret", "QUIC Secret", s => true, s => server.QUICSecret = s, server.QUICSecret);
|
||||
CreateComboBox("GRPCMode", "GRPC Mode", VLESSGlobal.GRPCModes, s => server.GRPCMode = s, server.GRPCMode);
|
||||
CreateTextBox("GRPCServiceName", "GRPC ServiceName", s => true, s => server.GRPCServiceName = s, server.GRPCServiceName);
|
||||
CreateComboBox("UseMux",
|
||||
"Use Mux",
|
||||
new List<string> { "", "true", "false" },
|
||||
|
||||
@@ -23,6 +23,8 @@ namespace Netch.Servers.VMess.Form
|
||||
CreateTextBox("Path", "Path", s => true, s => server.Path = s, server.Path);
|
||||
CreateComboBox("QUICSecurity", "QUIC Security", VMessGlobal.QUIC, s => server.QUICSecure = s, server.QUICSecure);
|
||||
CreateTextBox("QUICSecret", "QUIC Secret", s => true, s => server.QUICSecret = s, server.QUICSecret);
|
||||
CreateComboBox("GRPCMode", "GRPC Mode", VMessGlobal.GRPCModes, s => server.GRPCMode = s, server.GRPCMode);
|
||||
CreateTextBox("GRPCServiceName", "GRPC ServiceName", s => true, s => server.GRPCServiceName = s, server.GRPCServiceName);
|
||||
CreateComboBox("UseMux",
|
||||
"Use Mux",
|
||||
new List<string> { "", "true", "false" },
|
||||
|
||||
@@ -54,6 +54,16 @@ namespace Netch.Servers.VMess
|
||||
/// </summary>
|
||||
public string? QUICSecret { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// GRPC 服务名称
|
||||
/// </summary>
|
||||
public string? GRPCServiceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// GRPC 模式
|
||||
/// </summary>
|
||||
public string? GRPCMode { get; set; } = VMessGlobal.GRPCModes[0];
|
||||
|
||||
/// <summary>
|
||||
/// TLS 底层传输安全
|
||||
/// </summary>
|
||||
@@ -92,6 +102,12 @@ namespace Netch.Servers.VMess
|
||||
"chacha20-poly1305"
|
||||
};
|
||||
|
||||
public static readonly List<string> GRPCModes = new List<string>()
|
||||
{
|
||||
"gun",
|
||||
"multi"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// V2Ray 传输协议
|
||||
/// </summary>
|
||||
@@ -101,7 +117,8 @@ namespace Netch.Servers.VMess
|
||||
"kcp",
|
||||
"ws",
|
||||
"h2",
|
||||
"quic"
|
||||
"quic",
|
||||
"grpc"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user