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

相关推荐
深念Y7 小时前
装了 PowerShell 7 还是乱码?
windows·乱码·终端·命令行
南境十里·墨染春水7 小时前
linux 学习进展 网络编程 ——TCP 协议 TIME_WAIT 状态详解
linux·网络·学习
Qt程序员8 小时前
【无标题】
linux·c++·消息队列·共享内存·c/c++·管道·信号量
相国8 小时前
在Windows里通过WSL安装Ubuntu 22.04
linux·windows·ubuntu·wsl
太理摆烂哥8 小时前
进程调度及文件系统的管理
linux
x***r1519 小时前
phpwind_UTF8_8.5部署步骤详解(附PHPWind论坛搭建与本地环境配置)
windows
许泽宇的技术分享9 小时前
别再把 AI Agent 当“会聊天的脚本”:Hermes Agent 源码级拆解(架构、框架、实战、趋势,一文吃透)
java·linux·网络
HalvmånEver9 小时前
MySQL事务(一)
linux·数据库·学习·mysql
JiaWen技术圈9 小时前
增量静态再生(ISR)详解:Next.js 中的实现与应用
javascript·git·ubuntu
%KT%9 小时前
Agent开发:自动查天气+景区推荐
linux·数据库·php