شنوندهٔ Hysteria2 realm — mihomo
یک شنوندهٔ realm در Hysteria2 چندین «realm» — یعنی مستأجر — را پشت یک نقطهانتهایی واحد میزبانی میکند. هر realm یک سرویس Hysteria2 مستقل است که روی همان آدرس شنود چندسوسازی شده و بهجای پورت جداگانه، با هویت realm متمایز میشود. کلاینتها با تنظیم realm-opts روی پراکسی Hysteria2 معمولی خود به یک realm میرسند: آنها به نقطهانتهایی کنترلی این شنونده اشاره میکنند، توکن مشترک را ارائه میدهند و نام realmای را که میخواهند به آن بپیوندند مشخص میکنند.
این سمت سرورِ قابلیت realm است. پشتیبانی از realm جدیدتر و پیشرفته است — بیشتر استقرارها بهجای آن یک شنوندهٔ ساده hysteria2 را اجرا میکنند.
شنونده
ورودی زیر listeners: با type: hysteria2-realm. این BaseOption را در خود جای میدهد (listen، port).
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
token | string | (unset) | <string> | توکن احراز هویت مشترکی که هر realm باید برای ثبتنام در این شنونده یا سرویسدهی توسط آن ارائه کند. |
max-realms | int | 0 | <int> | بیشینهٔ تعداد realmهایی که این شنونده میزبانی میکند. مقدار 0 آن را نامحدود میگذارد. |
max-realms-per-ip | int | 0 | <int> | سقف realmهای میزبانیشده بهازای هر IP کلاینت. مقدار 0 آن را نامحدود میگذارد. |
trusted-proxy-header | string | (unset) | <header name> | هدر HTTP که آدرس IP واقعی کلاینت را حمل میکند، وقتی شنونده پشت یک پراکسی جلویی قرار دارد. |
realm-name-pattern | string | (unset) | <pattern> | الگویی که نام realmهای پذیرفتهشده را محدود میکند. |
certificate | string | (required) | <PEM file path> | گواهی سرور TLS (مسیر PEM). |
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 دوطرفه (mTLS) (مثلاً `require-and-verify-client-cert`). |
client-auth-cert | string | (unset) | <PEM file path> | بستهٔ CA که بهعنوان ریشههای کلاینت پذیرفته میشود. |
ech-key | string | (unset) | <ECH config> | مواد کلید Encrypted Client Hello. |
alpn | []string | [h3] | h3 | ALPN ارائهشده در طول دستدهی TLS (معمولاً `h3`). |
منبع: listener/inbound/hysteria2_realm.go:12-25 · ثابتشده در v1.19.27 (5184081)
مثال
شنوندهٔ realm حداقلی با یک توکن مشترک و سقف realm بهازای هر IP:
listeners:
- name: hy2-realm-server
type: hysteria2-realm
listen: 0.0.0.0
port: 443
token: <realm-token>
max-realms: 16
max-realms-per-ip: 2
certificate: /etc/mihomo/server.crt
private-key: /etc/mihomo/server.key
alpn: [h3]یک کلاینت با افزودن realm-opts به خروجی خود به یک realm روی این شنونده میپیوندد — به Hysteria2 — mihomo مراجعه کنید.
نکات
tokenراز مشترک است. مقدارrealm-opts.tokenیک کلاینت باید با آن تطبیق کند تا آن کلاینت بتواند در شنونده ثبتنام کند یا توسط آن سرویسدهی شود.max-realmsکل تعداد realmهایی را که شنونده میزبانی میکند محدود میکند؛max-realms-per-ipآنها را بهازای هر IP کلاینت محدود میکند. هر دو را روی مقدار پیشفرض بگذارید تا نامحدود بمانند.trusted-proxy-headerتنها زمانی اهمیت دارد که شنونده پشت یک پراکسی جلویی قرار داشته باشد که آدرس مبدأ را بازنویسی میکند — این هدر، نام هدری را مشخص میکند که IP اصلی کلاینت را حمل میکند تا سقفهای بهازای IP دقیق بمانند.- TLS اجباری است:
certificateوprivate-keyرا تأمین کنید. برای نیاز به TLS دوطرفه،client-auth-typeبهعلاوهٔclient-auth-certرا اضافه کنید و برای فعالسازی Encrypted Client Hello،ech-keyرا بیفزایید.
نکات بینهستهای
- realmها قابلیتی مخصوص mihomo / Hysteria2 هستند. نه Xray-core و نه sing-box شنوندهٔ چند-realm معادلی ارائه نمیکنند — هرکدام بهازای هر ورودی یک سرویس Hysteria2 واحد را میزبانی میکنند. برای شنوندههای تکمستأجری آنها به Hysteria2 — Xray-core و Hysteria2 — sing-box مراجعه کنید.
منبع: listener/inbound/hysteria2_realm.go:12-25 · v1.19.27 (5184081)
