mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-03 17:07:15 +00:00
feat(tls,reality): port xray TLS/REALITY fields, cert-hash helpers, fallback UX
TLS: add verifyPeerCertByName (vcn) to inbound settings + emit in both share-link generators (frontend + Go sub) and outbound parser; the allowInsecure replacement xray removed after 2026-06-01. Add server-side curvePreferences, masterKeyLog, echSockopt (passthrough + form) at tlsSettings top-level so they survive the panel-only settings strip. REALITY: add limitFallbackUpload/Download (afterBytes/bytesPerSec/burstBytesPerSec) with per-field tooltips, plus masterKeyLog. Verified field names/semantics against pinned xray v1.260327.1 (bytesPerSec=0 disables). Hosts: fix verify_peer_cert_by_name column bool->string (xray expects comma-separated names) with an idempotent, history-gate-free migration (SQLite typeof blank; Postgres ALTER once); emit vcn for hosts/external proxies. Server: add getCertHash (local cert DER SHA-256) and getRemoteCertHash (xray tls ping) endpoints + api-docs; wire pinned-cert field buttons. Drop the meaningless random-hash button. Xray UI: metrics endpoint (listen/tag) config in Basics; import/export for routing rules and outbounds. Fallbacks card: compact empty state, header-aligned actions, responsive labeled grid rows. i18n: add all new keys to every locale; drop unused generateRandomPin.
This commit is contained in:
@@ -463,6 +463,27 @@
|
||||
"moreIssues": "{message} (+{count} lỗi khác)"
|
||||
},
|
||||
"form": {
|
||||
"echSockopt": "ECH Sockopt",
|
||||
"echSockoptTip": "Tùy chọn socket cho kết nối mà Xray dùng để lấy danh sách cấu hình ECH (ví dụ định tuyến truy vấn qua một outbound dialerProxy). Để tắt để dùng giá trị mặc định.",
|
||||
"curvePreferences": "Ưu tiên đường cong",
|
||||
"curvePreferencesTip": "Giới hạn các đường cong trao đổi khóa TLS mà máy chủ cung cấp, theo thứ tự ưu tiên (ví dụ X25519MLKEM768, X25519). Để trống để dùng giá trị mặc định của Xray-core.",
|
||||
"masterKeyLog": "Nhật ký khóa chính",
|
||||
"masterKeyLogTip": "Đường dẫn để ghi các khóa chính TLS (định dạng SSLKEYLOGFILE) phục vụ gỡ lỗi bằng Wireshark. Để trống khi chạy thực tế — vì ai có tệp này đều có thể giải mã lưu lượng.",
|
||||
"verifyPeerCertByName": "Xác minh chứng chỉ peer theo tên",
|
||||
"verifyPeerCertByNameTip": "Yêu cầu máy khách xác minh chứng chỉ máy chủ theo tên này thay vì theo SNI. Các tên cách nhau bằng dấu phẩy. Chỉ dùng trong bảng điều khiển — được đính kèm trong link chia sẻ (vcn). Đây là giải pháp thay thế hiện đại cho allowInsecure, vốn đã bị Xray gỡ bỏ sau 2026-06-01.",
|
||||
"pinFromCert": "Điền từ chứng chỉ của inbound này",
|
||||
"pinFromRemote": "Lấy hash bằng cách ping SNI (xray tls ping)",
|
||||
"pinFromRemoteNoSni": "Hãy đặt SNI (serverName) trước để ping chứng chỉ từ xa.",
|
||||
"pinFromRemoteFailed": "Không thể lấy hash chứng chỉ từ xa.",
|
||||
"limitFallback": "Giới hạn fallback",
|
||||
"limitFallbackUpload": "Giới hạn fallback tải lên",
|
||||
"limitFallbackDownload": "Giới hạn fallback tải xuống",
|
||||
"afterBytes": "Sau số byte",
|
||||
"afterBytesTip": "Cho phép fallback chạy hết tốc độ trong bấy nhiêu byte này, sau đó mới bắt đầu giới hạn. 0 = giới hạn ngay từ byte đầu tiên.",
|
||||
"bytesPerSec": "Byte mỗi giây",
|
||||
"bytesPerSecTip": "Giới hạn tốc độ (byte/giây) áp dụng cho lưu lượng fallback sau ngưỡng, để các đầu dò không thể dùng máy chủ của bạn làm băng thông miễn phí tới đích. 0 = không giới hạn (tắt hướng này).",
|
||||
"burstBytesPerSec": "Byte bùng phát mỗi giây",
|
||||
"burstBytesPerSecTip": "Mức cho phép các đợt bùng phát ngắn vượt tốc độ ổn định (kích thước token-bucket). Nếu thấp hơn Byte mỗi giây thì sẽ được nâng lên cho khớp.",
|
||||
"moveUp": "Lên",
|
||||
"moveDown": "Xuống",
|
||||
"addAll": "Thêm tất cả",
|
||||
@@ -591,7 +612,6 @@
|
||||
"pinnedPeerCertSha256": "SHA-256 chứng chỉ peer đã ghim",
|
||||
"pinnedPeerCertSha256Tip": "Hash SHA-256 của chứng chỉ peer dưới dạng chuỗi thập lục phân (vd. e8e2d3…), phân tách bằng dấu phẩy. Chỉ panel — không ghi vào cấu hình xray máy chủ, nhưng được đưa vào liên kết chia sẻ để client có thể ghim chứng chỉ.",
|
||||
"pinnedPeerCertSha256Placeholder": "hash thập lục phân, phân tách bằng dấu phẩy",
|
||||
"generateRandomPin": "Tạo hash ngẫu nhiên",
|
||||
"getNewEchCert": "Lấy chứng chỉ ECH mới",
|
||||
"show": "Hiện",
|
||||
"xver": "Xver",
|
||||
@@ -1294,6 +1314,14 @@
|
||||
},
|
||||
"xray": {
|
||||
"title": "Cài đặt Xray",
|
||||
"importRules": "Nhập quy tắc",
|
||||
"exportRules": "Xuất quy tắc",
|
||||
"importOutbounds": "Nhập outbound",
|
||||
"exportOutbounds": "Xuất outbound",
|
||||
"importInvalidJson": "JSON không hợp lệ — cần một mảng hoặc một đối tượng có khóa khớp.",
|
||||
"metricsListen": "Điểm cuối Metrics",
|
||||
"metricsListenDesc": "Hiển thị các chỉ số kiểu Prometheus của Xray tại địa chỉ:cổng này (ví dụ 127.0.0.1:11111). Để trống để tắt. Hãy gắn vào localhost và reverse-proxy nó — vì nó không có xác thực.",
|
||||
"metricsTag": "Metrics Tag",
|
||||
"save": "Lưu cài đặt",
|
||||
"restart": "Khởi động lại Xray",
|
||||
"restartSuccess": "Đã khởi động lại Xray thành công",
|
||||
|
||||
Reference in New Issue
Block a user