WSL设置静态IP

WSL2设置静态IP

微软终于更新了 WSL2,允许用户自行指定用于 WSL2 的网卡,因此不再需要任何的脚本等等即可固定 WSL2 地址甚至支持 IPv6 和外部访问。

注意:此方法需要至少 Windows 11 22H2。

首先需要从 Microsoft Store 里面下载最新的 Windows Subsystem for Linux。

用不了商店的可以前往这里自己下载 msixbundle 部署安装:https://github.com/microsoft/WSL/releases

装好之后可以运行 wsl --version 确认一下是不是 1.0 以上。

然后在用户目录 %USERPROFILE% 下面创建一个配置文件 .wslconfig,按照如下配置方法设置网络,例如:

[wsl2]
networkingMode=bridged # 桥接模式
vmSwitch=WSLBridge # 你想使用的网卡
ipv6=true # 启用 IPv6[wsl2]

wsl --shutdown && wsl 重启 WSL2,搞定

检查

wsl --version
# 版本>1.0即可

如果出错,请安装最新版本

配置文件

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

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

配置WSL2使用外部网络

  • 使用Hyper-V创建外部网络(其他方式创建也行)
# 查看网络交换机名称
Get-VMSwitch -SwitchType External

uTools_1679587233100

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

  • [wsl2]
    networkingMode=bridge
    vmSwitch=WSL_Bridge
    ipv6=true
    #dhcp=false
    memory=8GB
    processors=4
    localhostforwarding=true
    debugConsole=false
    guiApplications=true
    

    重启 WSL2

    wsl --shutdown
    wsl
    ip a
    

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

在这里插入图片描述

​ 修改DNS禁止自动生成

添加 /etc/wsl.conf 加入以下内容

[boot]
# 启用systemctl命令
systemd=true
[network]
# 取消自动生成resolv.conf文件,这个是关键点
generateResolvConf = false
# 设置虚拟主机的名称,可不设
#hostname = 
[user]
# 启动的默认用户,设为root吧,不然以后命令都要加sudo有点麻烦
default = root

先删除再创建,因为resolv.conf是软链接创建的

rm -f /etc/resolv.conf
echo "nameserver 114.114.114.114" > /etc/resolv.conf

DNS 参考

# 114
nameserver 114.114.114.114
# 阿里
nameserver 223.5.5.5
# 谷歌
nameserver 8.8.8.8

重启WSL2 (wsl --shutdown)

而且还启用了systemd (systemctl 命令回来了)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值