|
@@ -247,9 +247,20 @@ interface HttpOptions {
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+interface H2Options {
|
|
|
|
+ path?: string;
|
|
|
|
+ host?: string;
|
|
|
|
+}
|
|
|
|
+
|
|
interface GrpcOptions {
|
|
interface GrpcOptions {
|
|
"grpc-service-name"?: string;
|
|
"grpc-service-name"?: string;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+interface RealityOptions {
|
|
|
|
+ "public-key"?: string;
|
|
|
|
+ "short-id"?: string;
|
|
|
|
+}
|
|
|
|
+
|
|
type NetworkType = "ws" | "http" | "h2" | "grpc";
|
|
type NetworkType = "ws" | "http" | "h2" | "grpc";
|
|
|
|
|
|
// base
|
|
// base
|
|
@@ -258,22 +269,22 @@ interface IProxyBaseConfig {
|
|
mptcp?: boolean;
|
|
mptcp?: boolean;
|
|
"interface-name"?: string;
|
|
"interface-name"?: string;
|
|
"routing-mark"?: number;
|
|
"routing-mark"?: number;
|
|
- "ip-version"?: string;
|
|
|
|
|
|
+ "ip-version"?: "dual" | "ipv4" | "ipv6" | "ipv4-prefer" | "ipv6-prefer";
|
|
"dialer-proxy"?: string;
|
|
"dialer-proxy"?: string;
|
|
}
|
|
}
|
|
// direct
|
|
// direct
|
|
interface IProxyDirectConfig extends IProxyBaseConfig {
|
|
interface IProxyDirectConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "direct";
|
|
type: "direct";
|
|
}
|
|
}
|
|
// dns
|
|
// dns
|
|
interface IProxyDnsConfig extends IProxyBaseConfig {
|
|
interface IProxyDnsConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "dns";
|
|
type: "dns";
|
|
}
|
|
}
|
|
// http
|
|
// http
|
|
interface IProxyHttpConfig extends IProxyBaseConfig {
|
|
interface IProxyHttpConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "http";
|
|
type: "http";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -287,7 +298,7 @@ interface IProxyHttpConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// socks5
|
|
// socks5
|
|
interface IProxySocks5Config extends IProxyBaseConfig {
|
|
interface IProxySocks5Config extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "socks5";
|
|
type: "socks5";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -300,7 +311,7 @@ interface IProxySocks5Config extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// ssh
|
|
// ssh
|
|
interface IProxySshConfig extends IProxyBaseConfig {
|
|
interface IProxySshConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "ssh";
|
|
type: "ssh";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -313,7 +324,7 @@ interface IProxySshConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// trojan
|
|
// trojan
|
|
interface IProxyTrojanConfig extends IProxyBaseConfig {
|
|
interface IProxyTrojanConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "trojan";
|
|
type: "trojan";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -324,7 +335,7 @@ interface IProxyTrojanConfig extends IProxyBaseConfig {
|
|
fingerprint?: string;
|
|
fingerprint?: string;
|
|
udp?: boolean;
|
|
udp?: boolean;
|
|
network?: NetworkType;
|
|
network?: NetworkType;
|
|
- "reality-opts"?: {};
|
|
|
|
|
|
+ "reality-opts"?: RealityOptions;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"ss-opts"?: {
|
|
"ss-opts"?: {
|
|
@@ -336,7 +347,7 @@ interface IProxyTrojanConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// tuic
|
|
// tuic
|
|
interface IProxyTuicConfig extends IProxyBaseConfig {
|
|
interface IProxyTuicConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "tuic";
|
|
type: "tuic";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -369,7 +380,7 @@ interface IProxyTuicConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// vless
|
|
// vless
|
|
interface IProxyVlessConfig extends IProxyBaseConfig {
|
|
interface IProxyVlessConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "vless";
|
|
type: "vless";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -382,12 +393,9 @@ interface IProxyVlessConfig extends IProxyBaseConfig {
|
|
xudp?: boolean;
|
|
xudp?: boolean;
|
|
"packet-encoding"?: string;
|
|
"packet-encoding"?: string;
|
|
network?: NetworkType;
|
|
network?: NetworkType;
|
|
- "reality-opts"?: {
|
|
|
|
- "public-key"?: string;
|
|
|
|
- "short-id"?: string;
|
|
|
|
- };
|
|
|
|
|
|
+ "reality-opts"?: RealityOptions;
|
|
"http-opts"?: HttpOptions;
|
|
"http-opts"?: HttpOptions;
|
|
- "h2-opts"?: {};
|
|
|
|
|
|
+ "h2-opts"?: H2Options;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"ws-path"?: string;
|
|
"ws-path"?: string;
|
|
@@ -399,7 +407,7 @@ interface IProxyVlessConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// vmess
|
|
// vmess
|
|
interface IProxyVmessConfig extends IProxyBaseConfig {
|
|
interface IProxyVmessConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "vmess";
|
|
type: "vmess";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -413,12 +421,9 @@ interface IProxyVmessConfig extends IProxyBaseConfig {
|
|
"skip-cert-verify"?: boolean;
|
|
"skip-cert-verify"?: boolean;
|
|
fingerprint?: string;
|
|
fingerprint?: string;
|
|
servername?: string;
|
|
servername?: string;
|
|
- "reality-opts"?: {};
|
|
|
|
|
|
+ "reality-opts"?: RealityOptions;
|
|
"http-opts"?: HttpOptions;
|
|
"http-opts"?: HttpOptions;
|
|
- "h2-opts"?: {
|
|
|
|
- path?: string;
|
|
|
|
- host?: string;
|
|
|
|
- };
|
|
|
|
|
|
+ "h2-opts"?: H2Options;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"grpc-opts"?: GrpcOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"ws-opts"?: WsOptions;
|
|
"packet-addr"?: boolean;
|
|
"packet-addr"?: boolean;
|
|
@@ -438,7 +443,7 @@ interface WireGuardPeerOptions {
|
|
}
|
|
}
|
|
// wireguard
|
|
// wireguard
|
|
interface IProxyWireguardConfig extends IProxyBaseConfig, WireGuardPeerOptions {
|
|
interface IProxyWireguardConfig extends IProxyBaseConfig, WireGuardPeerOptions {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "wireguard";
|
|
type: "wireguard";
|
|
ip?: string;
|
|
ip?: string;
|
|
ipv6?: string;
|
|
ipv6?: string;
|
|
@@ -454,7 +459,7 @@ interface IProxyWireguardConfig extends IProxyBaseConfig, WireGuardPeerOptions {
|
|
}
|
|
}
|
|
// hysteria
|
|
// hysteria
|
|
interface IProxyHysteriaConfig extends IProxyBaseConfig {
|
|
interface IProxyHysteriaConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "hysteria";
|
|
type: "hysteria";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -482,7 +487,7 @@ interface IProxyHysteriaConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// hysteria2
|
|
// hysteria2
|
|
interface IProxyHysteria2Config extends IProxyBaseConfig {
|
|
interface IProxyHysteria2Config extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "hysteria2";
|
|
type: "hysteria2";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -506,14 +511,14 @@ interface IProxyHysteria2Config extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// shadowsocks
|
|
// shadowsocks
|
|
interface IProxyShadowsocksConfig extends IProxyBaseConfig {
|
|
interface IProxyShadowsocksConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "ss";
|
|
type: "ss";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
password?: string;
|
|
password?: string;
|
|
cipher?: string;
|
|
cipher?: string;
|
|
udp?: boolean;
|
|
udp?: boolean;
|
|
- plugin?: string;
|
|
|
|
|
|
+ plugin?: "obfs" | "v2ray-plugin" | "shadow-tls" | "restls";
|
|
"plugin-opts"?: {
|
|
"plugin-opts"?: {
|
|
mode?: string;
|
|
mode?: string;
|
|
host?: string;
|
|
host?: string;
|
|
@@ -536,7 +541,7 @@ interface IProxyShadowsocksConfig extends IProxyBaseConfig {
|
|
}
|
|
}
|
|
// shadowsocksR
|
|
// shadowsocksR
|
|
interface IProxyshadowsocksRConfig extends IProxyBaseConfig {
|
|
interface IProxyshadowsocksRConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "ssr";
|
|
type: "ssr";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|
|
@@ -552,7 +557,7 @@ interface IProxyshadowsocksRConfig extends IProxyBaseConfig {
|
|
interface IProxySmuxConfig {
|
|
interface IProxySmuxConfig {
|
|
smux?: {
|
|
smux?: {
|
|
enabled?: boolean;
|
|
enabled?: boolean;
|
|
- protocol?: string;
|
|
|
|
|
|
+ protocol?: "smux" | "yamux" | "h2mux";
|
|
"max-connections"?: number;
|
|
"max-connections"?: number;
|
|
"min-streams"?: number;
|
|
"min-streams"?: number;
|
|
"max-streams"?: number;
|
|
"max-streams"?: number;
|
|
@@ -568,7 +573,7 @@ interface IProxySmuxConfig {
|
|
}
|
|
}
|
|
// snell
|
|
// snell
|
|
interface IProxySnellConfig extends IProxyBaseConfig {
|
|
interface IProxySnellConfig extends IProxyBaseConfig {
|
|
- name?: string;
|
|
|
|
|
|
+ name: string;
|
|
type: "snell";
|
|
type: "snell";
|
|
server?: string;
|
|
server?: string;
|
|
port?: number;
|
|
port?: number;
|