宿主机配置端口映射来访问WSL服务

本文介绍了在Windows环境下,为何选择使用WSL2而非Docker,并详细阐述了如何进行端口映射,包括查看端口代理列表、添加与删除端口映射,以便于在Windows系统中无缝访问WSL2内的服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

因为部分服务和软件无法在 windows 环境下运行,因此需要使用 linux 环境, 而 Docker 跟 wsl 相比较,便捷性和性能上来看有损耗( Docker 本身就是使用 wsl2),因此对于我来讲使用 wsl2 会更方便下。

操作说明

 # 查看所有端口代理列表
 netsh interface portproxy show all
 # 添加端口映射的关联
 # listenport 配置宿主机需要映射端口号, listenaddress 配置宿主机的需要映射的ip, 往往就为 0.0.0.0 
 # connectport 配置 wsl2 的端口号(服务), connectaddress 为 wsl2 的IP地址
 netsh interface portproxy add v4tov4  listenport=9504 listenaddress=0.0.0.0  connectport=9504 connectaddress=192.168.21.132

如果期间出现 wsl2 ip 地址发生变化,可以按照如下代码所示,进行删除重新配置

netsh interface portproxy delete v4tov4 listenport=9504 listenaddress=0.0.0.0
### WSLWindows 宿主机之间的网络和文件系统通信 #### 网络通信配置 为了使局域网内的其他设备能够访问运行于 WSL 2 中的服务,需在 Windows 上设置端口转发并创建防火墙入站规则[^1]。具体操作如下: 对于端口转发而言,可以通过 PowerShell 或命令提示符执行 `netsh` 命令来完成此过程。例如,如果希望将外部请求导向至 WSL 内部监听的 HTTP (80) 服务,则可以输入以下指令: ```powershell netsh interface portproxy add v4tov4 listenport=80 connectaddress=localhost connectport=80 ``` 关于防火墙规则设定方面,同样借助 PowerShell 来新增一条允许特定端口号的数据包进入系统的例外情况。假设上述例子中的 Web 服务器正在使用标准HTTP协议(即TCP/80),那么对应的PowerShell脚本应该是这样的形式: ```powershell New-NetFirewallRule -DisplayName "Allow WSL HTTP" -Direction Inbound –LocalPort 80 -Protocol TCP -Action Allow ``` 此外,理解基本的网络参数也至关重要。IP 地址作为上网凭证独立存在;子网掩码用于判定两台计算机是否处于相同网段之中;而网关则是负责管理和传递同网段间的信息流;DNS 则承担着域名解析的任务,即将人类可读的名字转换成机器能识别的目标位置[^2]。 当遇到像 RPC 服务注册失败的情况时,这可能是由于默认情况下 WSL 的某些行为所致——它可能会尝试绑定到宿主机而非自身的接口上。因此建议显式指定本地回环地址 (`127.0.0.1`) 而不是通用名称 `localhost` ,以此确保应用程序正确地附着到了预期的位置之上[^3]。 #### 文件系统共享机制 WSL 提供了一种简单的方式让用户可以在 Linux 发行版环境里直接访问 Windows 文件夹的内容。通常来说,这些路径会映射到 `/mnt/c/...` 这样的结构之下。比如想要打开 C:\Users\YourName\Desktop 下面的一个文本档,在 Bash 终端里面就可以这样写: ```bash nano /mnt/c/Users/YourName/Desktop/example.txt ``` 值得注意的是,默认状态下从 Windows 访问 Linux 文件系统相对复杂些,不过官方文档提供了详细的指导说明如何安全有效地做到这一点。一般推荐利用专门设计好的工具如 VSCode Remote Development 插件集来进行跨平台编辑作业。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值