Featured image of post 记WSL2配置SSH遇到的一个问题

记WSL2配置SSH遇到的一个问题

问题介绍

今天想用 SSH 进行远程开发,SSH 连接到远程 Windows 主机上的 WSL2,一开始通过端口映射,连接成功,但是后来通过局域网 ip 连接就连接失败

也就是用 localhost 和 127.0.0.1 可以成功连接,使用 192.168.X.XXX 连接失败

问题原因

WSL2 并不直接和 windows 共享网卡,而是通过一张虚拟网卡连接到 WSL2,同时,WSL2 自动在本地配置了 localhost 的端口转发,所以可以正常连接

而端口映射其实是转发到 127.0.0.1(localhost),所以可以正常连接

但是,当通过 192.168.X.XXX 连接时(实际使用时,是通过路由器的 DMZ 主机转发),因为连接的其实是电脑的物理网卡,而由于没有配置端口转发,所以无法成功连接到 WSL2 上的 SSH 服务。

解决方案

配置本地端口转发即可

1
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=(ssh port) connectaddress=localhost connectport=(ssh port)
Licensed under CC BY-NC-SA 4.0