@@ -54,31 +54,31 @@ shadowsocks = tag equals "shadowsocks"i address method password (obfs_typev obfs
5454 $set(proxy, "plugin-opts.path", obfs.path);
5555 }
5656}
57- vmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/vmess_alterId/fast_open/udp_relay/others)* {
57+ vmess = tag equals "vmess"i address method uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ vmess_alterId/fast_open/udp_relay/others)* {
5858 proxy.type = "vmess";
5959 proxy.cipher = proxy.cipher || "none";
6060 proxy.alterId = proxy.alterId || 0;
6161 handleTransport();
6262}
63- vless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {
63+ vless = tag equals "vless"i address uuid (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ fast_open/udp_relay/others)* {
6464 proxy.type = "vless";
6565 handleTransport();
6666}
67- trojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {
67+ trojan = tag equals "trojan"i address password (transport/transport_host/transport_path/over_tls/tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ fast_open/udp_relay/others)* {
6868 proxy.type = "trojan";
6969 handleTransport();
7070}
71- hysteria2 = tag equals "hysteria2"i address password (tls_host/tls_verification/udp_relay/fast_open/download_bandwidth/salamander_password/ecn/others)* {
71+ hysteria2 = tag equals "hysteria2"i address password (tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ udp_relay/fast_open/download_bandwidth/salamander_password/ecn/others)* {
7272 proxy.type = "hysteria2";
7373}
74- https = tag equals "https"i address (username password)? (tls_host/tls_verification/fast_open/udp_relay/others)* {
74+ https = tag equals "https"i address (username password)? (tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ fast_open/udp_relay/others)* {
7575 proxy.type = "http";
7676 proxy.tls = true;
7777}
7878http = tag equals "http"i address (username password)? (fast_open/udp_relay/others)* {
7979 proxy.type = "http";
8080}
81- socks5 = tag equals "socks5"i address (username password)? (over_tls/tls_host/tls_verification/fast_open/udp_relay/others)* {
81+ socks5 = tag equals "socks5"i address (username password)? (over_tls/tls_host/tls_verification/tls_cert_sha256/tls_pubkey_sha256/ fast_open/udp_relay/others)* {
8282 proxy.type = "socks5";
8383}
8484
@@ -172,6 +172,8 @@ vmess_alterId = comma "alterId" equals alterId:$[0-9]+ { proxy.alterId = parseIn
172172over_tls = comma "over-tls" equals flag:bool { proxy.tls = flag; }
173173tls_host = comma sni:("tls-name"/"sni") equals host:domain { proxy.sni = host; }
174174tls_verification = comma "skip-cert-verify" equals flag:bool { proxy["skip-cert-verify"] = flag; }
175+ tls_cert_sha256 = comma "tls-cert-sha256" equals match:[^,]+ { proxy["tls-fingerprint"] = match.join("").replace(/^"(.*)"$/, '$1'); }
176+ tls_pubkey_sha256 = comma "tls-pubkey-sha256" equals match:[^,]+ { proxy["tls-pubkey-sha256"] = match.join("").replace(/^"(.*)"$/, '$1'); }
175177
176178fast_open = comma "fast-open" equals flag:bool { proxy.tfo = flag; }
177179udp_relay = comma "udp" equals flag:bool { proxy.udp = flag; }
@@ -180,6 +182,7 @@ ecn = comma "ecn" equals flag:bool { proxy.ecn = flag; }
180182download_bandwidth = comma "download-bandwidth" equals match:[^,]+ { proxy.down = match.join(""); }
181183salamander_password = comma "salamander-password" equals match:[^,]+ { proxy['obfs-password'] = match.join(""); proxy.obfs = 'salamander'; }
182184
185+
183186tag = match:[^=,]* { proxy.name = match.join("").trim(); }
184187comma = _ "," _
185188equals = _ "=" _
0 commit comments