Tailscale — mihomo
mihomo میتواند به یک tailnet از Tailscale بهعنوان یک گره فضای-کاربر بپیوندد و ترافیک را از طریق آن مسیریابی کند، آن هم تماماً از درون پیکربندی پراکسی. گره بهطور کامل در فضای کاربر اجرا میشود (پشتیبانیشده با gVisor)، بنابراین هیچ دستگاه TUN در سطح هسته یا سرویس Tailscale سیستم لازم نیست. برای استفاده با یک سرور هماهنگکنندهٔ جایگزین، control-url را به یک Headscale خود-میزبان اشاره دهید.
خروجی
ورودی زیر proxies: با type: tailscale. این BasicOption (فیلدهای مشترک خروجی) را در خود جای میدهد.
| فیلد | نوع | پیشفرض | مقادیر مجاز | توضیحات |
|---|---|---|---|---|
name | string | (required) | <string> | نام یکتای پراکسی. |
hostname | string | (unset) | <string> | نام میزبان گرهی که باید روی tailnet ثبت شود. |
auth-key | string | (unset) | <auth key> | کلید احراز هویت Tailscale برای ورود بدونسر (غیرتعاملی). |
control-url | string | (Tailscale default) | <URL> | نشانی سرور هماهنگکننده؛ این را تنظیم کنید تا بهجای پیشفرض Tailscale به یک Headscale خود-میزبان اشاره کند. |
state-dir | string | tailscale | <directory path> | دایرکتوریای که گره وضعیت/کلیدهای خود را در آن پایدار میکند. |
ephemeral | bool | false | true | false | ثبتنام بهعنوان گره گذرا که هنگام آفلاینشدن بهطور خودکار حذف میشود. |
udp | bool | false | true | false | اجازهٔ عبور ترافیک UDP. |
accept-routes | *bool | (unset) | true | false | پذیرش مسیرهای زیرشبکهٔ اعلامشده توسط دیگر گرههای tailnet. |
exit-node | string | (unset) | <node name or IP> | استفاده از این گرهِ tailnet (نام یا IP) بهعنوان گره خروج. |
exit-node-allow-lan-access | *bool | (unset) | true | false | اجازهٔ دسترسی مستقیم به LAN هنگام مسیریابی از طریق یک گره خروج. |
منبع: adapter/outbound/tailscale.go:52-65 · ثابتشده در v1.19.27 (5184081)
مثالها
خروجی حداقلی که با یک کلید احراز هویت بدونسر به یک tailnet میپیوندد:
proxies:
- name: ts
type: tailscale
auth-key: tskey-auth-xxxxxxxxxxxxمسیریابی تمام ترافیک از طریق یک گره خروجِ tailnet:
proxies:
- name: ts-exit
type: tailscale
auth-key: tskey-auth-xxxxxxxxxxxx
hostname: mihomo-node
exit-node: us-exit-1
exit-node-allow-lan-access: true
accept-routes: true
udp: trueدر برابر یک سرور هماهنگکنندهٔ Headscale خود-میزبان:
proxies:
- name: ts-headscale
type: tailscale
auth-key: <headscale pre-auth key>
control-url: https://headscale.example.com
state-dir: tailscale-stateنکات
auth-keyورود بدونسر (غیرتعاملی) را فعال میکند — برای یک گره بدونسرپرست الزامی است. بدون آن، گره نمیتواند خودش احراز هویت کند.state-dirپیشفرض آنtailscaleاست و نسبت به دایرکتوری کاری mihomo حل میشود. گره کلیدها و هویت ماشین خود را در آنجا پایدار میکند، بنابراین استفادهٔ مجدد از همان دایرکتوری، همان هویت tailnet را در سراسر راهاندازیهای مجدد حفظ میکند.ephemeral: trueگرهای را ثبت میکند که سرور هماهنگکننده پس از آفلاینشدنش بهطور خودکار آن را حذف میکند — برای نمونههای کوتاهعمر یا کانتینریشده که نباید در فهرست دستگاههای tailnet باقی بمانند مفید است.exit-nodeیا یک نام گره یا یک IP را میپذیرد. هنگامی که یک همتای واقعی را نامگذاری میکند (نه یک عبارت خودکارِ انتخاب)، mihomo منتظر میماند تا پشتوانهٔ tailnet به وضعیت در حال اجرا برسد و سپس ترجیح گره خروج را اعمال میکند.accept-routesانتخابی است: مسیرهای زیرشبکهٔ اعلامشده توسط دیگر گرهها تا زمانی که آن را فعال نکنید نادیده گرفته میشوند.
نکات بینهستهای
- sing-box Tailscale را بهجای خروجی بهعنوان یک نوع نقطهانتهایی ارائه میکند — این مورد زیر
endpoints[]، در کنار WireGuard، با نامهای فیلد به سبک snake_case قرار دارد. - Xray-core هیچ پشتیبانیای از Tailscale ندارد.
منبع: adapter/outbound/tailscale.go:52-65 · v1.19.27 (5184081)
