WSL2Linux 子系统(十一)

WSL 网络改为桥接模式(默认NAT)

上一篇文章 《WSL2Linux 子系统(十)》 详细讲述 WSL(Windows Subsystem for Linux)WSL 显示画面的几种方法。本篇讲述 WSL 网络转为桥接模式的两种方法。

桥接模式允许 WSL 实例获得一个与宿主机在同一子网中的 IP 地址,这样可以更方便地进行网络通信和服务发现。虽然桥接模式提供了更直接的网络访问,但也需要注意网络安全,因为 WSL 实例将暴露于网络中,需确保防火墙和安全策略的合理配置。

作者:炭烤毛蛋 ,点击博主了解更多。


提示:在桥接模式下,WSL 实例可以直接访问与宿主机相同的网络。


1. Windows Hyper 虚拟机配置

由于WSL2底层使用的是Hyper-V虚拟机,所以我们可以修改虚拟交换机的类型,来启用桥接网络。
Hyper-V管理器 -> 操作 -> 虚拟交换机管理器, 修改WSL的连接类型为“外部网络”(选择网络时需要勾选 为管理操作系统启用虚拟 LAN 表示)
LAN

WSL 桥接前需要将网卡改为内部桥接。

  • 列出所有网卡
get-netadapter

get-netadapter
外部网卡为 vEthernet (WSLBridge) ,等会会用到该网卡名。

  • 列出外部网卡
Get-VMSwitch -SwitchType External

Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
WSL_Hyper-Ⅵ External Intel(R) Wi-Fi 6 AX201 160MHz

Get-VMSwitch

  • 桥接网络,后面写的是网卡名称
Set-VMSwitch WSL -NetAdapterName WLAN
# 按照网络名称设置桥接网络
Set-WMSwitch WSL -NetAdapterName "Intel(R) WiFi 6 AX201 160MHz"
  • 断开桥接网络
Set-VMSwitch WSL -SwitchType Internal

DHCP 方式连接桥接网络
开启 DHCP 动态连接网络,网络连接成功后自动分配IP。

2. WSL 网络桥接配置

  • 配置 WSL 在 windows 的 .wslconfig
    win + R 输入 %USERPROFILE%/.wslconfig,选择记事本打开该文件。输入如下内容:
[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
ipv6=true
dhcp=true

重启 wsl 子系统生效配置。

2.1 动态方式连接桥接网络

  • 配置 WSL 中 wsl.conf
    进入wsl的Ubuntu子系统,打开/etc/wsl.conf,如果不存在该文件就创建它。
vi /etc/wsl.conf

需要写入内容

[boot]
systemd = true
[network]
generateHosts = true
generateResolvConf = true

重启 WSL 生效 networkd 生效配置。

systectl restart systemd-networkd

2.2 静态方式连接桥接网络

STATIC 静态连接网络,需要避免网络 IP 重复

  • WSL 在 windows 的 .wslconfig
    win + R 输入 %USERPROFILE%/.wslconfig,选择记事本打开该文件。输入如下内容:
[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
ipv6=true
dhcp=false

重启 wsl 子系统生效配置。

  • 配置 WSL 中 wsl.conf
    进入wsl的Ubuntu子系统,打开/etc/wsl.conf,如果不存在该文件就创建它。
vi /etc/wsl.conf
# 需要写入内容
[boot]
systemd = true
[network]
generateHosts = false
generateResolvConf = false
  • 配置 wsl-network.conf 和 resolv.conf
    修改网络配置 /etc/systemd/network/static-network.conf,如果没有该文件需要自行创建。
vi /etc/systemd/network/static-network.conf
# 填入以下配置内容
[Match]
Name=et*
#Name=en*
[Network]
DHCP=ipv4

修改 DNS 解析配置

vi /etc/resolv.conf
nameserver 192.168.31.2

重启 networkd 生效配置。

systectl restart systemd-networkd
  • 配置网络设置
    配置文件/etc/netplan/00-wsl2.yaml,如果不存在就创建它。
vi /etc/netplan/00-wsl2.yaml
# 写入以下格式的配置内容
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.31.15/24]
routes:
- to: default
via: 192.168.31.2
nameservers:
addresses: [192.168.31.2]

应用新的网络设置重启 WSL2 子系统生效配置。

netplan apply

重启wsl子系统的IP地址将不再随机变化,且直接桥接到外部局域网。

结语

不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值