首页 > 系统相关 >在 Windows 11 中为 WSL2 启用 Systemd 以及修复ping不通和DNS无法解析等的问题

在 Windows 11 中为 WSL2 启用 Systemd 以及修复ping不通和DNS无法解析等的问题

时间:2023-12-17 22:46:09浏览次数:39  
标签:11 Systemd Users Windows WSL2 wsl WSL https com

前言

今天使用 WSL2 (Ubuntu 22.04.1 LTS) 的时候,遇到了ping不通的问题,提示:ping: connect: Network is unreachable

以及执行 sudo apt update 命令出现错误:Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Temporary failure resolving 'archive.ubuntu.com'

向 ChatGPT 提问和折腾,最终 ChatGPT 还是没能帮我解决问题。

只好上谷歌搜索引擎找答案,最终解决。

首先检查是否是 WSL2

自从 Windows 11 开始,Windows Subsystem for Linux 默认就是 WSL2,

如果不确定是不是WSL2,可以执行以下命令查看:

C:\Users\Administrator> wsl -v
WSL 版本: 2.0.14.0
内核版本: 5.15.133.1-1
WSLg 版本: 1.0.59
MSRDC 版本: 1.2.4677
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.22631.2861

执行以下命令,查看适用于 Linux 的 Windows 子系统分发版本:

C:\Users\Administrator> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         2
  docker-desktop-data    Stopped         2

如果VERSION显示不是2,可以使用如下命令升级为 WSL2:

  1. 设置WSL默认版本为2
C:\Users\Administrator> wsl --set-default-version 2
  1. 更新WSL
C:\Users\Administrator> wsl --update
  1. 设置子系统分发版本

执行命令:wsl --set-version <分发版名称> <版本号>

C:\Users\Administrator> wsl --set-version Ubuntu-22.04 2

这一步比较耗时,执行完成后通过命令 wsl -l -v 来查询升级是否成功。

启用 Systemd

一开始我以为升级到 WSL2 之后,wsl.conf 就没有作用了,其实依然还是有用的。

不管是 WSL1 还是 WSL2,都是通过 wsl.conf 文件来启用 Systemd。

进入WSL后,执行命令 vim /etc/wsl.conf 编辑 wsl.conf 文件,如果文件不存在,则新建 wsl.conf 文件,

如果 wsl.conf 文件里有其它内容,除非你清楚每一行配置的含义,否则建议全部清空。然后输入 i 启用编辑模式,并且添加以下行:

[boot]
systemd=true

然后按 Esc 键,最后输入 :wq 保存和退出。

在WSL之外的另一个窗口,执行以下命令,重启 WSL 实例以使这些更改生效。

C:\Users\Administrator> wsl --shutdown

重新进入 WSL 后,再执行以下命令:

systemctl restart systemd-networkd
systemctl enable systemd-networkd
systemctl restart systemd-resolved.service
systemctl enable systemd-resolved.service

更多 wsl.conf 配置项参考:https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-settings-for-wslconf

修复ping不通和DNS无法解析等的问题

从 WSL2 开始,新增了 .wslconfig 配置文件,默认没有生成这个文件,需要手工创建到 %UserProfile% 目录下。

例如 C:\Users\<UserName>\.wslconfig

编辑 .wslconfig 文件,添加以下行:

[wsl2]
networkingMode=bridged # 桥接模式
vmSwitch=PublicNetwork # 你想使用的虚拟交换机
ipv6=true # 启用 IPv6

如果没有 ipv6,可以设置为false,或将该配置项移除掉。

如果不知道 vmSwitch 的值应该如何填,以管理员身份运行 powershell,并且执行以下命令:

❯ Get-VMSwitch
Name                   SwitchType NetAdapterInterfaceDescription
----                   ---------- ------------------------------
Default Switch         Internal
WSL (Hyper-V firewall) Internal
PublicNetwork          External   Realtek Gaming 2.5GbE Family Controller

如果仅需要列出使用了 外部网络 的虚拟交换机,可以增加命令参数:-SwitchType External

❯ Get-VMSwitch -SwitchType External
Name          SwitchType NetAdapterInterfaceDescription
----          ---------- ------------------------------
PublicNetwork External   Realtek Gaming 2.5GbE Family Controller

保存后,执行以下命令,重启 WSL 实例以使这些更改生效。

C:\Users\Administrator> wsl --shutdown

