Jetson Nanoを発掘したのでExit Node化(ゲートウェイ化)してTailscaleで“自宅IP”を持ち歩くよ。
“家からしか入れない”ネットサービスに出先から入りたい
「家のWi-Fiからじゃないと入れないWebサービス」に入る必要があり、ノマド族としては割と面倒なことが多いです。
出張やカフェからアクセスしたいのに、自宅限定IPの壁が......といったところにJetson Nano(Raspberry Piでもたぶんいけます)を発掘したので Exit Node化(VPNネットワークの出口) してにして、
TailscaleのVPN経由で「どこにいても家のIPでインターネット」できるようにしたメモです。
(AI執筆です)
1. Jetson NanoをExit Nodeにしてみる
1-1. Tailscaleインストール&ログイン
まずはNano側から。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
↑実行すると「このURLでログインして!」と出るので、指示通りに自分のTailscaleアカウントでログイン。
うまくいくと、tailscale ip -4
とかで100.116.127.34
みたいなIPがもらえるはず。
1-2. Exit Node用のIPフォワード有効化
家からの「出口」になるにはIP転送が必須っぽいです。
sudo sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
/etc/sysctl.conf
に書いとけば再起動してもOK。
1-3. Exit Nodeとしてアドバタイズ(ここでちょっとハマった)
sudo tailscale up --advertise-exit-node
↑警告が出てもたいてい大丈夫(IPv6がどーの、は無視しました)。
この後、tailscale status
で「offers exit node」って出てたら一旦安心。
2. Web管理画面でExit Node承認する(※忘れやすい)
ここ超重要でした。
NanoをExit Nodeとしてクライアント側が選択できるようにするには、「承認」が要ります。
- Tailscaleの管理画面(https://login.tailscale.com/admin/machines)にアクセス
- Nanoの「…」→「Edit route settings…」
- 「Use as exit node」にチェック入れて保存
これ忘れてると**「あれ、Exit Nodeとして出てこない…」**でめちゃハマりました。
3. Mac側のVPNクライアント設定
3-1. TailscaleアプリとCLI(ハマりポイントあり)
MacはTailscale公式アプリ(App Store版 or 公式サイト)を入れます。
CLIもコマンドで使いたい場合はエイリアスがおすすめ。
echo 'alias tailscale="/Applications/Tailscale.app/Contents/MacOS/Tailscale"' >> ~/.zshrc
source ~/.zshrc
パスが通ってればtailscale status
とかで状況見れます。
3-2. Exit Node経由通信をON!
まずはExit Node(Nano)がちゃんとリストに出ているか確認。
tailscale status
その上で、
sudo tailscale up --exit-node=n0bisuke-jetsonnano --exit-node-allow-lan-access
「全フラグ明示しろ」みたいなエラーが出たら、
言われた通りに全フラグ付けて再実行すればOKでした。
3-3. IP変わらないかの確認(ここ大事)
「ほんとに家のIPから出てるの?」って確認したい人向け。
僕は**CMANのIP確認サイト**で確認しました。
- まず普通に家Wi-FiでCMANにアクセス→IPメモる
- Macをテザリング(携帯回線)につなぐ
- TailscaleでExit NodeをON
- もう一度CMANにアクセス→IPが家のと同じなら大成功!
コマンド派は
curl https://ifconfig.me
でもOKです。
ハマったポイント・備忘録
-
Nano側でExit Node アドバタイズしたのにMacで選べない
- → Web管理画面で承認が必要だった。完全に見落としてました…。
-
Macで「全フラグ明示しろ」エラー出る問題
- →
--exit-node=... --exit-node-allow-lan-access
と、現在設定中のフラグ全部明示が必要
- →
-
コマンドをNanoで打つのかMacで打つのか混乱しがち
- →
--advertise-exit-node
はNano、--exit-node=...
はMacなど役割を意識
- →
-
CLI版とGUI版の混在でPATHがごちゃると危険
- → エイリアス貼るか、どっちかに寄せるのが無難でした
おわりに
とりあえずこの構成で「家からしか入れないサービス」も
どこからでも自宅IP経由で安全に使えるようになったので大満足です!
同じ壁にぶつかった人の助けになれば嬉しいです。
何か分からないこととか、もっと良いやり方あれば教えてもらえると喜びます!
(※この記事は自分用メモなので、またしれっと追記するかもです)