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
-
配置 .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)文章来源:https://www.toymoban.com/news/detail-480515.html
而且还启用了systemd
(systemctl 命令回来了)文章来源地址https://www.toymoban.com/news/detail-480515.html
到了这里,关于WSL设置静态IP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!