更多 .wslconfig 配置项参考:https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#main-wsl-settings

本文先后参考了以下文章:

标签:11,Systemd,Users,Windows,WSL2,wsl,WSL,https,com
From: https://www.cnblogs.com/VAllen/p/how-enable-systemd-wsl-windows-11-and-fixed-dns-resolved-

相关文章

  • 个人贡献20211228许博文
    20211228许博文个人贡献作为组长,我明确本次团队合作任务,了解电子公文传输系统任务分配,确保每个组员分领到适合的任务。我主要负责1.数据库设计2.完成了前端的构建3.帮助组员完成项目环境配置这个项目也是由我将每个人的成果汇总到一起的,可以说是十分了解此项目。代码总行数......
  • 兰馨五棵松20211110个人贡献
    我完成的工作:主要负责前端设计,参与了部分数据库整合和文本编写。我们小组的相关代码链接:https://gitee.com/an-jiran/dzgwxt/tree/master/(撰写代码时未统计代码行数)我们小组总共发布14篇博客,我贡献了其中5篇,相关链接如下:https://www.cnblogs.com/lanxin5kesong/p/17780874.ht......
  • Windows 注册表取证 常用分析项
    Windows注册表取证常用分析项注册表主要单元:SYSTEM:对应的注册表分支为HKEY_LOCAL_MACHINE\SYSTEM,对应的存储文件是\Windows\System32\config\SYSTEM,其作用是存储计算机硬件和系统的信息。NTUSER.DAT:对应的注册表分支是HKEY_CURRENT_USER,存储在用户目录下,与其他注册表文件是分......
  • 11
     1.内部类1.1一般内部类内部类是定义在其他类内部的类。内部类可以是外部类的成员变量。内部类可以是私有的或静态的,具体取决于访问和使用的需求。1.2局部内部类局部内部类是在方法内部定义的,不能有访问修饰符。在局部内部类中使用的变量会隐式变为final。1.3匿......
  • 学期(2023-2024-1) 学号(20232411)《网络空间安全导论》第六周学习总结
    学期(2023-2024-1)学号(20232411)《网络空间安全导论》第六周学习总结教材学习内容总结本周我学习了《网络空间安全导论》的第六章,其主要讲述了应用安全的概述,一些具体的防御措施和应用安全的一些重点对象。在学习过程中,我总结了如下要点,以思维导图的方式呈现:教材学习中的......
  • win11 安装pytorch
    第一步骤,是安装cuda和cudnn,看这个链接。https://zhuanlan.zhihu.com/p/586913250。重点就是如何安装pytorch了,因为网络慢的原因  首先,直接使用下面这个命令不好使,如果你的科上网流量非常足的话,没问题的。我用aconda,差不多就安装好了,可是比较可惜的是,机器内存不够(32G),aconda安......
  • 电子公文传输-个人贡献 20211314王艺达
    主要工作数据库构建和代码具体分工内容1)明确电子公文网站设计的用户管理、菜单管理、角色管理、权限管理、字典管理、部门管理、岗位管理、电子公文、密钥管理、在线用户、定时任务等的具体功能需求。2)了解系统的需求,包括数据存储和检索的需求。明确系统中需要存储的数据类型......
  • 学年(2023-2024-1)学号(20231311)《计算机基础与程序设计》第12周学习总结
    2023-2024-120231311《计算机基础与程序设计》第12周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十二周作业这个作业的目标学习《C语言程序设计》第11章并完成云班课测试作业......
  • Win11今年被微软弃用功能达16项:含Cortana、写字板等
    2023年即将结束,近日有媒体盘点了微软在今年宣布弃用的16项Windows11功能,一起来看下吧。Cortana小娜助手:微软现在正大力推进新的Copilot,而作为与苹果Siri和谷歌等语音助手竞争的产品,Cortana助手曾被微软寄予了厚望,但最终也难逃被放弃的结果。在发布Copilot一周后,微软就宣布弃用......
  • 20211101王晨博电子公文网站个人贡献
    个人贡献1.活动图2.前端网页,页面显示优化3.适配新增加解密功能、完善前端页面及接口调试4.前端页面5.代码个人贡献878行,小组共4800+行https://gitee.com/kcf03/man-k/tree/0d9851e308a40770bd47ef9f0c2847d586c9ff59/front6.小组文档15篇,我贡献1篇https://www.cnblogs......