Trojan — mihomo
mihomo در هر دو سمت Trojan را پشتیبانی میکند. خروجی از ترابردهای tcp، ws و grpc با پوششهای TLS، REALITY و ECH پشتیبانی میکند، بهعلاوهٔ لایهٔ سازگار با trojan-go به نام ss-opts که یک مجموعهرمز داخلی Shadowsocks را روی دستدهی گذرواژهٔ Trojan اضافه میکند.
خروجی
ورودی تحت proxies: با type: trojan. BasicOption را جاسازی میکند (فیلدهای مشترک خروجی).
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (required) | <string> | نام یکتای پراکسی. |
server | string | (required) | <host> | میزبان یا IP سرور بالادست. |
port | int | (required) | <port> | پورت سرور بالادست. |
password | string | (required) | <string> | گذرواژهٔ Trojan. |
alpn | []string | [] | h2 | http/1.1 | فهرست ALPN ارائهشده در دستدهی TLS. |
sni | string | (server name) | <SNI> | Server Name Indication در TLS. مقدار پیشفرض `server` است. |
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 از این خروجی. |
network | string | tcp | tcp | ws | grpc | ترابرد زیرین. |
ech-opts | ECHOptions | (disabled) | ECHOptions | پیکربندی Encrypted Client Hello. |
reality-opts | RealityOptions | (disabled) | RealityOptions | پیکربندی کلاینت REALITY. |
grpc-opts | GrpcOptions | (unset) | GrpcOptions | تنظیمات `network: grpc`. |
ws-opts | WSOptions | (unset) | WSOptions | تنظیمات `network: ws`. |
ss-opts | TrojanSSOption | (disabled) | TrojanSSOption | لایهٔ اختیاری Shadowsocks-over-Trojan (سبک trojan-go). |
client-fingerprint | string | (global) | chrome | firefox | safari | ios | edge | random | randomized | اثرانگشت client-hello مبتنی بر uTLS. |
منبع: adapter/outbound/trojan.go:38-58 · ثابتشده در v1.19.24 (a847246)
ss-opts
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
enabled | bool | false | true | false | پوشاندن جریان Trojan در یک لایهٔ Shadowsocks اضافی. |
method | string | (unset) | aes-128-gcm | aes-256-gcm | chacha20-ietf-poly1305 | مجموعهرمز AEAD Shadowsocks که در لایهٔ داخلی استفاده میشود. |
password | string | (unset) | <string> | گذرواژه برای لایهٔ داخلی Shadowsocks (جدا از گذرواژهٔ بیرونی Trojan). |
منبع: adapter/outbound/trojan.go:61-65 · ثابتشده در v1.19.24 (a847246)
ورودی
ورودی تحت listeners: با type: trojan. BaseOption را جاسازی میکند (listen، port).
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
users | []TrojanUser | (required) | [TrojanUser] | کلاینتهای پذیرفتهشده. |
ws-path | string | (unset) | /<path> | مسیر WebSocket ارائهشده در این شنونده. |
grpc-service-name | string | (unset) | <name> | نام سرویس gRPC پذیرفتهشده در این شنونده. |
certificate | string | (unset) | <PEM file path> | گواهی TLS سرور. |
private-key | string | (unset) | <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. |
reality-config | RealityConfig | (disabled) | RealityConfig | پیکربندی سرور REALITY. |
mux-option | MuxOption | (disabled) | MuxOption | تنظیمات چندسوسازی (سبک sing mux). |
ss-option | TrojanSSOption | (disabled) | TrojanSSOption | لایهٔ سازگاری Shadowsocks-over-Trojan (باید با `ss-opts` خروجی مطابقت داشته باشد). |
منبع: listener/inbound/trojan.go:12-25 · ثابتشده در v1.19.24 (a847246)
users[]
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
username | string | (unset) | <string> | نام نمایشی. |
password | string | (required) | <string> | گذرواژهٔ Trojan. |
منبع: listener/inbound/trojan.go:27-30 · ثابتشده در v1.19.24 (a847246)
مثالها
خروجی — Trojan ساده با TLS:
proxies:
- name: trojan-srv
type: trojan
server: example.com
port: 443
password: <password>
sni: example.com
udp: true
alpn: [h2, http/1.1]خروجی — Trojan روی WebSocket با ss-opts سبک trojan-go:
proxies:
- name: trojan-go
type: trojan
server: example.com
port: 443
password: <outer-password>
udp: true
network: ws
sni: example.com
ws-opts:
path: /tj
ss-opts:
enabled: true
method: aes-128-gcm
password: <inner-password>ورودی تحت listeners:
listeners:
- name: trojan-in
type: trojan
listen: 0.0.0.0
port: 443
users:
- username: alice
password: <password>
certificate: /etc/mihomo/server.crt
private-key: /etc/mihomo/server.keyنکات
ss-optsالگوی trojan-go برای پشتهکردن Shadowsocks AEAD درون جریان Trojan را پیادهسازی میکند. گذرواژهٔ بیرونی Trojan دستدهی را احراز میکند؛ کلید داخلی Shadowsocks بار را رمزنگاری میکند. بلوکss-optionورودی باید دقیقاً باss-optsخروجی مطابق باشد (enabled،method،password) وگرنه ورودی کلاینت را رد میکند.- mihomo معادلی برای
fallbacks[]در Xray یاfallback_for_alpnدر sing-box ندارد. برای رفتار fallback HTTP، TLS را با یک پراکسی معکوس جداگانه جلوی mihomo خاتمه دهید. client-fingerprintدر خروجی، بازنویسی uTLS برای هر پراکسی است. پیشفرض سراسریglobal-client-fingerprintاست.
نکات بینهستهای
- Xray برای کاربران ورودی از
clients[]استفاده میکند، زنجیرهٔfallbacks[]بهصورت فهرست را پشتیبانی میکند و هر مقدار غیرخالیflowرا رد میکند. به Trojan — Xray-core مراجعه کنید. - sing-box از
users[](name/password) استفاده میکند و فهرست fallback را با یکfallbackپیشفرض بهعلاوهٔ نگاشتfallback_for_alpnبه ازای هر ALPN جایگزین کرده است. به Trojan — sing-box مراجعه کنید.
منبع: adapter/outbound/trojan.go:38-58 · v1.19.24 (a847246)
