ssh端口转发远程连接wsl
我将在下面几篇文章中讲述多种ssh连接另一局域网内的主机的方法。
本文通过设置端口转发,连接到另一主机上的wsl,适用于主机有公网ip或处于同一局域网内的情况。
1. 先在WSL2中安装openssh-server
sudo apt update
sudo apt install openssh-server
启动ssh服务,并设置WSL2启动时自动启动服务
sudo service ssh start
sudo systemctl enable ssh
sudo systemctl status ssh
如果要修改ssh的端口,到/etc/ssh/sshd_config
中,修改Port
字段即可。
-
注意要保证wsl版本是wsl2,参阅:https://learn.microsoft.com/zh-cn/windows/wsl/install#upgrade-version-from-wsl-1-to-wsl-2
-
还要启用systemd,参阅:https://learn.microsoft.com/zh-cn/windows/wsl/systemd
2. 查看wsl在局域网内的ip地址
wsl在宿主机上有一个唯一的ip地址,可以用这个ip地址进行ssh连接,用如下方式查看:
wsl hostname -I
结果形如:172.29.250.184
3. 设置端口转发规则,将宿主机2222端口转发到wsl的22端口
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=172.29.250.184 connectport=22
其中的connectaddress
要设置为上一步的ip地址
4. 设置防火墙规则
netsh advfirewall firewall add rule name="Open Port 2222 for WSL2" dir=in action=allow protocol=TCP localport=2222
查看效果:
netsh interface portproxy show v4tov4
完成。
此时可以连接,使用命令:
ssh -p 2222 user@xx.xx.xx.xx #宿主机ip地址
参考:
https://www.cnblogs.com/Swetchine/p/18788107
https://www.hanselman.com/blog/how-to-ssh-into-wsl2-on-windows-10-from-an-external-machine