最简单方式SSH连接局域网中另一台电脑的WSL2

1、首先确认一下WSL2中的SSH服务是否开启:

先安装更新一下,再安装一下ssh服务模块,这里很多人都没有安装过。

sudo apt update
sudo apt upgrade
sudo apt install openssh-server

2、配置SSH服务器:

打开配置文件,这里设置一些SSH连接配置

sudo nano /etc/ssh/sshd_config

去掉#号即可

取消注释 #Port 22 行以指定SSH端口(默认为22)

取消注释 #PasswordAuthentication yes 行以允许密码认证

保存文件并退出编辑器,不会保存的参考下面。

ctrl+x    =>    y    => 回车

3、启动SSH服务,并设置启动电脑时自动启动:

启动服务

sudo service ssh start
sudo systemctl enable ssh

4、最关键的来了,在windows中的设置,端口转发:

       由于WSL2使用虚拟网络适配器,具有自己的私有IP地址,因此局域网内的其他机器无法直接访问WSL2实例。为了解决这个问题,我们需要在Windows中配置防火墙和端口转发规则。

打开Windows PowerShell,以管理员身份运行。运行以下命令,允许传入连接到WSL2:

New-NetFirewallRule -DisplayName "WSL2 SSH" -Direction Inbound -LocalPort 22 -Action Allow -Protocol TCP

(了解)

  • -DisplayName:为规则指定一个显示名称,这里是 “WSL2 SSH”。

  • -Direction:指定规则的方向,这里是 “Inbound”(入站)。

  • -LocalPort:指定要允许的本地端口,这里是 22(SSH 通常使用的端口)。

  • -Action:指定对匹配的流量采取的动作,这里是 “Allow”(允许)。

  • -Protocol:指定协议类型,这里是 “TCP”。

运行以下命令设置端口转发规则,将传入的连接转发到WSL2实例:

netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=<WSL2_IP_Address>

<WSL2_IP_Address> 需要一起替换掉,这个需要打开WSL2 然后运行ifconfig就能看到了。

例如我的,就像下面这样输入

netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=172.31.88.96

验证端口转发规则是否正确设置:

netsh interface portproxy show v4tov4

登录时使用下面命令,连接局域网的其他电脑,指定具体端口22,就到了wsl2中。与以往方式的区别。

ssh -p 22 Username@192.168.xxx.xxx

=======================================================================

wsl2中的地址是动态的,可能会改变,不算一劳永逸的办法,但是上面的设置已经能够满足一定的使用需求,且操作不难。

关于设置wsl2为静态IP根据个人需求,由于较为繁琐,不符合题目,故有需求请别处查看。不建议,操作后wsl2似乎没连不上网,重新设置了DNS才解决。

                                                                      请点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值