wsl ubuntu层开放22端口,主机windows层开放2222端口转发

在 WSL2 中,IP 地址是动态分配的,每次重启或恢复时都可能变化。获取 WSL2 当前 IP 地址的方法如下:

1. 在 WSL2 内部获取 IP

在 WSL2 终端中执行:

bash 复制代码
# 方法一:查看 eth0 接口的 IP
ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1

# 方法二:使用 hostname 命令(更简洁)
hostname -I | awk '{print $1}'

示例输出:172.28.112.1


2. 在 Windows 宿主机上获取 WSL2 IP

在 Windows 的 PowerShell 或 CMD 中执行:

powershell 复制代码
# 通过 wsl 命令直接获取
wsl hostname -I | ForEach-Object { $_ -split ' ' | Select-Object -First 1 }

该命令会返回 WSL2 虚拟网卡的 IP 地址(通常是 172.x.x.x192.168.x.x)。


3. 在端口转发中的使用

当你使用 netsh interface portproxy 进行端口转发时,需要将 connectaddress 设置为这个动态 IP。例如:

powershell 复制代码
# 假设获取的 WSL2 IP 为 172.28.112.1
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=22 connectaddress=172.28.112.1

由于 IP 可能变化,建议在每次 WSL2 启动后重新执行转发命令,或编写脚本自动完成:

powershell 复制代码
$wsl_ip = wsl hostname -I | ForEach-Object { $_ -split ' ' | Select-Object -First 1 }
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=22 connectaddress=$wsl_ip

相关推荐
2601_962364971 小时前
红外活体模组,Windows 设备安全身份入口解析
windows·安全·电脑
GeW2 小时前
红帽RHCE从挂科边缘到一次过,我做对了什么
linux
时空自由民.2 小时前
WSL解决USB 串口连接问题与linux串口权限问题
linux·单片机
OpenPomeloxCommunity2 小时前
Linux驱动基础(三):firmware的声明与加载
linux·操作系统
易点云徐源2 小时前
(已解决)Photoshop 2020 点击“选择主体”闪退:不用重装,1 个配置切回旧算法解决
windows·photoshop
云计算练习生2 小时前
什么是系统调用?为什么程序访问硬件必须经过它
linux·windows·操作系统·系统调用·操作系统原理
玄芯散人3 小时前
【筑基·059】Linux命令行入门:工程师的操作系统
linux·操作系统·命令行
半仙白桑3 小时前
内核篇第二讲:Linux exec 函数族详解
linux·linux驱动
AR-26710-3 小时前
Linux Day7——建组/用户、umask、Python脚本
linux·python
orange....3 小时前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全