WSL2 中配置桥接模式、虚拟交换机及固定 IP

WSL2 中配置桥接模式、虚拟交换机及固定 IP

        • 一、创建虚拟交换机
          • [1.1 使用 Hyper-V 管理器创建虚拟交换机](#1.1 使用 Hyper-V 管理器创建虚拟交换机)
          • [1.2 使用 PowerShell 创建虚拟交换机](#1.2 使用 PowerShell 创建虚拟交换机)
        • [二、更新 WSL 配置](#二、更新 WSL 配置)
        • [三、设置 WSL2 中的静态 IP、网关和 DNS](#三、设置 WSL2 中的静态 IP、网关和 DNS)
          • [3.1 编辑网络配置文件](#3.1 编辑网络配置文件)
          • [3.2 应用网络配置](#3.2 应用网络配置)
          • [3.3 测试网络连接](#3.3 测试网络连接)
        • [四、重启 WSL](#四、重启 WSL)

在使用 WSL2 时,某些场景下我们需要为其设置固定的 IP 地址和 DNS。同时,如果你希望 WSL2 能够与主机共享相同的物理网络,并获取独立的 IP 地址,则可以通过桥接模式来实现。本文将介绍如何为 WSL2 设置桥接模式、固定 IP 以及 DNS 配置。

一、创建虚拟交换机

报错表明指定的虚拟交换机 VmSwitch='WSL' 没有被找到,导致 WSL 无法配置桥接模式的网络。要解决这个问题,首先需要在 Windows 中创建一个虚拟交换机。

你可以选择使用 Hyper-V 管理器或 PowerShell 来创建虚拟交换机。

1.1 使用 Hyper-V 管理器创建虚拟交换机
  1. 打开 "Hyper-V 管理器"(在开始菜单中搜索 Hyper-V Manager)。
  2. 在右侧选择 "虚拟交换机管理器"(Virtual Switch Manager)。
  3. 选择 "外部"(External),并点击 "创建虚拟交换机"。
  4. 命名该交换机为 WSL 或其他名称,并选择正确的网络适配器(通常是你的物理网卡)。
  5. 点击 "应用" 并 "确定"。
1.2 使用 PowerShell 创建虚拟交换机

如果你更喜欢使用命令行操作,可以通过 PowerShell 创建虚拟交换机:

powershell 复制代码
New-VMSwitch -Name "WSL" -NetAdapterName "<您的物理网卡名称>" -AllowManagementOS $true

<您的物理网卡名称> 替换为你实际使用的网卡名称。可以通过以下命令查看系统中的网卡信息:

powershell 复制代码
Get-NetAdapter

注意: -AllowManagementOS $true 参数表示主机可以继续使用这张网卡上网,不会完全影响主机的联网功能。

二、更新 WSL 配置

创建虚拟交换机后,需要将 WSL 配置为使用该交换机。可以通过编辑 wslconfig 文件实现。

  1. 打开 %UserProfile%\.wslconfig 文件(如果没有这个文件,手动创建一个)。
  2. 添加以下配置:
ini 复制代码
[wsl2]
networkingMode=bridged
vmSwitch=WSL  # 确保名称和创建的虚拟交换机一致
三、设置 WSL2 中的静态 IP、网关和 DNS

接下来,我们需要为 WSL2 中的 Ubuntu 配置静态 IP 地址。

3.1 编辑网络配置文件

使用 netplan 工具来管理网络配置,编辑 /etc/netplan/00-installer-config.yaml 文件:

bash 复制代码
sudo nano /etc/netplan/00-installer-config.yaml

添加以下内容来设置固定 IP、网关和 DNS:

yaml 复制代码
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 192.168.1.100/24      # 设置固定 IP 地址和子网掩码
      gateway4: 192.168.1.1      # 设置默认网关
      nameservers:
        addresses:
          - 8.8.8.8             # 设置 DNS,使用 Google 公共 DNS
          - 8.8.4.4
      dhcp4: false               # 禁用 DHCP
3.2 应用网络配置

编辑完成后,使用以下命令应用新配置:

bash 复制代码
sudo netplan apply
3.3 测试网络连接

完成配置后,可以使用 ping 命令测试网络连接:

bash 复制代码
ping 8.8.8.8        # 测试外网连接
ping www.google.com # 测试 DNS 是否正常工作
四、重启 WSL

配置完成后,为了使更改生效,可以重启 WSL:

bash 复制代码
wsl --shutdown

重新启动后,WSL2 将使用桥接模式并应用你设定的静态 IP 和 DNS。

相关推荐
运维全栈笔记2 小时前
致远 OA HTTPS 配置避坑指南
网络协议·http·https
我星期八休息4 小时前
网络编程—NAT、代理服务与内网穿透
linux·服务器·网络·网络协议
Lucis__5 小时前
如何实现长连接通信机制?Websocket的最佳实践
网络·websocket·网络协议
winfreedoms6 小时前
VMware 桥接模式无法联网:从 DHCPDISCOVER 到静态 IP 的完整排障实战
网络协议·tcp/ip·ubuntu·桥接模式·vmware·嵌入式学习
Shadow(⊙o⊙)6 小时前
Linux网络部分——TCP服务端、客户端架构分析多进程、多线程、线程池
c++·tcp/ip·架构
微硬创新21 小时前
老旧产线改造:耐达讯自动化16路4‑20mA转PROFINET的工程实践
人工智能·网络协议·自动化·信息与通信
Bruce_Liuxiaowei1 天前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
80s7771 天前
独享住宅IP、长效代理ip是什么?有哪些作用?
网络·网络协议·tcp/ip
IPdodo_1 天前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
_ZHOURUI_H_1 天前
Unity TCP底层极限拆解:粘包、半包、CRC、序列号、双缓冲到底怎么一起工作的?
网络·网络协议·tcp/ip·游戏·unity·游戏引擎·游戏开发