【TailScale使用】外から自宅サーバーにVPN経由でアクセスをしたい
はじめに
本記事では、Tailscaleを使用して自宅サーバーに外から安全にアクセスできるようにする方法を解説していきます。Tailscaleを使用すればポート解放せずにTailscaleのVPN経由で自宅サーバーにアクセすることができるということになります。
また、Tailscaleは100台まで無料で追加することができ、簡単にVPN網に追加もできることからとてもおすすめです。
検証環境
今回は以下のような環境(構成)を使用しています。
- Remote machine
- host machine
導入
Tailscaleアカウントの作成
-
Tailscaleにアクセスし、Tailsclaeのアカウントの作成を行います(筆者はGithubで作成しました)。
- アカウント作成後にMachinesにアクセスすると、以下のようなものが見れます(筆者はすでに利用しているため、4つ既に表示されています)。
ホスト側でTailscaleをセットアップ
- 先ほどの、画面の下に
Connect more machines by installing Tailscale
とハイパーリンクが張られていると思うので、そちらをクリックします。
2.下記画像のような画面が表示されると思うので、ホスト側のOSのものでダウンロードする。そのため、今回はWindows
を選択してからダウンロードします。
- ダウンロードしたらインストーラーを起動します。起動すると、ライセンスに同意してからInstallをクリックしてインストールを開始します。
- 下記画像のようにWindowsの場合は通知で右下からTailscaleにログインするように求められるため、通知をクリックします。
- 通知をクリック後に、ブラウザで下記画像のようなものが表示されるため、
Connect
ボタンをクリックし先ほど作成したアカウントでログインしてください。
- ログイン後にMachinesにアクセスすると、新しく下記画像のように自分の環境が追加されていることが確認できます。これで、ホスト側の設定は完了しました。
リモート側でTailscaleをセットアップ
リモート側でも同様にインストールとダウンロードをしていきます。今回はUbuntuであるため先ほどのLinux
をクリックしてInstall with one command
のコマンドをコピー&ペーストでインストールしていきます。
- 下記のコマンドを実行しインストールしてください(途中でパスワードを求められるかもしれません)。
curl -fsSL https://tailscale.com/install.sh | sh
- インストール後、tailscaleのデーモンを開始するコマンドを実行します。
sudo tailscale up
- URLが表示されるのでブラウザ機能が使える端末で開く。
- 先ほどと同じようにアカウント作成したアカウントでログインをする。
-
Connect
ボタンを押して接続をする。
このようにすることで下記画像のような形で新しく追加されることがわかる。
SSHしてみる
Tailscaleでは、MagicDNSというものが存在します。
MagicDNSは、Tailscaleで作成されたプライベートネットワークであるtailnet内のすべてのデバイスで実行される独自のDNSサーバであり、tailnet内のすべてのデバイスのDNS名が自動登録されるというものである。
このMagicDNSを用いることで、以下のようにMachine名.DNS名.ts.net
でアクセスすることができます。
ssh ユーザー名@Machine名.[Your MagicDNS].ts.net
共有
Tailscaleでは共有機能があります。下記画像にあるように、共有したい機器をShareボタンを押することで共有できます。
クリックしたのちにGenerate & copy invite link
を押すことで招待リンクを作成することができるので、作成したものを共有したい人に渡しすことで共有できます。
この時に、共有された人もアカウントを作成する必要があり、先にログインしておく必要があります。また、ブラウザでログインしてからTailscaleをインストール必要があります。手順を間違えるとインストールしてもログインできず、インストールをやり直す必要があります。
終わりに
以上でTailscaleを用いたVPN網の構築と外から自宅サーバーにVPN経由でSSHをする方法の解説になります。
Discussion