我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SSH连接WSL2踩坑记录与增加端口转换规则,实现外网与WSL2的连接

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SSH连接WSL2踩坑记录与增加端口转换规则,实现外网与WSL2的连接

SSH连接WSL2踩坑记录

1. 在WSL里的操作

1 重装openssh-server

sudo apt remove openssh-server      # 如果已经安装了,建设先卸载 sudo apt-get remove openssh-server sudo apt install openssh-server # new install

2 修改配置信息

sudo vim /etc/ssh/sshd_config  # sshd_config is a readonly file

打开文件后,可以用搜索修改如下的信息

Port 2222                   # 监听的端口,可以是其它的ListenAddress 0.0.0.0       # 0.0.0.0 表示所有的地址PasswordAuthentication yes  # 把原来的no改成yes,意思是可以用密码登录PermitRootLogin yes         # 把原来的prohibit-password改成yes

把上面的都改完好,就重启ssh服务

service ssh restart

至止,WSL里的的操作基本上已经完成了

2. ssh连接

1 先测试一下本机的终端是否能连接到WSL的ssh


先打开power shell或者cmd

ssh name@localhost -p 2222  # name为你的WSL的名字,2222是我们上面刚设置要监听的端口

在这里插入图片描述

如上图,提示输入密码,输入你的WSL的密码,即可以进入了。但是现在远程的PC,还是无法通过ssh访问WSL的。

2 配置端口转发和设置防火墙规则


打开WSL

ifconfig  # 查看网络配置

在这里插入图片描述

如上图所示,这里WSL的网络配置情况。一般是172开头,这个就是WSL的IP地址,我们需要装windows的端口转发到WSL。打开Power Shell (用管理员)

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=IP connectport=2222  # IP为你的WSL的IP地址

完成上面后,还需要开户防火墙入站规则

netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222

也可以在 控制面板 --> Windows Defender 防火墙 --> 高级设置 --> 入站规则中设置

如上设置完后,应该可以远程通常本机的IP地址访问WSL了。

注:这里的IP地址不是WSL的IP,是本机的IP,可以在Power Shell下用ipconfig查看

ssh name@ip -p 2222 # name是WSL的用户名,ip是windows的ip,2222是我们设置的端口

出现要求输入password即成功了。

3. 可能出现的错误

ssh的时候,可以用-v debug一下,看看是什么问题

如下问题:

ssh_exchange_identification: read: Connection reset by peer

这个问题可能是在修改sshd_config里配置项Port(端口号)与我们映射的不一致。重新修改后,启动ssh服务后,再尝试连接即可。

4. 再配置端口转发到WSL

如果要增加其它端口转发到WSL,可能 过过如下命令继续添加。注意是在Power Shell

netsh interface portproxy add v4tov4 listenaddress=* listenport=80 connectaddress=IP connectport=80  protocol=tcp  # IP为你的WSL的IP地址,增加监听80端口
# 删除转换端口netsh interface portproxy delete v4tov4 listenport=80 protocol=tcp# 查看转发规则netsh interface portproxy show v4tov4

如下,可以修改WSL ip地址

# 修改WSL ip地址netsh interface ip add address "vEthernet (WSL)" 172.24.39.1 255.255.0.0

来源地址:https://blog.csdn.net/jasneik/article/details/127993390

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SSH连接WSL2踩坑记录与增加端口转换规则,实现外网与WSL2的连接

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SSH连接WSL2踩坑记录与增加端口转换规则,实现外网与WSL2的连接

SSH连接WSL2踩坑记录 文章目录 SSH连接WSL2踩坑记录1. 在WSL里的操作2. ssh连接3. 可能出现的错误4. 再配置端口转发到WSL 1. 在WSL里的操作 1.1 重装openssh-server
2023-08-21

编程热搜

目录