使用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端口。
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 2023-03-29 13:33 Angry_Panda 阅读(2127) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)