文章

WSL网络设置

wsl设置

.wslconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[wsl2]                      # 核心配置
# 是否强制 WSL2/WSLg 子系统使用 Windows 代理设置(请根据实际需要启用)
dnsTunneling=false          # WSL2/WSLg DNS 代理隧道,以便由 Windows 代理转发 DNS 请求(请根据实际需要启用)
firewall=true               # WSL2/WSLg 子系统的 Windows 防火墙集成,以便 Hyper-V 或者 Windows 筛选平台(WFP)能过滤子系统流量(请根据实际需要启用)
guiApplications=true        # 启用 WSLg GUI 图形化程序支持
ipv6=true                   # 启用 IPv6 网络支持
#localhostForwarding=true    # 启用 localhost 网络转发支持(新版已不支持在 mirrored 模式下使用,会自动忽略,所以无需注释掉,只是启用会有条烦人的警告而已)
memory=8GB                  # 限制 WSL2/WSLg 子系统的最大内存占用
nestedVirtualization=true   # 启用 WSL2/WSLg 子系统嵌套虚拟化功能支持
networkingMode=mirrored     # 启用镜像网络特性支持
#pageReporting=true          # 启用 WSL2/WSLg 子系统页面文件通报,以便 Windows 回收已分配但未使用的内存
processors=16                # 设置 WSL2/WSLg 子系统的逻辑 CPU 核心数为 8(最大肯定没法超过硬件的物理逻辑核心数)
vmIdleTimeout=-1            # WSL2 VM 实例空闲超时关闭时间,-1 为永不关闭,根据参数说明,目前似乎仅适用于 Win11+

[experimental]                  
# 实验性功能(按照过往经验,若后续转正,则是配置在上面的 [wsl2] 选节)
autoMemoryReclaim=gradual       # 启用空闲内存自动缓慢回收,其它选项:dropcache / disabled(立即/禁用)
hostAddressLoopback=true        # 启用 WSL2/WSLg 子系统和 Windows 宿主之间的本地回环互通支持
sparseVhd=true                  # 启用 WSL2/WSLg 子系统虚拟硬盘空间自动回收
bestEffortDnsParsing=true       # 和 dnsTunneling 配合使用,Windows 将从 DNS 请求中提取问题并尝试解决该问题,从而忽略未知记录(请根据实际需要启用)
#useWindowsDnsCache=false        # 和 dnsTunneling 配合使用,决定是否使用 Windows DNS 缓存池(新版已移除此实验性功能,未能转正)
#ignoredPorts=3306               # 见:https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#experimental-settings

ubuntu内部设置

vim /etc/wsl.conf

1
2
3
4
5
6
7
8
9
[boot]
systemd=true
# 启用 systemd 初始化系统
[user]
default=tzb
# 默认启动用户
[network]
generateResolvConf=false
# 关闭DNS覆盖

vim /etc/systemd/resolve.conf

1
2
3
4
nameserver 8.8.8.8
nameserver 114.114.114.114
nameserver 223..5.5.5
nameserver 127.0.0.1

阿里云镜像源

vim /etc/apt/sources.list 参考ubuntu镜像_ubuntu下载地址_ubuntu安装教程-阿里巴巴开源镜像站配置

食用指南

这种配置下,使用github的克隆推送等需要windows开启vpn;使用apt等ubuntu源下载的时候不要开vpn; 每次涉及到windows的网络变化都要重启wsl

本文由作者按照 CC BY 4.0 进行授权