AnyTLS — mihomo
mihomo در هر دو سمت از AnyTLS با قراردادهای استاندارد mihomo پشتیبانی میکند (بدون cipher؛ خروجی کلیدهای TLS / ECH / uTLS را در سطح بالا دارد).
خروجی
ورودی تحت proxies: با type: anytls. BasicOption را جاسازی میکند.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (required) | <string> | نام یکتای پراکسی. |
server | string | (required) | <host> | میزبان یا IP سرور بالادست. |
port | int | (required) | <port> | پورت سرور بالادست. |
password | string | (required) | <string> | گذرواژهٔ سرور. |
alpn | []string | [] | h2 | http/1.1 | فهرست ALPN ارائهشده در دستدهی TLS. |
sni | string | (server) | <SNI> | Server Name Indication در TLS. |
ech-opts | ECHOptions | (disabled) | ECHOptions | پیکربندی Encrypted Client Hello. |
client-fingerprint | string | (global) | chrome | firefox | safari | ios | edge | random | randomized | اثرانگشت client-hello مبتنی بر uTLS. |
skip-cert-verify | bool | false | true | false | غیرفعالسازی راستیآزمایی TLS (فقط آزمایش). |
fingerprint | string | (unset) | <SHA256 hex> | تثبیت اثرانگشت گواهی TLS سرور. |
certificate | string | (unset) | <PEM file path> | گواهی کلاینت (mTLS). |
private-key | string | (unset) | <key file path> | کلید خصوصی برای `certificate`. |
udp | bool | false | true | false | اجازه به بازپخش بستههای UDP از این خروجی. |
idle-session-check-interval | int | 0 | <seconds> | بازهٔ پویش استخر نشست. ۰ پیشفرض زمان اجرا را حفظ میکند. |
idle-session-timeout | int | 0 | <seconds> | نشستهایی که بیش از این تعداد ثانیه بیکار باشند بازیابی میشوند. ۰ پیشفرض زمان اجرا را حفظ میکند. |
min-idle-session | int | 0 | <int> | حداقل نشستهای گرم برای نگه داشتن در استخر. |
منبع: adapter/outbound/anytls.go:25-43 · ثابتشده در v1.19.24 (a847246)
ورودی
ورودی تحت listeners: با type: anytls. BaseOption را جاسازی میکند.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | map[string]string | {} | {<username>: <password>} | جدول کاربر — نام کاربری ← گذرواژه. |
certificate | string | (required) | <PEM file path> | گواهی TLS سرور. |
private-key | string | (required) | <key file path> | کلید خصوصی TLS. |
client-auth-type | string | (none) | no-client-cert | request-client-cert | require-any-client-cert | verify-client-cert-if-given | require-and-verify-client-cert | حالت احراز هویت متقابل TLS کلاینت. |
client-auth-cert | string | (unset) | <PEM file path> | بستهٔ CA پذیرفتهشده بهعنوان ریشهٔ کلاینت. |
ech-key | string | (unset) | <ECH config> | مواد Encrypted Client Hello. |
padding-scheme | string | (server default) | <scheme> | طرح پدینگ سفارشی. یک رشته؛ قالب مشخصهٔ پروتکل بالادست. |
منبع: listener/inbound/anytls.go:12-21 · ثابتشده در v1.19.24 (a847246)
مثالها
خروجی:
yaml
proxies:
- name: anytls
type: anytls
server: example.com
port: 443
password: <password>
sni: example.com
alpn: [h2, http/1.1]
udp: true
client-fingerprint: chrome
idle-session-check-interval: 30
idle-session-timeout: 60
min-idle-session: 4ورودی:
yaml
listeners:
- name: anytls-in
type: anytls
listen: 0.0.0.0
port: 443
users:
alice: <alice-password>
bob: <bob-password>
certificate: /etc/mihomo/server.crt
private-key: /etc/mihomo/server.keyنکات
- mihomo برای سه زمان بیکاری استخر نشست از ثانیه استفاده میکند؛ sing-box برای همین فیلدها از رشتههای duration (
"30s") استفاده میکند. املای نام فیلد نیز متفاوت است — اینجا kebab-case، آنجا snake_case. users:یک نگاشت YAML از نام کاربری به گذرواژه است، مشابه ورودیهای TUIC و Hysteria2 در mihomo.- خروجی mihomo کلیدهای TLS، ECH و اثرانگشت uTLS را بهصورت درونخط دارد. sing-box اینها را در بلوک جاسازیشدهٔ
tls:قرار میدهد.
نکات بینهستهای
- Xray-core از AnyTLS پشتیبانی نمیکند. به AnyTLS — Xray-core مراجعه کنید.
- sing-box از نامهای فیلد snake_case استفاده میکند، رشتههای duration سبک Go را برای زمانهای بیکاری استخر نشست میگیرد و کاربران را بهصورت آرایهٔ
[{name, password}]فهرست میکند. به AnyTLS — sing-box مراجعه کنید.
منبع: adapter/outbound/anytls.go:25-43 · v1.19.24 (a847246)
