Tailscale

コアには tsnet インスタンスが内蔵されており、Tailscale/Headscale ネットワーク内のノード(または exit node)をそのまま出口プロキシとして使用できます。別途 Tailscale クライアントをインストールする必要はありません。

設定例

config.yaml YAML
proxies:
  - name: "tailscale"
    type: tailscale
    hostname: mihomo
    auth-key: tskey-auth-xxxx
    udp: true
    accept-routes: true
    exit-node: 100.64.0.1
    exit-node-allow-lan-access: true
    ip-version: ipv4-prefer

フィールドの説明

hostnameオプション

Tailscale のデバイス名。空欄にすると tsnet が自動で処理します。

auth-keyオプション

Tailscale または Headscale のログインキー。空欄の場合、初回起動時にログでインタラクティブなログインリンクが表示されます。

control-url / state-dirオプション

control-url はカスタムの control server や Headscale アドレス、state-dirtsnet の状態ディレクトリで、デフォルトは tailscale です。

accept-routesオプション

Tailnet 内で公開されているサブネットルートを受け入れるかどうか。

exit-node / exit-node-allow-lan-accessオプション

exit-node はどの出口ノードを使うか指定します(IP を入力するか、auto:any で自動選択)。exit-node-allow-lan-access は出口ノード使用時にローカル LAN へのアクセスを許可するかどうかを決めます。

dialer-proxy / interface-name / routing-markオプション

他のプロトコルと意味は同じです:dialer-proxy は Tailscale のコントロールプレーンおよび DERP/STUN 接続が経由する出口プロキシを指定し、interface-name/routing-mark は複数ネットワークカード/ポリシールーティングの場面で使用します。

宛先が Tailscale のルーティング範囲外の場合、接続はエラーとなり自動的に直接接続へフォールバックすることはありません。パブリックネットワークにアクセスするには、利用可能な exit-node を設定するか、対象のネットワーク範囲をカバーするサブネットルートを受け入れる必要があります。また、すべてのプロキシは最初のヒット時にのみ実際の接続が確立されるため、Tailscale ノードへの初回アクセスがたまにタイムアウトするのは正常な現象です。何度か試してみてください。