TailscaleでExit Nodeを設定する

#101
2024.5.24

TailscaleにはExit Nodeと呼ばれる機能がある。これは文字通り、Tailscaleネットワーク内のExit Nodeを介してすべての通信を行えるというものである。

環境

今回は自宅サーバー(Ubuntu)を出口ノードとする。

  • Mac Pro (Ubuntu 22.04): 出口ノード

  • MacBook Pro (macOS 13.6): クライアントノード

セットアップ

基本的にはドキュメントに従えば良い。

まずはサーバー側の設定。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

--advertise-exit-nodeオプションとともに、tailscale upを実行。

$ sudo tailscale up --advertise-exit-node

UDP GRO forwardingというのを有効化したほうがいいと言われるが、今回は簡単のため無視する。

次に、Admin consoleのMachinesから、サーバーの"Edit route settings..."を開き、"Use as exit node"を有効にする。

これで、サーバーを出口ノードとして使えるようになる。

あとは、クライアント側で出口ノードを選択すれば、すべての通信が設定した出口ノードを経由するようになる。

参考