原文链接配置局域网下其他机器通过SSH连接到本机的WSL - 烤肉kr - 博客园

我目前的需求是,笔记本用来写代码,台式机配置了WSL2,这两台电脑在同一局域网下,需要时就SSH连接台式

重装SSH

运行WSL的台式机需要重装一下SSH

1
2
sudo apt remove openssh-server
sudo apt install openssh-server

接着我们需要修改SSH的配置文件,让SSH服务映射到某一个端口上,这里不能选22,因为会与Windows冲突。

1
sudo vim /etc/ssh/sshd_config

需要添加这几项:

这里的3141是我想要映射的端口,你也可以选择任意其他的空闲端口

1
2
3
Port 3141
PasswordAuthentication yes
ListenAddress 0.0.0.0

此时,可以尝试在台式机上,用本机的Windows终端SSH连接WSL,能否成功。

1
2
# ssh username@localhost -p 3141
ssh xh@localhost -p 3141

只要成功,第一步就完成了。

配置防火墙

因为WSL的地址每次重启都会变,但是无论怎么变,在台式机上总是可以通过localhost去访问WSL。
所以我们转变思路,用笔记本直接连台式机的某一端口,然后在台式机那一端口上做转发,转发到localhost上,就可以不用管WSL地址,总能连上去。

所以我们这里配置一下台式机的防火墙。

image-20250318112432107

入站规则->新建规则->端口->TCP,特定本地端口:3141->允许连接->域、专用、公用->名称描述任意->完成

配置完成后,在台式机的cmd,键入以下命令做转发:

1
netsh interface portproxy add v4tov4 listenport=3141 listenaddress=0.0.0.0 connectport=3141 connectaddress=localhost

输入一下命令查看规则建立了没有:

1
netsh interface portproxy show all

到此就大功告成了,可以在笔记本上用以下命令去连接台式机的WSL

1
2
# ssh username@台式机的IP地址 -p 3141
ssh [email protected] -p 3141