「メインPCのWSL2で動かしているWebツールを、別のPCから安全に使いたい」
このような場合に使えるのがTailscale。VPNの一種ですが、無料で使いやすい!
VPNサーバーの構築、固定IPアドレスの用意、ルーターのポート開放などを行わなくても、端末同士を接続できます。
自宅でもカフェでも、通信は暗号化され、許可した機器・ポートだけが接続できます。
今回は、WSL2環境を別のPCで動かす方法をまとめました。
条件
今回は、次のような流れを作りました。

詳細は下記のとおり。
- メインPC:Windows 11+WSL2
- サブPC(PC B):WindowsのブラウザからWebツールを操作
- 許可しない通信:Tailscaleで許可されていないSSHや、そのほかのポート
またさらに、ポート8080だけ接続を可能にする、というのも行いました。
両方設定を書いておきます。
Tailscaleをインストールする
①Tailscaleのアカウントを作成します。
②サブPC(PC B)には、普通にTailscaleをインストーラを通じてインストール
Tailscaleに接続します。IPアドレスが発行されます。
ちなみにここで発行されるIPアドレスは、Tailscale専用アドレス。カフェでも自宅でも、端末ごとに同じアドレスのままです。これをもとに、実際の機器に届けてくれる仕組みです。

いってみれば、郵便の転送システムですね。
③メインPCは、WSL2へTailscaleをインストールします。
*メインPCのWindows側にはTailscaleを入れません。WSL2と両方で動かすと、WSL2の通信が通らなくなります。
WSL2側へのインストールにはコマンドを使います。
|
1 2 |
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up |
表示されたURLをブラウザで開いてログインします。登録後は、次のコマンドで状態とIPアドレスを確認できます。
|
1 2 |
tailscale status tailscale ip -4 |
tailscale ip -4で、Tailscaleで接続できるIPアドレスが表示されます。管理画面のMachinesページで、サブPC(PC B)とWSL2の両方が表示されていることを確認します。
④WSL2側でTailscaleを通じたSSH通信を可能にしておきます。
|
1 |
sudo tailscale set --ssh |
Access Controlsで接続先を制限
さらに、メインPCでTailscale管理画面にログインします。
サブPC(PC B)が接続できる場所を制限します。管理画面の「Access Controls/JSON editor」を開きます。

初期設定では、すべての通信を許可するように、次の設定になっています。
|
1 2 3 4 5 |
{ "src": ["*"], "dst": ["*"], "ip": ["*"] } |
こちらを変えて、サブPC(PC B)からWSL2への通信だけを許可します。
ほかの端末どうしの通信は拒否されます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{ "hosts": { "pc-b": "PC BのIPアドレス", "main-wsl": "メインのIPアドレス", }, "grants": [ { "src": ["pc-b"], "dst": ["main-wsl"], "ip": ["tcp:22", "tcp:8080"], }, ], "ssh": [ { "action": "check", "src": ["autogroup:member"], "dst": ["autogroup:self"], "users": ["autogroup:nonroot", "root"], }, ], } |
src:接続するPC Bdst:接続先のWSL2- IP:利用可能なポート
設定したらSaveを押します。
8080番だけを許可する
以上でOKですが、さらに接続を絞ることも可能です。たとえば、ポート8080だけを許可することにします。管理画面の「Access Controls/JSON editor」を開き、下記のようにします。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "hosts": { "pc-b": "PC BのIPアドレス", "main-wsl": "メインのIPアドレス", }, "grants": [ { "src": ["pc-b"], "dst": ["main-wsl"], "ip": ["tcp:8080"], }, ] } |
src:接続するサブPC(PC B)dst:接続先のWSL2tcp:8080:8080番だけを許可
設定したらSaveを押します。
実際にサブPC(PC B)で、メインPCのWebツールを開いてみます。
ブラウザで次のURLにアクセスします。
http://WSL2のTailscale IP:8080/
Webツールの画面が表示されれば成功です。
上記のようにした場合は、SSHなど他のポートは拒否されます(接続はタイムアウトになります)。
複数名での利用も可能
家族や同僚など、ほかの人にも使ってもらえます。
管理画面のUsersページで「Invite external users」を選びます。
招待リンクを作成して、相手に送るだけです。

招待した人は自分のPCにTailscaleを入れ、リンクからログインします。
あとはsrcに相手のメールアドレスを追加します。
無料のPersonalプランでも、6ユーザーまで使えます。
接続をとめたいとき
Tailscaleの管理画面 Network/Machinesより、接続をとめたいマシンを選択。
「Remove machine」で削除します。
まとめ
Tailscaleの利点は、次の3つを比較的簡単に設定できることです。
- 通信を暗号化する
- ルーターのポートを一般公開しない
- 接続元、接続先、ポートを限定する

無料でできることがかなり多い太っ腹なサービスです。
ちなみにこちら、メルカリなどの企業でも使われています。


