Tailscale — mihomo
mihomo 可以作为用户态节点加入 Tailscale tailnet 并 通过它路由流量,全部在代理配置内完成。该节点完全在用户态运行(由 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> | 协调服务器 URL;设置此项以指向自托管的 Headscale,而非 Tailscale 的默认值。 |
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 的最简出站:
yaml
proxies:
- name: ts
type: tailscale
auth-key: tskey-auth-xxxxxxxxxxxx通过 tailnet 出口节点路由全部流量:
yaml
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 协调服务器:
yaml
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)
