如何将 WSL 接入局域网并与宿主机同网段

如何将 WSL 接入局域网并与宿主机同网段

Windows Subsystem for Linux (WSL) 是一个非常实用的工具,它允许在 Windows 系统上原生运行 Linux 环境。默认情况下,WSL 使用 NAT 网络模式,与宿主机处于不同的网段。但在某些情况下,我们可能需要将 WSL 接入局域网,并与宿主机位于同一网段内。下面我们就来详细介绍如何实现这一目标。

步骤一:配置 Windows 主机网络

首先,确保你的 Windows 主机已经连接到局域网。然后,打开命令提示符或 PowerShell,并以管理员身份运行。输入以下命令,将 WSL 的网络模式设置为 bridge:

wsl --shutdown
netsh interface ip add address "vEthernet (WSL)" <ip_address> <subnet_mask>

其中,<ip_address> 是你想分配给 WSL 的静态 IP 地址,该地址需要与宿主机在同一网段内。<subnet_mask> 则是局域网的子网掩码,通常是 255.255.255.0

步骤二:配置 WSL 网络

接下来,我们需要配置 WSL 内部的网络设置。首先启动 WSL 终端,然后运行以下命令:

wsl -d <distro> -u root ip addr add <ip_address>/<cidr> dev eth0 
wsl -d <distro> -u root ip route add default via <windows_ip>

其中,<distro> 是你的 WSL 发行版名称,<ip_address> 是你在上一步中分配给 WSL 的静态 IP 地址,<cidr> 是子网掩码的 CIDR 表示法(如 24),<windows_ip> 则是 Windows 主机在局域网中的 IP 地址。

接着,编辑 WSL 中的 /etc/resolv.conf 文件,添加以下内容:

nameserver <windows_ip>

这样 WSL 就会使用宿主机的 DNS 服务器。

最后,在 WSL 中运行 sudo service networking restartsudo systemctl restart systemd-networkd 重启网络服务,使更改生效。

步骤三:验证网络连通性

完成以上步骤后,WSL 应该已经与宿主机在同一局域网下了。你可以在 WSL 中使用 ip addr show 命令查看分配的 IP 地址,并尝试 ping 宿主机的 IP 地址,以验证网络连通性。

此外,还有一些注意事项需要留意:

  • 确保你分配给 WSL 的静态 IP 地址在局域网中是唯一的,不会与其他设备冲突。
  • 如果宿主机的网络配置发生变化(如连接到其他网络、IP 地址更改等),你可能需要相应地调整 WSL 的网络配置。
  • 在某些情况下,WSL 可能会自动切换回 NAT 模式。如果遇到这种情况,你需要重新执行上述步骤来恢复桥接模式。

总结

通过以上步骤,我们就可以成功地将 WSL 接入局域网,并与宿主机位于同一网段内。这种配置方式可以方便地在 WSL 中访问局域网内的其他设备和服务,也能让其他设备通过 SSH 等方式访问 WSL。希望本文对你理解和配置 WSL 网络有所帮助。如有任何疑问或建议,欢迎随时交流讨论。

### WSL Windows 宿主机之间的网络和文件系统通信 #### 网络通信配置 为了使局域网内的其他设备能够访问运行于 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 插件集来进行跨平台编辑作业。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋志辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值