Windows 11 下安装 WSL 和 Ubuntu 24.04以及配置上网工具

本文由 简悦 SimpRead 转码, 原文地址 dangzitou.github.io

前言

前言

最近想在 Windows 11 上体验 Linux 开发环境,但是虚拟机和宿主机的互通太局限,况且图形化界面对于开发者来说不是非常有必要,于是选择了安装 WSL(Windows Subsystem for Linux),并安装了 Ubuntu 24.04。本文记录一下详细步骤和遇到的坑,希望能帮到后来的朋友。


一、首先要在 Windows11 开启 WSL 功能

  1. Win + S,搜索 “启用或关闭 Windows 功能” 并打开。
  2. 勾选:
    • “适用于 Linux 的 Windows 子系统”
    • “虚拟机平台(Virtual Machine Platform)”
  3. 确认后重启电脑。

二、安装 WSL

  1. 打开 PowerShell(管理员),输入:

  2. 如果已经有 WSL1,升级到 WSL2:

    wsl --set-default-version 2
    

三、安装 Ubuntu

方法一(推荐):

  1. 打开 Microsoft Store,搜索 “Ubuntu”。
  2. 找到并安装 “Ubuntu”。

方法二:

  • 由于主包的 MsStore 故障了,所以不得已采用第二种方法

    1. 进入 Ubuntu 官网 下载 WSL 版本

    2. 下载解压后得到一个ubuntu-24.04.2-wsl-amd64文件

    3. 修改文件名,添加后缀.tar,便于后续解压安装

    4. 回到PowerShell,导入Ubuntu系统镜像,输入命令:

      wsl --import <发行版名称> <安装目录> <镜像文件路径>
      

      例如我的ubuntu-24.04.2-wsl-amd64.tar目录在E:\Edge Download\ubuntu-24.04.2-wsl-amd64,我希望 WSL 虚拟硬盘地址放在E:\Ubuntu-24.04我就输入:

      wsl --import Ubuntu-24.04 "D:\WSL\Ubuntu-24.04" "D:\Edge Download\ubuntu-24.04.2-wsl-amd64.tar"
      

      注意路径要用""括起来

    出现这样的页面即为安装成功

四、启动 Ubuntu

1. 方法一:开始菜单启动(简单快捷)

  • 按下键盘上的 Win 键(或点击屏幕左下角的开始菜单)。
  • 直接在搜索框输入 “Ubuntu” 或你安装时命名的发行版名称(如 “Ubuntu-24.04”)。
  • 出现 “Ubuntu” 应用后,点击它即可打开 Ubuntu 终端。

2. 方法二:使用 Windows Terminal(个人推荐,自定义化程度高)

3. 方法三:命令行启动

  • 按 Win + R,输入 wsl 回车,默认会进入你设置的默认 Linux 发行版(比如 Ubuntu)。

  • 如果你有多个 WSL 发行版,输入如下命令启动指定的版本:

    这里的 Ubuntu-24.04 是你导入时设置的名称,请根据实际情况替换。


五、常见问题及解决办法

1. 安装速度慢 / 下载失败

  • 建议切换到国内源后再更新系统,或使用科学上网工具。

2. wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

这不是报错,而是一个 “警告” 或“提示”

它告诉你:检测到 Windows 系统有为 localhost(127.0.0.1)设置代理,但 WSL 在 NAT 网络模式下(就是 WSL2 默认的模式)不支持直接使用 localhost 代理。

啥意思?

就是你使用了科学上网工具,代理服务一般监听在 Windows 的本地 127.0.0.1: 端口 上。 但 WSL2 是一个虚拟网络环境,WSL2 里的 127.0.0.1 指向的是 Linux 子系统自己,而不是 Windows 的 127.0.0.1,所以不能直接访问 Windows 上的 localhost 代理。

如果你不想看到这个提示,直接把科学上网工具退出了就好。如果想让 WSL 能够使用代理上网,可以看下一条。

3. 如何让 WSL 能够使用代理上网?

这一点对于要经常性访问外网下载东西的开发者来说很重要。

1. 开启科学上网工具的局域网连接,设置科学上网工具代理端口,开启 HTTP(S) 端口,将端口设置一下(可以设置自己喜欢的端口),这个要根据自己的工具设置,我这里用的是 Clash Verge;

2. 回到 Windows Terminal 并进入 Ubuntu,输入以下指令, 进入. bashrc 文件:

3. 用鼠标滚轮或方向键滑动到文件末尾,添加如下代码(这里的7899设置成你自己刚刚在代理软件设置的 HTTP 端口),按 Ctrl+O(写入),回车确定,然后 Ctrl+X 退出。

WSL_HOST_IP=$(ip route | grep -m 1 default | awk '{print $3}')
export http_proxy="http://$WSL_HOST_IP:7899"
export https_proxy="http://$WSL_HOST_IP:7899"

4. 设置防火墙入站规则,避免流量被拦截。

5. 完成后在 Ubuntu 输入curl -I google.com验证,成功

六、总结

WSL 可以让我们在 Windows 上原生体验 Linux 开发,可以让开发更高效,而且提前上手 Linux 对于个人能力来说是极大的促进。如果你也遇到安装问题,欢迎留言交流!


This post is licensed under CC BY 4.0 by the author.