📶

Tailscaleが凄すぎる!VPNをド素人でも10分で作れて導入できた!

に公開

はじめに

最近出張に多くいったり、プライベートで遠方にいることも多く、どうしてもデスクトップPCを触ることができません。家にはハイスペックなGPU付きのゲーミングデスクトップがあるので、どうしてもそこに出先のノートパソコンからアクセスしたい。でもよくよく考えると出先と家では接続しているLANも異なるし容易に接続できないことはわかるでしょう。一方で、VPNの知識やネットワークの知識もないし、変にポートフォワーディングやポート開放する等適当なことやるとセキュリティ的にも危ないし。。、みたいなときにすごく便利なのがTailscaleです。

☛いわゆるハードウェアを持っていないクラウド等の仮想マシンのVPN参加も可能です。なんて便利。。

やりたいこと

☛これを私が今作るのはかなり難しい。。アプリのエンジニアだし。。

この記事の対象者

・ネットワークやVPNの初心者
・出先から家or会社のLANに接続したい
・とにかくすぐに導入したい
・そこそこセキュリティの実績があるものを使いたい(ポート開放不要&ファイアウォール設定不要)

Tailsclaeの導入の仕方

インストール方法

1. アカウント作成
公式サイト tailscale.com
にアクセスし、GoogleアカウントやGitHubアカウントなどでサインアップします。
私はGithubアカウントでログインしました。

2. アプリのインストール

各デバイスにTailscaleクライアントをインストールします。対象のデバイス全てにインストールが必要です。無料版では最大20件登録できます。Windowsの場合は公式インストーラーを利用します。それ以外は、CLIでの導入ができるようです。

3. 認証
インストール後、tailscale up を実行またはアプリを起動すると、ブラウザでログイン画面が開きます。ここでアカウント認証を行います。

基本的な使い方

デバイス一覧

ログインすると、自分のアカウントに紐づくすべてのデバイスが「tailnet」に登録されます。管理画面やtailscale statusコマンドで確認可能です。

☛VPNに接続されているとconnectedという表示になります。VPN内のプライベートなIPアドレスについては自動で割り振りをしてくれます。

接続確認

登録されたデバイス同士は、自動的に暗号化されたVPNでつながります。
例えば、あるPCから別のPCにSSH接続する場合:

ssh user@<tailscale_IP>

tailscale_IP はtailscale statusで確認できます。

ファイル共有(MagicDNS + Taildrop)

MagicDNS: hostname.tailnet-name.ts.net 形式で名前解決できる機能。IPを覚える必要なし。
Taildrop: コマンドやGUIでデバイス間のファイル転送が可能。

tailscale file cp ./example.txt laptop:

個人的に便利な使い方

SSHで接続しVScodeでコード編集


もちろんリモートデスクトップ等でもよいのですが、動作の軽量さやプログラミング目的等であればこの方法が速く導入できてとても良いと思います。

VScodeでのSSH接続の仕方

  1. VScode拡張機能でremote sshをインストールしてください。
  2. 左下の><を押します
  3. ホストに接続するを選択します
ssh <ユーザー名>@IPアドレス

sshコマンドを入力してください。上記で設定が完了です。
成功すると左下にホスト側のIPアドレスが表示されます。

そのほか使い方

上記以外の使い方として、想定されるのはやはり会社⇔家のデータ転送等ですよね。
どの会社でも(笑)かなりグレーだと思いますが、やっかいなのはプロキシ環境下(リバースプロキシ等)だと思います。確実な会社⇔家のVPN接続をするのであれば、会社のPCの社内VPNを強制OFFまたはNO PROXYに設定し、Tailscaleを会社のPCにインストールすることで家のVPNに参加するのが一番楽な導入だと思います。

Tailscaleのデメリット

唯一のデメリットは、VPNに参加するすべてのデバイスにインストールする必要があるところですかね。それ以外は、今のところ特に見つかっていません。スピード等も全く問題なし。

まとめ

とにかく早くVPNの導入ができ使うことができました。
今後もこれを活用し豊富な(笑)家の計算リソースを使っていきたいと思います。
とてもオススメな手法なのでぜひお試しください。

Discussion