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 命令回来了)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在WSL 2中设置静态IP,需要进行以下步骤: 1. 打开Windows Terminal或其他终端应用程序,并在其中启动WSL 2。 2. 运行以下命令以安装所需的软件包: ``` sudo apt update sudo apt install net-tools ``` 3. 通过运行以下命令,查找要配置静态IP网络接口的名称: ``` ip link ``` 通常情况下,该接口的名称类似于“eth0”或“wsl0”。 4. 运行以下命令以编辑网络接口的配置文件: ``` sudo nano /etc/network/interfaces ``` 5. 在文件中添加以下行,替换为您要使用的IP地址、网关和DNS服务器的值: ``` auto <接口名称> iface <接口名称> inet static address <IP地址> netmask <子网掩码> gateway <网关地址> dns-nameservers <DNS服务器地址> ``` 例如,如果要将静态IP地址设置为“192.168.1.100”、“255.255.255.0”子网掩码、“192.168.1.1”网关和“8.8.8.8”DNS服务器,则应添加以下行: ``` auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 ``` 6. 保存文件并退出编辑器。 7. 运行以下命令以重启网络服务: ``` sudo service networking restart ``` 8. 确认静态IP地址是否已成功设置,可以通过运行以下命令来检查: ``` ip addr show <接口名称> ``` 例如,如果要检查名为“eth0”的接口,则应运行以下命令: ``` ip addr show eth0 ``` 如果一切正常,则应该看到接口已配置为使用静态IP地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值