🌐

【TailScale使用】外から自宅サーバーにVPN経由でアクセスをしたい

2023/05/22に公開

はじめに

本記事では、Tailscaleを使用して自宅サーバーに外から安全にアクセスできるようにする方法を解説していきます。Tailscaleを使用すればポート解放せずにTailscaleのVPN経由で自宅サーバーにアクセすることができるということになります。
また、Tailscaleは100台まで無料で追加することができ、簡単にVPN網に追加もできることからとてもおすすめです。

検証環境

今回は以下のような環境(構成)を使用しています。

  • Remote machine
  • host machine

導入

Tailscaleアカウントの作成

  1. Tailscaleにアクセスし、Tailsclaeのアカウントの作成を行います(筆者はGithubで作成しました)。
  2. アカウント作成後にMachinesにアクセスすると、以下のようなものが見れます(筆者はすでに利用しているため、4つ既に表示されています)。

ホスト側でTailscaleをセットアップ

  1. 先ほどの、画面の下にConnect more machines by installing Tailscaleとハイパーリンクが張られていると思うので、そちらをクリックします。
    2.下記画像のような画面が表示されると思うので、ホスト側のOSのものでダウンロードする。そのため、今回はWindowsを選択してからダウンロードします。
  1. ダウンロードしたらインストーラーを起動します。起動すると、ライセンスに同意してからInstallをクリックしてインストールを開始します。
  2. 下記画像のようにWindowsの場合は通知で右下からTailscaleにログインするように求められるため、通知をクリックします。
  3. 通知をクリック後に、ブラウザで下記画像のようなものが表示されるため、Connectボタンをクリックし先ほど作成したアカウントでログインしてください。
  4. ログイン後にMachinesにアクセスすると、新しく下記画像のように自分の環境が追加されていることが確認できます。これで、ホスト側の設定は完了しました。

リモート側でTailscaleをセットアップ

リモート側でも同様にインストールとダウンロードをしていきます。今回はUbuntuであるため先ほどのLinuxをクリックしてInstall with one commandのコマンドをコピー&ペーストでインストールしていきます。

  1. 下記のコマンドを実行しインストールしてください(途中でパスワードを求められるかもしれません)。
bash
curl -fsSL https://tailscale.com/install.sh | sh
  1. インストール後、tailscaleのデーモンを開始するコマンドを実行します。
bash
sudo tailscale up
  1. URLが表示されるのでブラウザ機能が使える端末で開く。
  2. 先ほどと同じようにアカウント作成したアカウントでログインをする。
  3. Connectボタンを押して接続をする。

このようにすることで下記画像のような形で新しく追加されることがわかる。

SSHしてみる

Tailscaleでは、MagicDNSというものが存在します。

MagicDNSは、Tailscaleで作成されたプライベートネットワークであるtailnet内のすべてのデバイスで実行される独自のDNSサーバであり、tailnet内のすべてのデバイスのDNS名が自動登録されるというものである。

このMagicDNSを用いることで、以下のようにMachine名.DNS名.ts.netでアクセスすることができます。

powershell
ssh ユーザー名@Machine名.[Your MagicDNS].ts.net

共有

Tailscaleでは共有機能があります。下記画像にあるように、共有したい機器をShareボタンを押することで共有できます。

クリックしたのちにGenerate & copy invite linkを押すことで招待リンクを作成することができるので、作成したものを共有したい人に渡しすことで共有できます。
この時に、共有された人もアカウントを作成する必要があり、先にログインしておく必要があります。また、ブラウザでログインしてからTailscaleをインストール必要があります。手順を間違えるとインストールしてもログインできず、インストールをやり直す必要があります。

終わりに

以上でTailscaleを用いたVPN網の構築と外から自宅サーバーにVPN経由でSSHをする方法の解説になります。

Discussion