はじめに
最近、TailscaleというVPNを使っています。きっかけは、以前QiitaにWireGuardの導入方法を投稿した際、「Tailscaleの方が便利だよ」というコメントをいただいたことでした。それ以来、Tailscaleをメインで使うようになりました。
WireGuard派の方もいらっしゃるかと思いますが、Tailscaleは鍵の管理が不要で導入が簡単なうえ、モダンなWeb UIが用意されていて管理もしやすいため、個人的にはTailscaleを使うようになりました。
Tailscaleには多くの機能がありますが、中でも「Exit Node」機能が便利です。これは、Tailscaleをインストールした端末をインターネットのゲートウェイとして利用できる機能で、私もこれを使ってトラフィックを自宅へ逃してインターネットにアクセスしたりしています。
Exit-Nodeについて詳しく知りたい方はこちら↓(学内や社内での利用には注意が必要です)
解決したいこと
現在、自宅に設置したUbuntuサーバ(Tailscale入り)をExit Nodeとして使い、インターネットへアクセスしています。
しかし最近、電気代の高騰を受けて「節電しよう」という話が家庭内で持ち上がりました。サーバの稼働による電力消費を見直したいと考えていたところ、以下の記事を見つけました。
手順
Oracleクラウドでのインスタンス作成
上記の記事を参考に、Oracle Cloudで無料インスタンス(Ubuntu 22.04)を作成します。
基本的には記事通りに作業を進めれば問題ありませんが、「可用性ドメインAD-1のシェイプVM.Standard.A1.Flexの容量が不足しています」というエラーでインスタンスが作成できないことがあります。私も同様のエラーに遭遇しましたが、アカウントをアップグレードすることで回避できました(※アップグレード時にはご注意を)。
また、なぜかインスタンス作成段階でブート・ボリュームの料金が発生しています。ただ、契約額の合計は¥0と表示されているため、実際には無料のようです。もし理由をご存知の方がいれば、コメントいただけると助かります。
↓スクリーンショット(料金表示)
Tailscaleでのアカウント作成
以下のサイトからアカウントを作成してください。
インスタンスへのTailscaleの導入
インスタンスへSSHで接続し、Tailscaleをインストールします。SSH接続の方法は以下を参考にしてください。Tailscaleのインストールする手段は色々あります。
インストール方法①:Web UIからスクリプト生成
-
Tailscaleの管理画面で「Add device」をクリック
-
「Generate install script」を選択
-
表示されたスクリプトをインスタンスにコピー&実行
インストール方法②:curlコマンドで手動インストール
詳しくはこちらを参照ください。
インスタンスをExit-Nodeとして起動
次は、インスタンスでTailscaleを起動させるとともにExit-Nodeとする方法を説明します。
1. まず、Ubuntuでトラフィックを転送できるようにしていきます。
# 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
2. 次にNATの設定をしていきます。(※[インターフェイス]は適宜置き換えてください)
# sudo iptables -t nat -A POSTROUTING -o [インターフェイス] -j MASQUERADE
3. 最後に、Tailscaleを起動させます。
# sudo tailscale up --advertise-exit-node
確認
無事にOracleクラウドのインスタンス経由で、インターネットへアクセスすることができているかを確認します。今回は、Mac BookでTailscaleを起動させ、Exit-Nodeにインスタンスを指定してグローバルIPv4を確認していきます。
※MacではGUIで操作することができますが、場合によってはCLIでの設定が必要となります。各種設定については以下をご参考ください。
まず、App StoreからTailscaleをインストールし、起動させます。その次は、Tailscaleのアカウントと連携させVPN接続が可能なようにします。そして、Tailscale Appを起動させると、上バーにTailscaleのマークが表示されるので、そこからVPN接続を開始します(Connectedと表示されます)。次に、「Exit Nodes」から作成したインスタンスを指定します。無事に、設定が終了すると上バーのアイコンが以下のようになります。
この状態で、以下のサイトでグローバルIPv4を確認します。
確認すると、Oracleの「インスタンスの詳細」で表示されているグローバルIPv4アドレスと同一のアドレスであることが確認できます!
( 黒塗り部分に表示されるIPアドレスが同じはずです!! )
最後に
今回は、Oracle Cloudの無料インスタンスをTailscaleのExit Nodeとして使う方法を紹介しました。無料であるかどうかはやや不安が残りますが、無料で作成したインスタンスを介して、インターネットへアクセスできるようになります。
この記事が少しでもお役に立てれば嬉しいです。ありがとうございました!