blog/src/programming/java/工具箱/WSL2.md
LiuMangMang 704bef9502 docs: 更新图标并优化文档结构
- 为多个文档添加或更新图标,提升视觉一致性
- 优化文档结构,提高内容的可读性和导航性
- 添加新功能和修复记录,保持文档与项目同步
2025-07-14 20:35:23 +08:00

9.9 KiB
Raw Blame History

icon date category tag title
mdi:microsoft-windows 2025-05-08
win10
wsl
http
WSL2

WSL2完全配置指南从安装到实用工具

Windows Subsystem for Linux (WSL2) 为Windows用户提供了无需双系统或虚拟机就能运行Linux环境的能力。本文将全面介绍WSL2的安装、配置和优化过程包括网络设置、常用工具安装和问题排查等内容。

安装WSL2

  1. 启用WSL功能 打开控制面板,启用"Windows Subsystem for Linux"和"虚拟机平台"功能,然后重启电脑。

  2. 检查WSL版本

    wsl --status
    wsl --update
    
  3. 设置默认为WSL2

    wsl --set-default-version 2
    
  4. 查看可用的Linux发行版

    wsl --list --online
    
  5. 安装Linux发行版

    # 安装默认版本(Ubuntu)
    wsl --install
    
    # 或安装指定版本
    wsl --install -d Ubuntu-24.04
    
  6. 设置用户名和密码,安装完成后系统会提示设置。

  7. 更新系统

    sudo apt update && sudo apt upgrade
    
  8. 验证安装

    wsl -l -v
    

网络配置

配置DNS

WSL2使用的DNS服务器在/etc/resolv.conf文件中设置,为防止每次启动重置,需要进行以下配置:

  1. 创建/etc/wsl.conf文件:

    [network]
    generateResolvConf = false
    
  2. 删除原链接文件:

    rm /etc/resolv.conf
    
  3. 创建新配置:

    vi /etc/resolv.conf
    # 添加内容
    nameserver 114.114.114.114
    
  4. 重启WSL

    exit
    wsl --shutdown
    wsl
    
  5. 测试网络:

    ping www.baidu.com
    

配置桥接网络

  1. 开启Hyper-V后执行以下命令:

    Get-NetAdapter
    New-VMSwitch -SwitchName "VETH" -NetAdapterName "以太网" -AllowManagementOS $True
    
  2. 创建.wslconfig配置文件:

    cd ~
    New-Item .wslconfig
    notepad .\.wslconfig
    
  3. 添加以下内容:

    [wsl2]
    networkingMode=bridged
    vmSwitch=VETH
    ipv6=true
    

配置网络代理

  1. 关闭自动更新DNS

    #/etc/wsl.conf
    [network]
    generateResolvConf = false
    
  2. 添加以下脚本至.bashrc.zshrc

    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. 执行命令启用/禁用代理:

    # 启用代理
    proxy
    
    # 禁用代理
    unproxy
    
  4. 固定DNS配置

    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. 测试代理:

    curl -vv google.com
    

基础功能配置

开启SSH服务

  1. 安装SSH服务

    sudo apt update && sudo apt upgrade
    sudo apt-get install openssh-server
    
  2. 修改SSH配置

    sudo vi /etc/ssh/sshd_config
    

    找到PasswordAuthentication行,确保设置为yes

  3. 启动并设置开机自启:

    sudo systemctl status ssh
    sudo systemctl start ssh
    sudo systemctl enable ssh
    

安装桌面环境

sudo apt update
sudo apt install ubuntu-desktop
# 安装远程桌面服务
sudo apt-get install xrdp
sudo systemctl start xrdp
sudo systemctl enable xrdp

映射Windows目录至WSL

# 创建挂载点
sudo mkdir /mnt/z
# 挂载Windows目录
sudo mount -t drvfs C:/User/xxx/Desktop/挂载文件 /mnt/z

系统管理

查看端口

查询端口占用有两种常用方法:

  1. 使用netstat

    sudo apt-get install net-tools
    sudo netstat -tunlp | grep 端口号
    
  2. 使用lsof

    sudo apt-get install lsof
    sudo lsof -i:端口号
    

修改主机名

  1. 使用hostnamectl命令:

    sudo hostnamectl set-hostname 新主机名
    
  2. 修改配置文件:

    sudo vi /etc/hostname
    sudo vi /etc/hosts
    

    在hosts文件中将127.0.1.1对应的旧主机名替换为新主机名

  3. 重启系统(可选):

    sudo reboot
    

开发环境配置

IDEA中文乱码修复

  1. 安装语言包:

    sudo apt install language-pack-zh-hans
    
  2. 配置语言环境:

    sudo dpkg-reconfigure locales
    # 选择en_US.UTF-8和zh_CN.UTF-8并将zh_CN.UTF-8设为默认
    
  3. 安装字体工具:

    sudo apt install fontconfig
    
  4. 配置Windows字体

    sudo vi /etc/fonts/local.conf
    

    添加内容:

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
        <dir>/mnt/c/Windows/Fonts</dir>
    </fontconfig>
    
  5. 刷新字体缓存:

    fc-cache -f -v
    
  6. 重启WSL

    wsl --shutdown
    

IDEA配置输入法

  1. 安装fcitx输入法

    sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
    
  2. 编辑/etc/locale.gen

    vi /etc/locale.gen
    # 取消注释行zh_CN.UTF-8
    
  3. 配置环境变量:

    vi ~/.profile
    # 添加内容
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    export DefaultIMModule=fcitx
    fcitx-autostart &>/dev/null
    
  4. 更新配置:

    source ~/.profile
    
  5. 配置快捷键:

    fcitx-config-gtk3
    
  6. IDEA支持编辑idea.sh启动脚本,添加:

    export XMODIFIERS=@im=fcitx
    export QT_IM_MODULE=fcitx
    

安装Docker

  1. 更新系统包:

    sudo apt update
    
  2. 安装依赖:

    sudo apt install ca-certificates curl gnupg lsb-release
    
  3. 添加Docker官方GPG密钥

    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源

    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. 更新包列表:

    sudo apt update
    
  6. 安装Docker引擎

    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  7. 启动并验证:

    sudo systemctl start docker
    sudo systemctl enable docker
    sudo docker --version
    

安装1Panel

一键安装:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

查看管理员密码:

sudo 1pctl user-info

安装SVN

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. 检查端口占用:

    sudo lsof -i:22
    
  2. 终止占用进程:

    sudo kill <PID>
    
  3. 创建缺失目录:

    sudo mkdir -p /run/sshd
    sudo chmod 0755 /run/sshd
    
  4. 重启SSH服务

    sudo systemctl restart ssh
    

常用指令

# 列出可用的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

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

sudo apt install vlc -y

启动命令:vlc

安装 X11 应用

sudo apt install x11-apps -y

启动命令示例:xcalcxclockxeyes


通过本文的配置指南你可以构建一个功能完善的WSL2环境满足日常开发、学习和娱乐需求。WSL2的灵活性使得Windows用户无需切换操作系统就能享受Linux的强大功能是开发人员的理想工具。