仅做记录与分享,平台版本等不同无法指导更多。
一、需求
ubuntu虚拟机(WSL)桥接win11并且能联通外网(百度之类)
二、环境:
版本 Windows 11 专业版
版本号 23H2
安装日期 2024/6/20
操作系统版本 22631.3737
三、前提
1 必须win11
win10我已经折腾好一会儿了始终没法桥接,强烈建议别折腾,win11很丝滑就配置完成了(但win11真的卡,win10用户换win11也不要采用升级的方案,我已经试过了,问题超多,直接重装win11覆盖win10是最好的方案)
2 开启Windows功能(图中3项)
3 新建hyper-v虚拟机
在win11任务栏搜索中搜索hyper
就能看到hyper-V管理器
,打开后点击
点击确定后会提示断开网络,属于正常现象,按提示确定下去就好,记住新建虚拟交换机名称,等会儿要用。
四、配置文件
win下C:\Users\yourname
新建.wslconfig
内容:
[wsl2]
networkingMode=bridged
vmSwitch=mybridgeSwitch ##换成自己的虚拟交换机名称
ubuntu(wsl)内部,在/etc/
下创建wsl.conf
内容:
[boot]
systemd = true ##支持systemd
[network]
hostname = sky01 ## ubuntu主机名,在hosts文件中也要改
generateHosts = false ## 禁止wsl自主生成主机名
generateResolvConf = true ## 自动配置DNS解析
ubuntu(wsl)内部,在/etc/systemd
下找到resolved.conf
,如果没有就执行sudo vim resolved.conf
新建,添加或修改使其具有以下内容
nameserver 180.76.76.76 ## 180.76.76.76改成自己可用的DNS服务器地址,能ping通即可用
配置完成后不要使用sudo netplan apply
之类的重启网络,因为wsl跟真实ubuntu差别很大,这样不会生效,要想刚才的配置生效执行exit
退出登录,执行完成应该回到了win11的cmd窗口模式,再执行wsl --shutdown
关闭wsl,等几秒后再执行wsl
启动ubuntu。
五、检验
1 桥接是否成功
在ubuntu内执行
ping 192.168.1.1
(ping主机网关或者IP)能通则说明桥接成功。
若不通。。。反过来用win11去 ping ubuntu的IP,若通了,说明桥接成功,但win11防火墙拦截了ubuntu消息,关掉防火墙或者更改入站规则,自行百度。
2 外网能否连接
在ubuntu内执行
ping www.baidu.com
若通,则以上配置成功
若不通,再执行
ping 180.76.76.76
也就是上面resolved.conf
中配置的dns服务器地址,如果这个dns地址都不通,说明dns配置不对