WSL2 使用桥接网络上网与DNS的配置

本文详细指导如何在Windows系统中启用Hyper-V,配置虚拟交换机,解决桥接可能导致的DNS问题,以及关闭WSL2自动生成resolv.conf,确保网络请求正常工作。

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

开启 Hyper-V

img
在控制面板中启用 Hyper-V

使用 Hyper-V 管理器配置虚拟交换机

在开始菜单搜索 Hyper-V 管理器


新建一个虚拟交换机,选择外部


名称可以自定义,这里为wsl-bridge

外部网络选择你的网卡,保存就行了

修改 DNS 设置

直接使用桥接可能会导致无法使用域名进行网络请求,需要修改 DNS 配置
打开 /etc/systemd/resolved.conf
取消注释 [Resolve] 里 DNS 那行,然后改成

DNS=8.8.8.8 114.114.114.114

重启域名解析服务

systemctl restart systemd-resolved
systemctl enable systemd-resolved

将 resolv.conf 给软链接过去

mv /etc/resolv.conf /etc/resolv.conf.bak
ln -s /run/systemd/resolve/resolv.conf /etc/


不出意外的话,内容应该是这样的

关闭 WSL2 自动生成 resolv.conf

在 /etc/wsl.conf 中加入

[network]
generateResolvConf = false

重启 WSL

wsl --shutdown

备注

为什么不直接更改 /etc/resolv.conf
直接更改后,重启 WSL 会自动恢复

### 配置 WSL Ubuntu 网络桥接 为了在 Windows Subsystem for Linux (WSL) 中设置 Ubuntu 的网络桥接模式,需要注意该操作主要适用于 Windows 11 22H2 及更高版本。对于较早版本的操作系统,建议先进行升级并从 Microsoft Store 下载最新版本的 Windows Subsystem for Linux 来确保兼容性和功能性[^3]。 #### 安装必要的组件和服务 确认已启用 Hyper-V 和适用于 Linux 的 Windows 子系统这两项服务: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 重启计算机使更改生效。 #### 设置网络适配器 创建一个新的内部交换机用于桥接网络连接,在 PowerShell 或命令提示符中执行如下指令(需管理员权限): ```powershell New-VMSwitch -Name "InternalSwitch" -SwitchType Internal ``` 获取新创建的网卡接口索引号以便后续配置 IP 地址: ```powershell Get-NetAdapter ``` 分配静态IP地址给这个新的内联网卡,假设其接口索引为 `N` ,则可使用以下脚本调整(请替换实际获得的索引值以及适合本地环境的 IP 参数): ```powershell $index = N # 替换成具体的索引数值 netsh interface ipv4 set address name=$index static 192.168.x.y 255.255.255.0 192.168.x.z ``` 其中 `192.168.x.y` 是要赋予的新 IP 地址;`192.168.x.z` 则代表默认网关地址。 #### 修改 WSL 发行版配置文件 编辑 `/etc/wsl.conf` 文件来指定所使用的 VMMem 虚拟交换机名称,从而实现自动化的网络配置过程。可以通过文本编辑工具打开此文件并向其中添加下列内容: ```ini [network] generateHosts = true generateResolvConf = false [wsl2] kernelCommandLine="wsl.network.hostip=172.22.128.1" ``` 注意这里的 `hostip` 应当匹配之前设定好的宿主机 IP 地址范围内的有效地址。 #### 更新 DNS 解析设置 由于启用了自定义网络方案,可能还需要手动更新 `/etc/resolv.conf` 文件中的 DNS 服务器列表以保证域名解析正常工作。这一步骤视具体情况而定,如果遇到无法上网的情况可以尝试修改。 完成上述步骤后重新启动 WSL 实例让所有改动生效即可享受更灵活高效的开发体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Moieo.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值