WSL2Linux 子系统(十一)
WSL 网络改为桥接模式(默认NAT)
上一篇文章 《WSL2Linux 子系统(十)》 详细讲述 WSL(Windows Subsystem for Linux)WSL 显示画面的几种方法。本篇讲述 WSL 网络转为桥接模式的两种方法。
桥接模式允许 WSL 实例获得一个与宿主机在同一子网中的 IP 地址,这样可以更方便地进行网络通信和服务发现。虽然桥接模式提供了更直接的网络访问,但也需要注意网络安全,因为 WSL 实例将暴露于网络中,需确保防火墙和安全策略的合理配置。
作者:炭烤毛蛋 ,点击博主了解更多。
提示:在桥接模式下,WSL 实例可以直接访问与宿主机相同的网络。
文章目录
- WSL 网络改为桥接模式(默认NAT)
- 1. Windows Hyper 虚拟机配置
- 2. WSL 网络桥接配置
- 2.1 动态方式连接桥接网络
- 2.2 静态方式连接桥接网络
- 结语
1. Windows Hyper 虚拟机配置
由于WSL2底层使用的是Hyper-V虚拟机,所以我们可以修改虚拟交换机的类型,来启用桥接网络。
Hyper-V管理器
-> 操作
-> 虚拟交换机管理器
, 修改WSL的连接类型为“外部网络”(选择网络时需要勾选 为管理操作系统启用虚拟 LAN 表示)
WSL 桥接前需要将网卡改为内部桥接。
- 列出所有网卡
get-netadapter
外部网卡为 vEthernet (WSLBridge) ,等会会用到该网卡名。
- 列出外部网卡
Get-VMSwitch -SwitchType External
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
WSL_Hyper-Ⅵ External Intel(R) Wi-Fi 6 AX201 160MHz
- 桥接网络,后面写的是网卡名称
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地址将不再随机变化,且直接桥接到外部局域网。
结语
不枉博主详细讲解,欢迎订阅博主–炭烤毛蛋 。