2020年12月12日土曜日

WSL2に同じネットワーク内の他のPCからSSH接続する

WSL2が正式にリリースされてしばらくたったので試しに使ってみたのだが、ひとつ問題があった。WSL2のUbuntuに同じネットワーク内にある他のPCからSSH接続できなかった。以下の記事によるとWSL2になってネットワークが改良されたようだがそれが影響しているらしい。

Windows Subsystem for Linux 2におけるネットワークの改良

そこで、WSL2でも同ネットワーク内の他のPCからSSH接続できるようにしてみる。


環境


Windows10 Pro 1909
WSL2 Ubuntu20.04


WSL2でSSHを有効にする


まずはWSL2のUbuntuでSSH接続できるようにしておく。
 

念のためUbuntuのLISTEN状況を確認してみるが問題なさそう。

さらにファイヤーウォールで22番ポートを遮断しないように設定しておく。WSLならこれで同ネットワーク内の他のPCからSSH接続できるのだがWSL2では接続できない。


回避策

GitHubのWSLのissuesでこの問題についての回避策が紹介されている。

[WSL 2] NIC Bridge mode 🖧 (Has TCP Workaround🔨) #4150

この回避策ではWindowsのnetshコマンドでWSL2を起動しているWindows10にプロキシを追加している。ここで紹介されているコマンドとは少し違うが以下のコマンドでも他のPCからSSH接続できた。listenaddressにはWSL2を起動しているPCのIPアドレスを指定する。このコマンドを実行すると、192.168.1.10宛の接続を127.0.0.1に転送するようになる。


追加した設定の確認。

これでWSL2のUbuntuにWSL2を起動しているPCと同ネットワーク内にある他のPCからSSH接続できるようになった。


0 件のコメント:

コメントを投稿