---
icon: bi:arrows-expand
date: 2025-05-08
category:
- win10
tag:
- wsl
- http
title: WSL2
---
# WSL2完全配置指南:从安装到实用工具
Windows Subsystem for Linux (WSL2) 为Windows用户提供了无需双系统或虚拟机就能运行Linux环境的能力。本文将全面介绍WSL2的安装、配置和优化过程,包括网络设置、常用工具安装和问题排查等内容。
## 安装WSL2
1. **启用WSL功能**: 打开控制面板,启用"Windows Subsystem for Linux"和"虚拟机平台"功能,然后重启电脑。
2. **检查WSL版本**:
```powershell
wsl --status
wsl --update
```
3. **设置默认为WSL2**:
```powershell
wsl --set-default-version 2
```
4. **查看可用的Linux发行版**:
```powershell
wsl --list --online
```
5. **安装Linux发行版**:
```powershell
# 安装默认版本(Ubuntu)
wsl --install
# 或安装指定版本
wsl --install -d Ubuntu-24.04
```
6. **设置用户名和密码**,安装完成后系统会提示设置。
7. **更新系统**:
```bash
sudo apt update && sudo apt upgrade
```
8. **验证安装**:
```powershell
wsl -l -v
```
## 网络配置
### 配置DNS
WSL2使用的DNS服务器在`/etc/resolv.conf`文件中设置,为防止每次启动重置,需要进行以下配置:
1. 创建`/etc/wsl.conf`文件:
```bash
[network]
generateResolvConf = false
```
2. 删除原链接文件:
```bash
rm /etc/resolv.conf
```
3. 创建新配置:
```bash
vi /etc/resolv.conf
# 添加内容
nameserver 114.114.114.114
```
4. 重启WSL:
```bash
exit
wsl --shutdown
wsl
```
5. 测试网络:
```bash
ping www.baidu.com
```
### 配置桥接网络
1. **开启Hyper-V**后执行以下命令:
```powershell
Get-NetAdapter
New-VMSwitch -SwitchName "VETH" -NetAdapterName "以太网" -AllowManagementOS $True
```
2. 创建`.wslconfig`配置文件:
```powershell
cd ~
New-Item .wslconfig
notepad .\.wslconfig
```
3. 添加以下内容:
```
[wsl2]
networkingMode=bridged
vmSwitch=VETH
ipv6=true
```
### 配置网络代理
1. 关闭自动更新DNS:
```bash
#/etc/wsl.conf
[network]
generateResolvConf = false
```
2. 添加以下脚本至`.bashrc`或`.zshrc`:
```bash
vi ~/.bashrc
# 添加代理配置
export hostip=10.6.212.22 # 替换为你的代理IP
export hostport=7890 # 替换为你的代理端口
alias proxy='
export HTTPS_PROXY="http://${hostip}:${hostport}";
export HTTP_PROXY="http://${hostip}:${hostport}";
export ALL_PROXY="http://${hostip}:${hostport}";
echo -e "Acquire::http::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
echo -e "Acquire::https::Proxy \"http://${hostip}:${hostport}\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf > /dev/null;
'
alias unproxy='
unset HTTPS_PROXY;
unset HTTP_PROXY;
unset ALL_PROXY;
sudo sed -i -e '/Acquire::http::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
sudo sed -i -e '/Acquire::https::Proxy/d' /etc/apt/apt.conf.d/proxy.conf;
'
```
3. 执行命令启用/禁用代理:
```bash
# 启用代理
proxy
# 禁用代理
unproxy
```
4. 固定DNS配置:
```bash
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
```
5. 测试代理:
```bash
curl -vv google.com
```
## 基础功能配置
### 开启SSH服务
1. 安装SSH服务:
```bash
sudo apt update && sudo apt upgrade
sudo apt-get install openssh-server
```
2. 修改SSH配置:
```bash
sudo vi /etc/ssh/sshd_config
```
找到`PasswordAuthentication`行,确保设置为`yes`
3. 启动并设置开机自启:
```bash
sudo systemctl status ssh
sudo systemctl start ssh
sudo systemctl enable ssh
```
### 安装桌面环境
```bash
sudo apt update
sudo apt install ubuntu-desktop
# 安装远程桌面服务
sudo apt-get install xrdp
sudo systemctl start xrdp
sudo systemctl enable xrdp
```
### 映射Windows目录至WSL
```bash
# 创建挂载点
sudo mkdir /mnt/z
# 挂载Windows目录
sudo mount -t drvfs C:/User/xxx/Desktop/挂载文件 /mnt/z
```
## 系统管理
### 查看端口
查询端口占用有两种常用方法:
1. 使用`netstat`:
```bash
sudo apt-get install net-tools
sudo netstat -tunlp | grep 端口号
```
2. 使用`lsof`:
```bash
sudo apt-get install lsof
sudo lsof -i:端口号
```
### 修改主机名
1. 使用`hostnamectl`命令:
```bash
sudo hostnamectl set-hostname 新主机名
```
2. 修改配置文件:
```bash
sudo vi /etc/hostname
sudo vi /etc/hosts
```
在hosts文件中将`127.0.1.1`对应的旧主机名替换为新主机名
3. 重启系统(可选):
```bash
sudo reboot
```
## 开发环境配置
### IDEA中文乱码修复
1. 安装语言包:
```bash
sudo apt install language-pack-zh-hans
```
2. 配置语言环境:
```bash
sudo dpkg-reconfigure locales
# 选择en_US.UTF-8和zh_CN.UTF-8,并将zh_CN.UTF-8设为默认
```
3. 安装字体工具:
```bash
sudo apt install fontconfig
```
4. 配置Windows字体:
```bash
sudo vi /etc/fonts/local.conf
```
添加内容:
```xml
/mnt/c/Windows/Fonts
```
5. 刷新字体缓存:
```bash
fc-cache -f -v
```
6. 重启WSL:
```bash
wsl --shutdown
```
### IDEA配置输入法
1. 安装fcitx输入法:
```bash
sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
```
2. 编辑`/etc/locale.gen`:
```bash
vi /etc/locale.gen
# 取消注释行:zh_CN.UTF-8
```
3. 配置环境变量:
```bash
vi ~/.profile
# 添加内容
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
fcitx-autostart &>/dev/null
```
4. 更新配置:
```bash
source ~/.profile
```
5. 配置快捷键:
```bash
fcitx-config-gtk3
```
6. IDEA支持:编辑`idea.sh`启动脚本,添加:
```properties
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
```
### 安装Docker
1. 更新系统包:
```bash
sudo apt update
```
2. 安装依赖:
```bash
sudo apt install ca-certificates curl gnupg lsb-release
```
3. 添加Docker官方GPG密钥:
```bash
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
4. 添加Docker APT源:
```bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
5. 更新包列表:
```bash
sudo apt update
```
6. 安装Docker引擎:
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
7. 启动并验证:
```bash
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
```
### 安装1Panel
一键安装:
```bash
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
```
查看管理员密码:
```bash
sudo 1pctl user-info
```
### 安装SVN
```bash
sudo apt update
sudo apt install subversion
svn --version # 验证安装
```
## 问题记录
### SSH连接异常
症状:SSH服务启动失败,出现以下错误:
```
error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
fatal: Missing privilege separation directory: /run/sshd
```
解决方法:
1. 检查端口占用:
```bash
sudo lsof -i:22
```
2. 终止占用进程:
```bash
sudo kill
```
3. 创建缺失目录:
```bash
sudo mkdir -p /run/sshd
sudo chmod 0755 /run/sshd
```
4. 重启SSH服务:
```bash
sudo systemctl restart ssh
```
## 常用指令
```powershell
# 列出可用的Linux发行版
wsl --list --online
# 列出已安装的发行版
wsl --list --verbose # 或 wsl -l -v
# 设置WSL版本
wsl --set-version <发行版名称> <版本号>
# 设置默认WSL版本
wsl --set-default-version <版本号>
# 设置默认Linux发行版
wsl --set-default <发行版名称>
# 运行特定发行版
wsl --distribution <发行版名称> --user <用户名>
# 更新WSL
wsl --update
# 检查WSL状态
wsl --status
# 检查WSL版本
wsl --version
# 以特定用户身份运行
wsl --user <用户名>
# 卸载Linux发行版
wsl --unregister <发行版名称>
# 标识IP地址
wsl hostname -I # 返回WSL2 IP地址
ip route show | grep -i default | awk '{ print $3}' # 返回Windows主机IP
# 更改默认用户
<发行版名称> config --default-user <用户名>
```
## 实用软件安装
### 安装适用于 Linux 的 Google Chrome
```bash
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install --fix-missing ./google-chrome-stable_current_amd64.deb
```
启动命令:`google-chrome`
### 安装 VLC
```bash
sudo apt install vlc -y
```
启动命令:`vlc`
### 安装 X11 应用
```bash
sudo apt install x11-apps -y
```
启动命令示例:`xcalc`、`xclock`、`xeyes`
------
通过本文的配置指南,你可以构建一个功能完善的WSL2环境,满足日常开发、学习和娱乐需求。WSL2的灵活性使得Windows用户无需切换操作系统就能享受Linux的强大功能,是开发人员的理想工具。