使用SSH连接局域网内的WSL Ubuntu

参考:

https://zhuanlan.zhihu.com/p/586283483

https://www.cnblogs.com/lidabo/p/16855975.html

 

 

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

 

 

根据https://zhuanlan.zhihu.com/p/586283483中的表述有:

 

 

 

 

本文主要给出windows主机的端口转发、开启windows防火墙端口规则。

 

-------------------------------------------------------------------------

 

 

 

 

 

 

windows主机的端口转发(创建)

使用Windows自带网络工具‘netsh’,以管理员权限启动PowerShell,输入以下命令:

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

windows宿主机暴露给局域网的端口为2222,并将发送给2222端口的信息转发给WSL Ubuntu(172.20.201.129)的22端口。

 
 
 
 
windows主机的端口转发(删除
netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=2222

 

 
 

 

查看windows宿主机端口转发情况:

netsh interface portproxy show all

 

 

 

 

 

 

 

 

开启windows防火墙端口规则

管理员权限运行PowerShell,输入命令:(防火墙开放宿主机windows的2222端口)

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

 

 

 

 

 

 

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

 

 

 

成功解决端口转发,实现局域网对WSL Ubuntu的访问:

 

 

------------------------------------------------------

 

 

 

 

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

 

 

为了是宿主机上WSL中的Ubuntu可以被局域网中其他主机通过ssh访问,我们也可以在宿主机上使用ssh端口映射的方式将WSL主机暴露给局域网。在WSL启动后,宿主机上对127.0.0.1地址下端口进行访问,如果此时宿主机上没有监听该端口那么对该端口的访问会转发(net转换方式)给WSL下的ubuntu,因此在宿主机上可以通过ssh devil@127.0.0.1 -p 22的方式直接访问WSL下的Ubuntu(ubuntu需要安装openssh-server)。我们在宿主机上使用ssh端口映射的方式可以把对0.0.0.0的IP地址下某端口的访问映射给127.0.0.1下某个端口,要注意局域网主机可以通过宿主机IP(宿主机监听IP为0.0.0.0)来对宿主机进行通信,但是不能通过127.0.0.1来访问局域网下的宿主机(127.0.0.1只能在本机上进行访问)。

给出ssh端口映射命令:

ssh -N -L   0.0.0.0:8888:127.0.0.1:22   devil@127.0.0.1 -p 22

该命令在宿主机上执行,该命令执行后进入阻塞状态,因此执行该命令的窗口不能关闭。

 

-------------------------------------------------

 

0.0.0.0:8888

代表将监听宿主机的对外IP地址下的8888号端口,如果宿主机有多个网卡和IP,这里可以将0.0.0.0替换为某个网卡上的具体IP大致;

 

127.0.0.1:22 

代表要把信息映射给的IP及端口;

 

ssh -N -L   0.0.0.0:8888:127.0.0.1:22 

代表着把对本机8888号端口的访问信息转发给127.0.0.1地址的22端口(将0.0.0.0:8888映射为127.0.0.1:22);

 

ssh -N -L   0.0.0.0:8888:192.168.11.242:80

代表把对本地8888号端口访问的信息转发给192.168.11.242下的80端口(将0.0.0.0:8888映射为192.168.11.242:80),该种映射一般用于把本地的web服务(只监听本地127.0.0.1下端口的web服务映射为局域网可以访问的IP地址下的端口);

 

devil@127.0.0.1 -p 22

代表端口映射的目标主机的ssh登录的配置,这里wsl下ubuntu的ssh端口为22;

 

 

 

效果:

 ssh端口映射:

 

 

 端口映射成功后局域网内主机可以成功访问WSL下的Ubuntu:

 

 

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

 

posted on   Angry_Panda  阅读(2127)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2022-03-29 【转载】 xavier,kaiming初始化中的fan_in,fan_out在卷积神经网络是什么意思
2022-03-29 【转载】 深度学习——Xavier初始化方法
2022-03-29 【转载】 标准差 方差 协方差 相关系数
2022-03-29 【转载】 tensorflow变量默认是如何进行初始化的?
2021-03-29 阿里2021年春季实习笔试题(最后一道大题)(2020 China Collegiate Programming Contest, Weihai Site) (C. Rencontre codeforces.com/gym/102798)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示