最近配新电脑,为了不把windows的环境变量搞混,又满足必须使用相关软件的功能,目前来讲WSL确实是不错的选择,就是踩坑多,本文对配置过程中常用的命令以及相关问题解决方案进行记录。
配置使用WSL2
- 使用桌面任务栏搜索 启用或关闭Windows功能
依次打开
- Hyper-V
- 适用于Linux的windows子系统
- 虚拟机平台
- 设置完成后,重启,使用Win+X键以管理员权限打开Windows Powershell或打开Windows Terminal(需安装)
- 执行以下命令
%设置默认版本为WSL2%
wsl --set-default-version 2
- 使用Microsoft Store安装任一Linux发行版本,本文安装Ubuntu,后打开即可。
修改Ubuntu软件源
Ubuntu默认源在国内非梯状态速度奇慢,修改软件源必定是首要工作。
# 备份源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
# 修改sources.list,使用快捷键ggVG全选后删除
sudo vim /etc/apt/sources.list
# 更新系统源并升级
sudo apt-get update
sudo apt-get upgrade
Ubuntu切换中文
# 安装中文语言包
sudo apt-get install -y language-pack-zh-hans
# 设置中文为默认语言
sudo update-locale LANG=zh_CN.UTF-8
WSL1挂VPN不能联网问题
WSL1的DNS信息是自动生成的,挂VPN后不能及时更新信息导致无法联网
可以手动修改DNS,治标不治本
# 关闭自动生成
sudo vim /etc/wsl.conf;
# 复制以下信息
# [network]
# generateResolvConf = false
# 删除映射的resolv.conf
sudo rm /etc/resolv.conf
# 打开DNS文件
sudo vim /etc/resolv.conf
# 修改为阿里云公共DNS
# nameserver 223.5.5.5
# nameserver 223.6.6.6
# 重起网卡
sudo /etc/init.d/networking restart
本机可以访问Localhost,但通过DNS指定到127001访问不了本机网站
- WSL优先使用ipv6进行映射,如果网络设备支持IPV6,可设置DNS解析到0::1
- 禁用WSL ipv6支持
# 打开设置文件
sudo vim /etc/sysctl.d/99-sysctl.conf
# 添加以下内容
# net.ipv6.conf.all.disable_ipv6 = 1
# net.ipv6.conf.default.disable_ipv6 = 1
# net.ipv6.conf.lo.disable_ipv6 = 1
# 重载配置
sudo sysctl -p