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

相关推荐
QFIUNE3 小时前
使用 MMseqs2 计算多个 DTI 数据集的蛋白序列相似度
linux·python·ubuntu
Li-Yongjun3 小时前
Linux 内核等待队列(Wait Queue)
linux·运维·windows
字节高级特工3 小时前
【Linux】深入理解C语言命令行参数与环境变量
linux·c++·人工智能·后端
linux开发之路3 小时前
C++项目推荐:eBPF+调度器性能分析框架
linux·c++·ebpf·火焰图·调度器
愿天垂怜3 小时前
【C++脚手架】ffmpeg 库的介绍与使用
linux·服务器·开发语言·c++·ide·git·ffmpeg
jimy13 小时前
Linux动态加载器,loader,dynamic linker
linux·运维·服务器
Vick_Zhang3 小时前
ubuntu上rabbitmq
服务器·ubuntu·rabbitmq
kongba0073 小时前
ttyd Web终端安装指南(OpenCloudOS 9)
linux·前端
lolo大魔王3 小时前
Linux 文件权限超详细详解(读懂权限标识、数字权限、特殊权限、chmod/chown)
linux·运维·服务器
月夜的风吹雨4 小时前
Linux 基础开发工具详解:从 yum 到 gdb 实战指南
linux·git·ubuntu·centos·vim