こんにちは。小川智也です。
今回はTailscaleのSubnet routers及びExit nodesの設定方法・使い方について、初心者向けに解説していきます!
この記事でわかること
- Subnet routers・Exit nodesでできること
- Subnet routers・Exit nodesの設定方法
- 便利な活用方法・具体的な活用シーン
小川智也と申します。Webプログラマーな中学3年生です。
このブログでは主にITやガジェット系の情報を発信しています!
▼ おすすめリンク ▼
【 X(旧Twitter)・いえPay・個人事業主・ITパスポート・お問い合わせ 】
前回の記事をお読みでない方は、先にそちらを読んだうえで本記事をお読みいただくとより理解が深まります!
Subnet routers・Exit nodesとは?具体的な活用法は?
まず始めに、今回紹介するSubnet routers・Exit nodesについて説明していきます。
どちらも通信を特定ノード経由で行う機能ですが、役割や利用シーンが異なるものになっています。
Subnet routers
Subnet routersは、Tailscaleを通じてプライベートネットワーク全体にアクセスできるようにする機能です。
Tailscale単体では、(当たり前ですが)インストールしたデバイス間でしか通信できません。
そこで、Subnet routersの出番です!ネットワーク内のTailscaleデバイスにSubnet routersで192.168.1.0/24のようなルートを設定することで、Tailscale内のデバイスからプライベートネットワークにアクセスできるようになります。
Subnet routersを活用すると、Tailscaleをインストールできないルーターを遠隔で保守したり、外出先からプリンターで印刷したりすることができます。
Exit nodes
Exit nodesは、デバイスの通信全体を特定ノードに流す機能です。
サーバー側のデバイスで設定したのちに、クライアント側のExit nodesスイッチをオンにすることで、特定ノードを経由して通信することができます。
Exit nodesを活用すると、地域の検閲を回避してサイトにアクセスしたり、フリーWi-Fiなどの安全でないネットワークを利用する際でも、安全なTailnetを経由してサイトにアクセスすることが可能になります。
ちなみに、特定ドメインへの通信のみを通したい場合は App connector という機能もあります!(後日記事にする予定です)
対応OS
クライアント側は全デバイス対応していますが、サーバー側(ゲートウェイ側)となるデバイスは一部制限があります。
| 項目 | 対応OS |
|---|---|
| Subnet routers | Linux, macOS, tvOS, Windows, Android |
| Exit nodes | Linux, macOS, tvOS, Windows, Android, iOS |
基本的にはLinuxサーバーがおすすめですが、検証する分には最悪不要になったAndroidスマホでもどうにかなります
設定方法
今回は公式のガイドに従って構築していきます。
なお、Tailscaleは既にインストールされているものとして進めます。
情報は2026年6月時点のものです。
情報が古くなっている可能性もあるので、不安な方は下記の公式サイトも参考ください!
参考 Subnet routers · Tailscale Docs https://tailscale.com/docs/features/subnet-routers
参考 Exit nodes (route all traffic) · Tailscale Docs https://tailscale.com/docs/features/exit-nodes
(Linuxの場合) 共通手順
Linuxの場合は、事前にターミナルで下記のコマンドを入力しIPフォワーディングを有効にします
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
こんなときは
Linuxの場合、Tailscale起動時に下記のような警告が表示されることがあります。
Warning: UDP GRO forwarding is suboptimally configured on eth0, UDP forwarding throughput capability will increase with a configuration change.
See https://tailscale.com/s/ethtool-config-udp-gro
これは、Linuxカーネル6.2以降でUDP GROフォワーディング(=複数パケットをまとめて処理しスループットが向上する機能)がOFFになっている場合に表示される警告です。
最近のLinuxディストリビューションであれば下記のコマンドを実行することで有効にできるので、ついでに実行しておきましょう。
# 1. UDP GROフォワーディングの有効化
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off
# 2. 再起動後も持続するように
printf '#!/bin/sh\n\nethtool -K %s rx-udp-gro-forwarding on rx-gro-list off \n' "$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")" | sudo tee /etc/networkd-dispatcher/routable.d/50-tailscale
sudo chmod 755 /etc/networkd-dispatcher/routable.d/50-tailscale
# 3. スクリプトの動作チェック
sudo /etc/networkd-dispatcher/routable.d/50-tailscale
test $? -eq 0 || echo 'エラーが発生しました!.'
参考 Performance best practices · Tailscale Docs https://tailscale.com/docs/reference/best-practices/performance#operating-system-recommendations
Subnet routers
Subnet routersの有効化
Subnet routersを実行したいデバイスでターミナルを開き、下記のコマンドを実行します。
sudo tailscale set --advertise-routes=192.168.1.0/24
192.168.1.0/24の部分は環境に合わせて変更してください。




AndroidやtvOSの場合は、Tailscaleアプリを開き、[プロフィールアイコン]→[Subnet routing]→[Add route]と進み入力します。
管理画面での有効化

続いて管理画面上での有効化を行います。
先ほどSubnet routersを設定したデバイスの下に「Subnets ( ! )」のような表記が出ているはずです。


右側の「・・・」を押し、赤色で囲んだ「Edit route settings...」を押します。
するとさきほど追加したサブネットが出てくるので、チェックを入れてSaveを押します。
これで設定は完了です。お疲れ様でした。
Exit nodes
Exit nodesの有効化
Exit nodesを実行したいデバイスでターミナルを開き、下記のコマンドを実行します。
sudo tailscale set --advertise-exit-node



Android/iPhone/tvOSの場合は、Tailscaleアプリを開き、[Exit node]→[Run as exit node]と進み有効化します。
管理画面での有効化

上記のSubnet routersと同じ手順のため割愛します(下部のUse as exit nodeにチェックを入れるところだけが別です)
これで設定は完了です。お疲れ様でした。
Exit nodeを経由したいときは、クライアント側のアプリのExit node設定で該当のデバイスを選択すると利用できます。
まとめ
まとめです。今回はTailscaleのSubnet routersとExit nodesを使って外出先からネットワークにアクセスする方法について解説していきました。
これからTailscaleを導入しようと思っている方の参考になれば幸いです。
次回はTailscale SSHの使い方と活用法について解説したいと思います。
最後まで見ていただき、ありがとうございました。
この記事がいいと思った方はぜひ他の記事も見ていってください!
X(旧Twitter)のフォローもよろしくお願いします!


