V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
guzzhao
V2EX  ›  问与答

wsl2 使用桥接网络问题

  •  
  •   guzzhao · 2023-01-20 18:59:45 +08:00 · 2172 次点击
    这是一个创建于 703 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2022 年 wsl2 支持用桥接了,我想利用桥接和路由器来设置静态 ip

    1. Hyper-V 创建外部虚拟交换机(switch)
    2. 修改.wslconfig
    [wsl2]
    networkingMode=bridged
    vmSwitch=switch 名
    

    这样配置网络正常,然后我在 linux 里用 ip a 查询 ip 和 mac 地址

    eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 5c:bb:f6:9e:ee:fa brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.111/24 brd 192.168.0.255 scope global eth0
           valid_lft forever preferred_lft forever
    
    

    192.168.0.111 和 5c:bb:f6:9e:ee:fa ,我在路由器面板里绑定 ip,就连不上外网了,还有个问题在路由器上为什么 wsl2 的 mac 和主机的 mac 是一个 OfPgt.png

    6 条回复    2024-03-06 08:41:11 +08:00
    Joker6666677777
        1
    Joker6666677777  
       2023-02-10 08:04:38 +08:00 via Android
    和你一模一样的问题
    Joker6666677777
        2
    Joker6666677777  
       2023-02-10 09:26:39 +08:00
    经过测试发现,路由器上不能直接设置绑定静态 IP 到 MAC ,一旦绑定 WSL 就不能正常连接网络了。但是有一个办法可以解决。就是设置路由器的 DHCP 限制只分发一个 IP ,这样 WSL 每次拿到的 IP 都是固定的了。缺点就是,如果家里有新手机联网,也要给在路由器上给新手机设置绑定固定 IP ,不然 DHCP 不会下发新 IP 。
    guzzhao
        3
    guzzhao  
    OP
       2023-02-10 20:19:18 +08:00
    @Joker6666677777
    我已经解决了

    1. Hyper-V 虚拟机创建外部虚拟交换机
    2. 修改.wslconfig
    ```
    [wsl2]
    networkingMode=bridged
    vmSwitch=替换成你创建的虚拟交换机名称
    dhcp=false
    ```

    > 当 dhcp=false 时会读取 `/lib/systemd/network/wsl_external.network` 的网络配置

    `vim /lib/systemd/network/wsl_external.network`
    ```ini
    [Match]
    Name=eth0
    [Network]
    Description=bridge
    DHCP=false
    Address=192.168.1.10/24 # 自行修改
    Gateway=192.168.0.1 # 自行修改

    ```

    **修改 DNS 禁止自动生成**

    添加 `/etc/wsl.conf` 加入以下内容

    ```ini
    [boot]
    systemd=true
    [network]
    generateResolvConf = false
    ```

    ```bash
    rm -f /etc/resolv.conf
    echo "nameserver 223.5.5.5" > /etc/resolv.conf
    ```




    3. 重新启动 WSL 子系统
    mrzhang76
        4
    mrzhang76  
       2023-02-10 22:25:12 +08:00
    只能在 w11 下使用,我看咖喱味的微软是吃惯了咖喱味的屎,逼着人吃屎味的 w11
    Fanta721
        5
    Fanta721  
       293 天前
    @guzzhao 关闭了 dhcp 后,设置静态 IP ,能上网吗?这个时候 WSL 里面的 MAC 地址和主机的 MAC 地址还是一个吗?
    guzzhao
        6
    guzzhao  
    OP
       292 天前
    @Fanta721 #5 用最新版的 win11 可以这样设置,wsl 和主机一个 IP,用 localhost 也可以访问 wsl

    [wsl2]
    networkingMode=mirrored # 网络使用 mirrored 模式
    firewall=true
    autoProxy=true
    dnsTunneling=true

    [experimental]
    autoMemoryReclaim=gradual
    sparseVhd=true
    hostAddressLoopback=true
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.