ky818smKy818sm  2023-10-30 11:17 123ppp资源网 隐藏边栏 |   抢沙发  431 
文章评分 0 次,平均分 0.0

检查版本

wsl --version
# 版本>1.0即可

配置文件

.wslconfig
用于在 WSL 2 上运行的所有已安装分发版 全局 配置设置。
wsl.conf
为 WSL 1 或 WSL 2 上运行的 Linux 发行版配置 每个分发 版的设置。

这里详细配置介绍请移步高级设置配置

Hyper-V虚拟机在安装创建虚拟操作系统之前,建议先对Hyper-V需要创建的网络进行一个规划与设置,这个还是比较重要的,这里的设置可以管理Hyper-V下的虚拟机是通过什么方式进行网络上的连接。这就需要在Hyper-V中来创建安装虚拟网络交换机。
首先先了解一下Hyper-V的虚拟网络交换机,可以开到创建Hyper-V虚拟交换机有三种联网的方式:
外网:这个必须是在安装Hyper-V的物理主机上安装有物理网卡与之对应,这样虚拟机通过这样的联网方式可以连接与物理机一样的网络。这样与宿主的物理机访问网络就没有什么区别。并且网络中的其他物理机也可以访问该虚拟机。
内部:该网络的方式主要用于虚拟机与宿主机器的访问,通过软路由获取分配相应的IP地址,实现对外网的访问,但不提供与物理网络间的连接。
专用:不提供物理网络之间的连接,只提供虚拟机与虚拟机之间的连接。

明白虚拟机的软路由对应的功能后,就可以根据你的需要来创建Hyper-V虚拟网络交换机。首先,在Windows的开始菜单中打开“Hyper-V管理器”
Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

进入hyper-v的管理界面中,在右边的操作下方可以打开“虚拟交换机管理器…”来进行Hyper-v虚拟交换机的创建。
Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

进入虚拟交换机管理器的界面当中可以看到,系统已经默认创建了一个默认的虚拟网络交换机,名称为“Default Switch”,它的连接类型为“内部网络”,创建虚拟的时候选择该虚拟交换机就可以通过它实现与宿主物理机之间的连接。因此可以不用创建内部网络虚拟机交换机了。
Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

配置WSL2使用外部网络

使用Hyper-V创建外部网络:
接下来创建一个外部网络的虚拟交换机。进入虚拟交换机的管理界面,选择左边的“新建虚拟网络交换机”,在你要创建哪种类型的虚拟交换机下面选择“外部”后,点击“创建虚拟交换机”
Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

此时将名称改为便于你记忆的了解虚拟交换机类型的名称,如外部。在连接类型中点击选择“外部网络。接下来选择需要绑定的主机网卡。如果你的主机安装的网卡不止一个,就需绑定你需要绑定的是哪一块网卡。完成相关的设置之后,就可以点击”确定“完成外部网络虚拟交换机的创建。
Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

通过上面的操作,这样我们就完成了虚拟机外部网络虚拟交换机的创建操作。接下来,就可以根据你创建安装的虚拟机来选择你需要连接的网络类型。你可以通过在创建虚拟机的过程中选择需要的网络类型,或者安装好后的虚拟机通过设置来更改需要的网络类型。只需要选择对应创建好的虚拟交换机即可。

# 查看网络交换机名称

# 查看网络交换机名称
Get-VMSwitch -SwitchType External

Hyper-V中设置WSL2使用桥接网络并指定IP实现内网与外网的连接

配置 .wslconfig
存储在目录中 %UserProfile%,或者 PowerShell 中使用 cd ~ 访问主目录

cd ~  # 进入到用户主目录
New-Item .wslconfig # 新建全局配置文件

选择一个编辑器编辑该配置文件


[wsl2]
networkingMode=bridged
vmSwitch=bridge # 上图中的Name值
ipv6=true

重启 WSL2


wsl --shutdown
wsl
ip a

可以看到eth0的网络是桥接网络了

设置特定静态IP

修改 .wslconfig


[wsl2]
networkingMode=bridged
vmSwitch=WSL_external
dhcp=false # 禁止动态分配
ipv6=true

dhcp=false时会读取 cd /lib/systemd/network/wsl_external.network 的网络配置


vim /lib/systemd/network/wsl_external.network #加入以下内容

[Match]
Name=eth0
[Network]
Description=bridge
DHCP=false
Address=192.168.1.10/24 # 自行修改
Gateway=192.168.0.1 # 自行修改

重启WSL2 (wsl --shutdown)
你会发现eth0已经有自定义的网络了

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

声明:如果本站发布的内容侵犯到您的权益,请通过邮件【[email protected]】联系本站,我们将及时删除!

发表评论

表情 格式 链接 私密 签到