0%

配置WSL2为桥接模式(原来是NAT模式)

配置WSL2为桥接模式(原来是NAT模式)

  • 配置为桥接模式之后局域网中的设备就可以直接访问WSL,不需要借助电脑的端口转发

  • 首先在命令行(具有管理员权限)中输入Get-NetAdapter,查看电脑的网卡情况(此时可能看不到WSL的虚拟网卡)

  • 图 1

  • 然后使用命令Set-VMSwitch WSL -NetAdapterName <桥接到的网卡名称>,将其中的尖括号部分替换为需要桥接到的网卡,比如WLAN

    Set-VMSwitch WSL -NetAdapterName WLAN
  • 然后再次使用Get-NetAdapter,输出如下

  • 图 2

  • 可见增加了基于Hyper-V的WSL虚拟网卡

  • 然后使用Windows的ipconfig查询计算机的网关等信息,同时在设置中查看计算机的DNS等信息,然后使用这些信息配置WSL的网络

  • 图 4

  • 图 5

  • 使用如下命令配置WSL的网络(WSL中)

    sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0
    sudo ip addr add <需要设置的IP地址>/24 broadcast <局域网广播地址(一般是网络号.网络号.网络号.255)> dev eth0
    sudo ip route add 0.0.0.0/0 via <默认网关> dev eth0
  • 然后WSLping百度可以ping通

  • 图 6

  • WindowspingWSL的IP也可以ping

  • 图 7

  • 参考链接

  • 注意这样实际上是整个电脑通过WSL的网卡在上网,使用的就是主机的IP地址

    更改WSL为桥接模式之后远程显示的问题

  • 因为更改WSL为桥接模式之后,WSL变为局域网下与Windows平级的设备,所以需要重新配置.bashrc

    vim ~/.bashrc

    找到这一行

    export DISPLAY=<IP地址>:0
  • 将这一行中尖括号的部分修改为计算机在局域网中的IP地址然后即可继续使用WSL桌面(比如startxfce4

  • 图 8

    修改DNS服务器

    您可以通过以下步骤在WSL中设置DNS服务器:

  • 启动WSL,进入目录,创建wsl.conf文件。例如,您可以使用以下命令:

    cd ~/../../etc
    sudo vim wsl.conf
    sudo touch wsl.conf
  • 将这些行添加到wsl.conf中:

    [network]
    generateResolvConf=false
  • 退出WSL,关闭WSL。您可以使用以下命令:

    exit
    wsl --shutdown
  • 此时,由于有了wsl.conf,run/resolvconf应该不再存在,并且将不再被创建。

  • 删除现有的符号链接文件。例如,您可以使用以下命令:

    cd ~/../../etc
    sudo rm resolv.conf
  • 创建一个新的resolv.conf文件。例如,您可以使用以下命令:

    sudo vim resolv.conf
    sudo touch resolv.conf
  • 将自己的DNS添加到resolv.conf中。例如:

    nameserver 8.8.8.8
  • 其中8.8.8.8是您想要使用的DNS服务器地址。

  • 重启WSL。您可以使用以下命令:

    exit
    wsl --shutdown
  • 再次启动WSL