OpenVPN — mihomo
mihomo میتواند یک سرور OpenVPN را بهعنوان خروجی شمارهگیری کند و یک کلاینت فضای-کاربر را اجرا کند که یک دستگاه پشتهٔ tun-گونه برپا میکند و ترافیک تطبیقیافته را از طریق تونل رمزنگاریشده مسیریابی میکند. کانال کنترل با گواهیها (ca / cert / key)، tls-crypt اختیاری، و/یا اعتبارنامههای auth-user-pass احراز هویت میشود؛ کانال داده با cipher توافقشده رمزنگاری میشود.
خروجی
ورودی زیر proxies: با type: openvpn. این BasicOption (فیلدهای مشترک خروجی) را در خود جای میدهد.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (required) | <string> | نام یکتای پراکسی. |
server | string | (required) | <host> | میزبان/IP سرور OpenVPN. |
port | int | (required) | <port> | پورت سرور. |
proto | string | udp | udp | tcp | پروتکل ترابرد تونل OpenVPN. |
dev | string | tun | tun | نوع دستگاه مجازی (مثلاً `tun`). |
cipher | string | (server-negotiated) | AES-256-GCM | AES-128-GCM | <cipher> | رمز کانال داده، مثلاً `AES-256-GCM`. |
auth | string | (unset) | SHA256 | SHA512 | <digest> | خلاصهسازِ HMAC برای کانال کنترل، مثلاً `SHA256`. |
comp-lzo | string | (unset) | yes | no | adaptive | تنظیم فشردهسازی LZO. |
ca | string | (required) | <PEM> | گواهی CA (بهصورت PEM، درونخطی یا مسیر فایل). |
cert | string | (unset) | <PEM> | گواهی کلاینت (PEM). |
key | string | (unset) | <PEM> | کلید خصوصی کلاینت (PEM). |
tls-crypt | string | (unset) | <key> | کلید ثابت tls-crypt برای رمزنگاری/احراز هویت کانال کنترل. |
username | string | (unset) | <string> | نام کاربری auth-user-pass. |
password | string | (unset) | <string> | گذرواژهٔ auth-user-pass. |
ping | int | (unset) | <seconds> | بازهٔ پینگ نگهدارنده (ثانیه). |
ping-restart | int | (unset) | <seconds> | پس از این تعداد ثانیه بدون پینگ، تونل را راهاندازی مجدد کن (ثانیه). |
mtu | int | 1500 | <integer> | MTU تونل. |
udp | bool | false | true | false | اجازهٔ عبور ترافیک UDP از پراکسی. |
remote-dns-resolve | bool | false | true | false | حل نامهای مقصد با استفاده از DNS تونل. |
dns | []string | [] | [<server>] | سرورهای DNS مورد استفاده برای تونل. |
منبع: adapter/outbound/openvpn.go:43-66 · ثابتشده در v1.19.27 (5184081)
مثالها
خروجی — احراز هویت با گواهی:
yaml
proxies:
- name: ovpn-cert
type: openvpn
server: vpn.example.com
port: 1194
proto: udp
cipher: AES-256-GCM
auth: SHA256
ca: |
-----BEGIN CERTIFICATE-----
<ca-certificate>
-----END CERTIFICATE-----
cert: |
-----BEGIN CERTIFICATE-----
<client-certificate>
-----END CERTIFICATE-----
key: |
-----BEGIN PRIVATE KEY-----
<client-private-key>
-----END PRIVATE KEY-----
udp: trueخروجی — احراز هویت با نام کاربری/گذرواژه بههمراه نگهدارنده:
yaml
proxies:
- name: ovpn-userpass
type: openvpn
server: vpn.example.com
port: 1194
proto: tcp
ca: |
-----BEGIN CERTIFICATE-----
<ca-certificate>
-----END CERTIFICATE-----
username: <username>
password: <password>
ping: 10
ping-restart: 60
udp: trueنکات
protoترابرد لینک را انتخاب میکند:udp(پیشفرض) یاtcp. مقدارcipherکانال داده با سرور توافق میشود؛ آن را بهطور صریح تنظیم کنید تا مقداری مانندAES-256-GCMرا ثابت نگه دارید.caالزامی است.cert+keyاحراز هویت با گواهی را فراهم میکنند؛username+passwordاحراز هویتauth-user-passرا فراهم میکنند. هنگامی که سرور هر دو را نیاز داشته باشد میتوان آنها را ترکیب کرد. مواد PEM ممکن است بهصورت درونخطی (اسکالر بلوکی) یا بهصورت مسیر فایل داده شوند.tls-cryptکلید ثابتی را تأمین میکند که کانال کنترل را رمزنگاری و احراز هویت میکند و دستدهی OpenVPN را پنهان میسازد.pingیک پینگ نگهدارنده را در بازهٔ دادهشده ارسال میکند؛ping-restartتونل را پس از آن تعداد ثانیه بدون دریافت بسته، برچیده میکند تا بتوان آن را دوباره برقرار کرد. هر دو بر حسب ثانیه بیان میشوند.mtuمقدار MTU تونل را تنظیم میکند و پیشفرض آن1500است.remote-dns-resolveجستجوهای نام مقصد را از طریق تونل و با استفاده از سرورهای فهرستشده درdnsمسیریابی میکند؛ این گزینه تا زمانی کهdnsناتهی نباشد هیچ اثری ندارد.
نکات بینهستهای
- OpenVPN در میان این سه هسته مخصوص mihomo است. نه Xray-core و نه sing-box خروجی OpenVPN ارائه نمیدهند — برای پلزدن یک نقطهانتهایی OpenVPN با آن هستهها باید یک کلاینت OpenVPN جداگانه اجرا کنید و یک ورودی
socks/httpیا TUN را به آن اشاره دهید.
منبع: adapter/outbound/openvpn.go:43-66 · v1.19.27 (5184081)
