Windows 11 设置 wsl-ubuntu 使用桥接网络

Windows 11 设置 wsl-ubuntu 使用桥接网络

  • [0. 背景](#0. 背景)
  • [1. Windows 11 下启用 Hyper-V](#1. Windows 11 下启用 Hyper-V)
  • [2. 使用 Hyper-V 虚拟交换机管理器创建虚拟网络](#2. 使用 Hyper-V 虚拟交换机管理器创建虚拟网络)
  • [3. 创建 .wslconfig 文件](#3. 创建 .wslconfig 文件)
  • [4. 配置 wsl.conf 文件](#4. 配置 wsl.conf 文件)
  • [5. 配置 wsl-network.conf 文件](#5. 配置 wsl-network.conf 文件)
  • [6. 创建 00-wsl2.yaml](#6. 创建 00-wsl2.yaml)
  • [7. 安装 net-tools 和 openssh-server](#7. 安装 net-tools 和 openssh-server)

0. 背景

在 Windows 11 下的 wsl-ubuntu 系统下学习 AI,内网的其他机器访问 wsl-ubuntu 中启动的服务非常麻烦,所以设置wsl-ubuntu 使用桥接网络,方便内网中其他机器进行访问。

1. Windows 11 下启用 Hyper-V

如下图所示,启用 Hyper-V。

2. 使用 Hyper-V 虚拟交换机管理器创建虚拟网络

如下图所示。

3. 创建 .wslconfig 文件

使用快捷键Win+R唤出运行窗口,在打开栏内填入%USERPROFILE%并在打开的文件夹内创建配置文件".wslconfig",并在该配置文件内输入以下内容。

复制代码
[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
#ipv6=true
#dhcp=false

4. 配置 wsl.conf 文件

进入wsl的Ubuntu子系统,打开/etc/wsl.conf,若文件不存在则创建,

复制代码
vi /etc/wsl.conf

在wsl.conf配置文件内填入以下内容,

复制代码
[boot]
systemd = true
#[network]
#generateHosts = false
#generateResolvConf = false

5. 配置 wsl-network.conf 文件

检查/etc/systemd/network/,若文件夹下没有文件则创建一个配置文件my-network.conf,若文件夹下有文件则忽略此步骤。

复制代码
vi /etc/systemd/network/my-network.conf

在my-network.conf文件内填入以下内容,

复制代码
[Match]
Name=en*
 
[Network]
DHCP=ipv4

重启networkd,

复制代码
systemctl restart systemd-networkd

6. 创建 00-wsl2.yaml

打开配置文件/etc/netplan/00-wsl2.yaml,如果不存在就创建。

复制代码
vi /etc/netplan/00-wsl2.yaml

在00-wsl2.yaml文件内填入以下格式的内容,

复制代码
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.0.15/24]
      gateway4: 192.168.0.2
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

apt install mininet

然后使用sudo netplan apply应用新的网络设置,重启WSL2子系统即可。

重启后,wsl子系统的IP地址将不再随机变化,且直接桥接到外部局域网,可更方便地用于进行网络调试以及嵌入式开发。(用这个方案可永久生效,只需配置一次)

7. 安装 net-tools 和 openssh-server

复制代码
apt install net-tools openssh-server

确认 ip,

复制代码
ifconfig

---
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.31.15  netmask 255.255.255.0  broadcast 192.168.31.255
        inet6 fe80::5cbb:f6ff:fe9e:eefa  prefixlen 64  scopeid 0x20<link>
        ether 5e:bb:f6:9e:ee:fa  txqueuelen 1000  (Ethernet)
        RX packets 1694  bytes 260513 (260.5 KB)
        RX errors 0  dropped 541  overruns 0  frame 0
        TX packets 248  bytes 40750 (40.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 528  bytes 47784 (47.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 528  bytes 47784 (47.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
---

完结!

相关推荐
踏歌~7 分钟前
终极指南:在 Windows 上配置 KDB+, JupyterQ 与 Python (embedPy)
开发语言·windows·python
Source.Liu8 分钟前
【IT工具】Ubuntu 环境下使用 Flask
linux·ubuntu·flask
彷徨而立14 分钟前
【Windows】 LoadLibraryA(“F:\\svnroot\\mccv.dll“) 返回NULL, GetLastError() 返回 126
windows
谢怜8218 分钟前
计算机网络第三章数据链路层
网络·计算机网络
热心市民R先生30 分钟前
对象字典(OD)、服务数据对象(SDO)、过程数据对象(PDO)(二)
服务器·网络
希赛网37 分钟前
网工面试:常问技术问题汇总(4)
网络·计算机网络·网络工程师·面试问题·路由交换·网工面试·网工面试提问
gs801401 小时前
【保姆级】MetaGPT安装避坑指南:Windows+Conda环境下解决依赖冲突、版本过低及配置失效问题
人工智能·windows·conda·metagpt
危险、1 小时前
Windows 怎么修改Claude Code的API Key?
windows·claude code
(Charon)1 小时前
【网络编程】基于 DPDK 的 UDP/TCP 抓包与最简协议栈实现
网络·tcp/ip·udp
zbtlink1 小时前
路由器桥接:原理、差异与操作指南
网络·智能路由器