Tailscale(WireGuardによる高速VPN)で接続元のIPではなく接続先のIPで外部のWebサイトにアクセスする際は「exit node」を使用する

先日
現状のVPN環境はヤマハルーター「NVR500」のL2TP/IPsecですが他のVPN環境も検証>Tailscale(WireGuardによる高速VPN)の接続先(サーバー側subnet router機能)をLinuxのDocker環境で動かしてみた(クライアントはWindows 11)(2026年2月14日(土曜日))
な環境を導入しました。通常のVPNと同様、こちらのVPNに接続したらその接続先のローカルに所属し、その接続先のIPでWebサイトなどにアクセスするのかと思いきや、そうではないのが標準でございました(ローカルブレイクアウトとかその方が帯域的に都合良い場合もございますが)。なのでSquidとかProxyサーバーのDocker環境でも作れば接続先のIPでWebにアクセスするとかできるのかな?と思ってたらTailscaleでそういう接続ができるオプションがあるようです。

それは「exit node」。Grokに聞いたら
質問の意図は「Tailscaleのsubnet router経由で、外部のWebサイト(GoogleとかYouTubeなど)にアクセスしたい」で、つまり外出先のデバイスから内部ネットワークのマシンを経由してインターネットに出る(出口IPが内部ネットワークのものになる)ということですね。結論から言うと:subnet routerだけでは外部Webの経路は変わりません。
Tailscaleのsubnet routerはプライベートサブネット(内部LAN)への到達専用で、**一般的なインターネットトラフィック(0.0.0.0/0)**はルーティングしません。外部のWebサイトを接続先のネットワーク(例: 自宅回線)のIPでアクセスしたい場合は、**Exit Node(出口ノード)**機能を使います。


という事で。

結論として
これで外部Webサイトへのアクセスが自宅回線のIPから出るようになります。

と。
subnet routerとexit nodeの機能簡易比較
さっそく設定していきましょう。ちなみにsubnet routerとexit nodeを同時ノードで有効化可能(無料のFreeプランでも)という事で今回やるのは前回、subnet router環境として用意した
docker-compose.yml
ファイルに
- TS_EXTRA_ARGS=--advertise-exit-node --accept-routes --reset
を追加してそのファイルがあるディレクトリで
docker compose down
して
docker compose up -d
でLinxu側の環境設定は完了。そうするとTailscaleの管理画面一覧でexit node設定したマシンの設定に
Tailscale管理画面で「exit node」表記が追加
「exit node」の表示が出て来ました。この時点ではまだ機能はOnになっていないので

「...」 → 「Edit route settings」→「Use as exit node」
「...」 → 「Edit route settings」→「Use as exit node」にチェックを入れて保存
にチェックを入れて保存。

これでサーバー側の環境構築は完了。

クライアント側でexit nodeを使用する時には明示的にその接続使用を選択しなければなりません。
Windowsですと
Windows 11のTailscaleアプリでexit node経由で接続し自宅内LAN経由から外部Web接続
iPhoneですとアプリの方から
iPhone(iOS)のTailscaleアプリでexit node経由で接続し自宅内LAN経由から外部Web接続
iPhone(iOS)のTailscaleアプリでexit node経由で接続し自宅内LAN経由から外部Web接続
ですね。

必要に応じてLANアクセスも同時に有効に--exit-node-allow-lan-access をクライアント側に追加すると、exit nodeを使いつつ自宅LANの内部機器にもアクセス可能

これはやらなくてもローカルのいわゆる自宅LAN内内部機器にも接続できましたけれども。