You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何永久将WSL对应的Windows网络适配器设置为DHCP?

如何永久将WSL对应的Windows网络适配器设置为DHCP?

我太懂这种烦恼了!WSL2的虚拟网卡确实经常在VPN断开、网络波动后偷偷把DHCP改回静态IP,折腾起来挺闹心的。下面给你几个亲测有效的永久解决办法,一步步来就行:

方法一:用管理员PowerShell强制锁定DHCP配置

图形界面改的设置容易被WSL或系统重置,用命令行操作更靠谱:

  • 先右键点击开始菜单,选择Windows PowerShell(管理员)(一定要管理员权限!)
  • 运行命令Get-NetAdapter,找到名称带vEthernet (WSL)的适配器(不同版本名字可能略有差异,比如vEthernet (WSL (Ubuntu))),记好这个名字
  • 执行以下命令设置IPv4为DHCP:
    Set-NetIPInterface -InterfaceAlias "vEthernet (WSL)" -Dhcp Enabled
    
  • 再设置IPv6为DHCP:
    Set-NetIPInterface -InterfaceAlias "vEthernet (WSL)" -AddressFamily IPv6 -Dhcp Enabled
    
  • 最后可以用Get-NetIPInterface -InterfaceAlias "vEthernet (WSL)"确认一下,看Dhcp列是不是显示Enabled

方法二:创建开机自动执行脚本,防止配置被重置

如果还是会偶尔变回静态IP,那就让系统开机时自动帮你重置DHCP:

  • 打开记事本,粘贴以下内容(记得把适配器名称改成你刚才查到的):
    # 强制设置WSL虚拟网卡为DHCP
    Set-NetIPInterface -InterfaceAlias "vEthernet (WSL)" -Dhcp Enabled
    Set-NetIPInterface -InterfaceAlias "vEthernet (WSL)" -AddressFamily IPv6 -Dhcp Enabled
    
  • 把文件保存为Set-WSL-DHCP.ps1,比如放在C:\根目录下
  • 打开「任务计划程序」,创建一个基本任务
    • 触发器选择「当计算机启动时」
    • 操作选择「启动程序」,程序或脚本填powershell.exe,添加参数填-ExecutionPolicy Bypass -File "C:\Set-WSL-DHCP.ps1"
    • 一定要勾选「使用最高权限运行」,否则脚本可能没权限修改网卡配置

方法三:切换WSL2的网络模式(推荐给新版本WSL)

如果你的WSL是较新版本,可以试试切换到mirrored网络模式,这种模式下WSL会直接复用Windows的网络栈,网卡配置更稳定:

  • 打开你的用户目录(比如C:\Users\你的用户名),新建一个名为.wslconfig的文件(注意文件名前面有个点)
  • 打开文件,粘贴以下内容:
    [wsl2]
    networkingMode=mirrored
    
  • 保存后,打开PowerShell运行wsl --shutdown关闭所有WSL实例,再重新启动WSL就生效了

小提示

如果以上方法还是偶尔失效,建议检查你的VPN客户端设置——有些VPN会强制修改所有网卡的IP配置,可能需要在VPN的「排除列表」里添加WSL的虚拟适配器,避免它被VPN篡改。

备注:内容来源于stack exchange,提问作者cozzymotto

火山引擎 最新活动