WSL2 网络桥接

WSL2 网络桥接

WSL2 是 Windows Subsystem for Linux 2 的缩写,在 Windows 系统上运行 Linux 发行版。在 WSL2 中,WSL2 能够直接访问本地网络,但是无法被本地网络直接访问。这就需要通过网络桥接来实现 WSL2 与本地网络的互通。

实现方法

  1. 在 Windows 中启用 Hyper-V

    在 Windows 中开启 Hyper-V 技术,用于创建虚拟机和网络。在 PowerShell 中运行以下命令来启用 Hyper-V。

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. 在 WSL2 中安装 DHCP 客户端

    在 WSL2 中安装 dhclient 包来作为 DHCP 客户端。

    sudo apt update
    sudo apt install -y isc-dhcp-client
    
  3. 创建虚拟交换机

    在 PowerShell 中运行以下命令创建一个名称为 vEthernet 的虚拟机交换机,并将其端口绑定到 WSL2 虚拟机上。

    New-VMSwitch -Name "vEthernet" -AllowManagementOS $false -NetAdapterName "vEthernet (WSL)" -Verbose
    
  4. 设置网络桥接

    在 PowerShell 中运行以下命令,将虚拟交换机与本地网络桥接起来。

    Remove-NetIPAddress -IPAddress 192.168.93.1 -Confirm:$false
    New-NetIPAddress -IPAddress 192.168.93.1 -PrefixLength 24 -InterfaceAlias "vEthernet"
    New-NetNat -Name "Nat-WSL" -InternalIPInterfaceAddressPrefix "192.168.93.0/24"
    

    其中 192.168.93.1 是虚拟交换机的 IP 地址,也是 WSL2 访问本地网络的出口。

  5. 将浏览器代理位置到 WSL2

    如果您在 WSL2 中使用代理服务器,则可以使用以下命令将浏览器代理地址指向 WSL2。

    export http_proxy=http://192.168.93.1:8123/
    export https_proxy=http://192.168.93.1:8123/
    

    其中 192.168.93.1 是虚拟交换机的 IP 地址。

测试方法

接下来,我们来测试 WSL2 是否已经接入了本地网络。

  1. 在 WSL2 中通过 DHCP 获取 IP 地址

    在 WSL2 中执行以下命令,可以看到 WSL2 成功获取到本地网络的 IP 地址。

    sudo dhclient
    ip addr
    
  2. 在 WSL2 中通过 ping 测试网络连接

    在 WSL2 中执行以下命令,可以测试与本地网络的连接是否正常。

    ping -c 3 baidu.com
    
  3. 在 WSL2 中启动代理服务器

    在 WSL2 中执行以下命令,启动代理服务器。

    polipo -c /etc/polipo/config
    
  4. 在浏览器中测试代理服务器

    在浏览器中设置代理地址为 http://localhost:8123,然后访问任意网站,可以看到 WSL2 成功接入了本地网络。

结论

通过以上步骤,我们可以让 WSL2 顺利地接入本地网络,实现与本地网络的互通。同时,在 WSL2 中启动代理服务器,可以让浏览器通过 WSL2 访问互联网,该方法适用于需要通过代理服务器访问互联网的用户。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程