WSL2 (Windows Subsystem for Linux 2) は、Windows上でLinux環境を簡単に実行できる非常に便利なツールです。
しかし、外部のパソコンからWSL2のIPアドレスを使って接続しようとしてもうまくいかないことがあります。
WSL2が仮想的なネットワーク上で動作しており、デフォルト設定では外部からの接続が制限されているためです。
更に、
- 起動するたびにIPアドレスが変わったり、
- IPを固定できなかったり、
- ホスト側からルーティングがひつようだったり
と設定が複雑です…
WSL(1)のときはもう少し簡単に外部から接続できたようなのですが、WSL2になってネットワーク接続が難しくなりました。
そこで、今回は簡単に外部のパソコンからWSL2にネットワーク経由で接続する方法をご紹介します。
この方法を使えば、仕事やプロジェクトにおいて、色んなデバイスからWSL2環境にアクセスできるようになります。更に、LAN外からもアクセスできるようになるのでめちゃくちゃ便利になります。
Tailscaleとは
Tailscaleは、セキュアなプライベートネットワークを簡単に構築できるアプリケーションです。
このアプリケーションを利用することで、異なるデバイス間で安全かつ簡単にVPN接続ができます。
Tailscaleは、ユーザー認証にGoogle、Microsoft、Okta等の各種プロバイダーを利用できるため、既存のアカウントを使って簡単に接続ができます。
また、Tailscaleは、WireGuardという高速でセキュアなVPNプロトコルをベースに作られており、NAT(Network Address Translation)を介した通信やファイアウォール越しの通信もサポートしています。
これにより、LAN内以外の場所からでも任意の端末にアクセスできます。
イメージとしては👇こんな感じです。
外部端末
||
Tailscale
||
WSL2
Tailescaleを通して、外部端末からWSL2に直接アクセスできるようになります。
Tailescaleは有料プランもありますが、基本無料で大丈夫です。
接続元のPCへのTailscaleのインストール
外部のパソコンからWSL2に接続するためには、まず接続元(手元)のPCにTailscaleをインストールする必要があります。
各種OSに対応したインストールを行ってください。WindowsとMacはGUIでアプリをダウンロード、インストールして、GoogleなどのアカウントでログインすればOKです。
Windowsの場合
Tailscaleの公式サイトからインストーラをダウンロードし、インストールしてください。インストール後、Tailscaleを起動し、指示に従って認証を行ってください。
macOSの場合
Tailscaleの公式サイトからインストーラをダウンロードし、インストールしてください。インストール後、Tailscaleを起動し、指示に従って認証を行ってください。
Linuxの場合
Linuxディストリビューションに応じたインストール方法が公式ドキュメントに記載されています。対応するディストリビューションに従ってインストールを行い、指示に従って認証を行ってください。
インストールが完了したら、Tailscaleアプリを起動し、指定されたプロバイダー(Google、Microsoft、Okta等)を使ってログインしてください。
これで、接続元のPCにTailscaleがインストールされ、認証が完了します。次に、WSL2にTailscaleをインストールする手順に進みましょう。
WSL2へのTailscaleのインストール
2023年4月30日現在、Ubuntuの最新バージョンは22.04ですが、WSL2上のUbuntuは 20.04なので20.04版のインストール方法を参考にしてください。
インストールが終わっていざ起動しようと思おうと次のコマンドでエラーが出ました。
sudo tailscale up
failed to connect to local tailscaled; it doesn't appear to be running (sudo systemctl start tailscaled ?)
tailscaledが起動してい無いから接続できないよ!って言ってますね。
そこで、tailscaled
を起動してから、
sudo tailscaled
tailscale up
を実行することで無事に起動できました。
sudo tailscaled
sudo tailscale up
エラーメッセージにかかれていたsudo systemctl start tailscaled
はエラーが出て実行できませんでした。
tailscale up
を実行すると画面にURLが表示されます。
URLをブラウザで開いて接続元端末でログインしたのと同じアカウントでログインします。
端末がアカウントに紐付けられてIPアドレスが割り当てられます。
同じアカウントでログインしている端末間で接続か可能な状態になります。
IPアドレスを管理画面から確認するか、次のコマンドでも確認できます。
tailscale ip -4
接続元端末から上記ので確認したIPアドレスにアクセスすると正常に接続できることが確認できるはずです。
お疲れさまでした!
これで、どこからでもWSL2に接続できるようになりました!
WSL2にネットワーク接続する方法まとめ
- 接続元PCにtailscaleをインストール
- WSL2にtailscaleをインストール
- WSL2のIPアドレスを確認する
- 接続元PCからWSL2のIPにアクセス
たったこれだけの設定で、LAN内からからだけではなく、外部のネットワークからでもアクセスできるようになりました。
WSL2が入ったパソコンがどこに置いてあっても簡単にアクセスできます。
WSL2に接続できなくて苦しんでいたことを考えると格段に便利になりましたね!
それでは素敵な開発ライフを!(^^)v
コメントを残す