feat(inbounds): per-proxy Pinned Peer Cert SHA-256 + labeled External Proxy form

Redesign the Add Inbound -> Stream External Proxy section into labeled per-entry cards (Force TLS / Host / Port / Remark and, under TLS, SNI / Fingerprint / ALPN) and add a Pinned Peer Cert SHA-256 field with a generate-random-hash button to each entry.

The pin flows end to end into share links: pcs for vmess/vless/trojan/ss (stripped when a proxy forces security off) and the hex-normalized pinSHA256 for Hysteria. JSON and Clash subscriptions emit the native pinnedPeerCertSha256 / pin-sha256 via the cloned stream. Adds the forceTls label across all 13 locales plus frontend and Go tests.
This commit is contained in:
MHSanaei
2026-06-03 13:46:54 +02:00
parent df7ccd3a64
commit e7c11c913a
21 changed files with 503 additions and 103 deletions
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "معامل CWND",
"maxSendingWindow": "أقصى نافذة إرسال",
"externalProxy": "وكيل خارجي",
"forceTls": "فرض TLS",
"sniPlaceholder": "SNI (افتراضياً host)",
"fingerprint": "بصمة",
"defaultOption": "افتراضي",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "CWND Multiplier",
"maxSendingWindow": "Max Sending Window",
"externalProxy": "External Proxy",
"forceTls": "Force TLS",
"sniPlaceholder": "SNI (defaults to host)",
"fingerprint": "Fingerprint",
"defaultOption": "Default",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Multiplicador CWND",
"maxSendingWindow": "Máx. ventana de envío",
"externalProxy": "Proxy externo",
"forceTls": "Forzar TLS",
"sniPlaceholder": "SNI (por defecto = host)",
"fingerprint": "Fingerprint",
"defaultOption": "Por defecto",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "ضریب CWND",
"maxSendingWindow": "حداکثر پنجره ارسال",
"externalProxy": "پراکسی خارجی",
"forceTls": "اجبار TLS",
"sniPlaceholder": "SNI (پیش‌فرض همان host)",
"fingerprint": "اثرانگشت",
"defaultOption": "پیش‌فرض",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Pengganda CWND",
"maxSendingWindow": "Maks. jendela pengiriman",
"externalProxy": "Proxy eksternal",
"forceTls": "Paksa TLS",
"sniPlaceholder": "SNI (default = host)",
"fingerprint": "Fingerprint",
"defaultOption": "Default",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "CWND 倍率",
"maxSendingWindow": "最大送信ウィンドウ",
"externalProxy": "外部プロキシ",
"forceTls": "TLS を強制",
"sniPlaceholder": "SNI (デフォルトは host)",
"fingerprint": "Fingerprint",
"defaultOption": "デフォルト",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Multiplicador CWND",
"maxSendingWindow": "Máx. janela de envio",
"externalProxy": "Proxy externo",
"forceTls": "Forçar TLS",
"sniPlaceholder": "SNI (padrão = host)",
"fingerprint": "Fingerprint",
"defaultOption": "Padrão",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Множитель CWND",
"maxSendingWindow": "Макс. окно отправки",
"externalProxy": "External Proxy",
"forceTls": "Принудительный TLS",
"sniPlaceholder": "SNI (по умолчанию = host)",
"fingerprint": "Fingerprint",
"defaultOption": "По умолчанию",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "CWND çarpanı",
"maxSendingWindow": "Maks. gönderme penceresi",
"externalProxy": "Harici proxy",
"forceTls": "TLS zorla",
"sniPlaceholder": "SNI (varsayılan host)",
"fingerprint": "Fingerprint",
"defaultOption": "Varsayılan",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Множник CWND",
"maxSendingWindow": "Макс. вікно відправки",
"externalProxy": "External Proxy",
"forceTls": "Примусовий TLS",
"sniPlaceholder": "SNI (за замовчуванням = host)",
"fingerprint": "Fingerprint",
"defaultOption": "За замовчуванням",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "Hệ số CWND",
"maxSendingWindow": "Cửa sổ gửi tối đa",
"externalProxy": "Proxy ngoài",
"forceTls": "Bắt buộc TLS",
"sniPlaceholder": "SNI (mặc định = host)",
"fingerprint": "Fingerprint",
"defaultOption": "Mặc định",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "CWND 倍数",
"maxSendingWindow": "最大发送窗口",
"externalProxy": "外部代理",
"forceTls": "强制 TLS",
"sniPlaceholder": "SNI (默认为 host)",
"fingerprint": "指纹",
"defaultOption": "默认",
+1
View File
@@ -547,6 +547,7 @@
"cwndMultiplier": "CWND 倍數",
"maxSendingWindow": "最大發送視窗",
"externalProxy": "外部代理",
"forceTls": "強制 TLS",
"sniPlaceholder": "SNI (預設為 host)",
"fingerprint": "指紋",
"defaultOption": "預設",