Ubuntu WSL2 安装后完整配置:换国内源、Python、Node.js、Git、VS Code、Docker 和网络路径问题

Ubuntu WSL2 安装后完整配置:换国内源、Python、Node.js、Git、VS Code、Docker 和网络路径问题

Ubuntu WSL2 安装后完整配置:换国内源、Python、Node.js、Git、VS Code、Docker 和网络路径问题

上一篇我们讲了 Windows 10 怎么安装 WSL2,也讲清楚了 WSL2 和 WSL1 的区别。装完以后,真正让新手头疼的往往不是“能不能打开 Ubuntu”,而是后面这一串问题:软件源太慢怎么办?Python、Node.js、Git 怎么装?VS Code 怎么连进去?Docker Desktop 怎么和 WSL2 配合?Windows 和 Linux 的文件路径到底怎么互相访问?

这篇就把这些问题集中讲清楚。

它不是一篇“装完就复制一堆命令”的清单,而是按实际使用顺序整理:先确认 WSL2 环境,再处理软件源和基础工具,接着配置开发环境,最后讲 Docker、网络和路径这些最容易卡人的地方。

如果你还没安装 WSL2,可以先看上一篇:Windows 10 安装 WSL2 教程:不是 WSL1,是真正能跑 Linux 的子系统。

Ubuntu WSL2 安装后完整配置路线图
Ubuntu WSL2 安装后完整配置路线图

一、先确认 Ubuntu 跑在 WSL2,不是 WSL1

正式配置之前,先在 Windows PowerShell 里执行:

wsl -l -v

正常应该看到类似结果:

  NAME      STATE           VERSION
* Ubuntu    Running         2

重点看 VERSION 这一列。如果是 2,说明当前 Ubuntu 已经跑在 WSL2 上。如果显示 1,执行:

wsl --set-version Ubuntu 2

这一步不要跳过。因为 Docker Desktop、Linux 内核兼容性、部分网络行为,都和 WSL2 有关。很多人后面遇到 Docker 不能用、教程不一致,最后发现自己还在 WSL1。

二、换国内软件源:先看 Ubuntu 版本,再改 sources

WSL2 的 Ubuntu 默认使用官方软件源。如果网络访问比较顺,其实可以不换。但国内网络环境下,sudo apt update 经常很慢,这时换国内源就有意义。

先查看 Ubuntu 版本:

lsb_release -a

你会看到类似:

Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Codename:       jammy

最关键的是 Codename。常见版本代号:

  • Ubuntu 20.04:focal
  • Ubuntu 22.04:jammy
  • Ubuntu 24.04:noble

换源之前先备份:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

如果你是 Ubuntu 22.04,也就是 jammy,可以用清华源示例:

sudo tee /etc/apt/sources.list > /dev/null <<'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF

然后更新:

sudo apt update

如果你是 Ubuntu 24.04,就把上面的 jammy 换成 noble。如果是 Ubuntu 20.04,就换成 focal。

如果换源后报错,先恢复备份:

sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list
sudo apt update

新手最容易犯的错,就是不看系统版本,直接复制别人的软件源。版本代号错了,短期看可能只是更新报错,长期看依赖会越来越乱。

三、更新系统并安装基础工具

软件源确认正常以后,先更新系统:

sudo apt update
sudo apt upgrade -y

然后安装常用基础工具:

sudo apt install -y curl wget git vim unzip zip net-tools ca-certificates gnupg lsb-release build-essential software-properties-common

这些工具后面会经常用到:

  • curl / wget:下载文件、请求接口。
  • git:拉代码、管理版本。
  • vim:命令行编辑文件。
  • unzip / zip:压缩解压。
  • net-tools:提供 ifconfig 等传统网络命令。
  • ca-certificates / gnupg:添加第三方软件源时用。
  • build-essential:编译依赖、安装部分 Python 包时会用。

装完以后,先试一下:

git --version
curl --version
vim --version

不用每个输出都看懂,只要命令能正常执行,就说明基础工具已经装上。

四、安装 Python:建议用 venv,不要污染系统环境

Ubuntu WSL2 很适合学习 Python、跑脚本、处理文件、调用 API。先安装 Python 基础包:

sudo apt install -y python3 python3-pip python3-venv

查看版本:

python3 --version
pip3 --version

建议每个项目都创建自己的虚拟环境。比如:

mkdir -p ~/projects/python-demo
cd ~/projects/python-demo
python3 -m venv .venv
source .venv/bin/activate

激活后,命令行前面一般会出现 (.venv)。

这时安装 Python 包:

pip install requests

退出虚拟环境:

deactivate

为什么建议用虚拟环境?因为 Python 项目之间依赖版本经常不一样。今天一个项目要新版库,明天另一个项目要旧版库,如果全都装到系统 Python 里,时间久了环境会变得很乱。

以后你跑 AI 工具、Agent 工具、数据脚本,看到 README 里写 python -m venv 或 pip install -r requirements.txt,就知道它在做什么了。

五、安装 Node.js:新手先简单,项目多了再上 nvm

Node.js 主要用于前端开发、命令行工具、很多 AI WebUI 和 Agent 工具链。

新手可以先用系统源安装:

sudo apt install -y nodejs npm
node -v
npm -v

如果只是学习、跑一些简单脚本,这样够用。

但如果你要跑较新的前端项目,Ubuntu 软件源里的 Node.js 版本可能偏旧。这时建议使用 nvm 管理 Node.js 版本。

安装 nvm 可以参考官方仓库命令。装好后常见用法是:

nvm install --lts
nvm use --lts
node -v
npm -v

这里有个建议:不要一上来就把 Node.js、npm、pnpm、yarn、nvm 全部装一遍。先看项目需要什么。项目 README 写 npm 就用 npm,写 pnpm 再装 pnpm。环境越简单,排错越容易。

六、配置 Git:用户名、邮箱和 SSH Key

Git 已经在基础工具里装过了。接下来配置用户名和邮箱:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

查看配置:

git config --global --list

如果你要连接 GitHub、GitLab、Gitea 或自己的代码仓库,建议配置 SSH Key:

ssh-keygen -t ed25519 -C "你的邮箱"

一路回车即可。生成后查看公钥:

cat ~/.ssh/id_ed25519.pub

把这段公钥添加到 Git 平台的 SSH Keys 里。

测试 GitHub 连接可以用:

ssh -T [email protected]

如果提示成功认证,说明 SSH Key 配好了。

如果网络不通,先不要急着改一堆代理配置。先确认 Windows 本身能不能访问 GitHub,再确认 WSL2 里能不能访问:

curl -I https://github.com

七、VS Code 连接 WSL2:Windows 写代码,Linux 跑环境

VS Code + WSL2 是 Windows 用户最舒服的 Linux 开发方式之一。

先在 Windows 里安装 VS Code,然后在扩展市场安装:

  • WSL
  • 或者 Remote Development

接着打开 Ubuntu WSL2,创建项目目录:

mkdir -p ~/projects/wsl-demo
cd ~/projects/wsl-demo
code .

第一次执行 code .,VS Code 会自动在 WSL2 里安装服务端组件。装完后,VS Code 左下角会显示类似 WSL: Ubuntu。

这意味着:

  • VS Code 窗口运行在 Windows 上。
  • 终端和项目环境运行在 Ubuntu WSL2 里。
  • 你安装的 Python、Node.js、Git 都是 Linux 里的。

这个模式很适合开发,因为你不用把所有依赖装到 Windows 原生环境,也不用开一个完整虚拟机。

如果 code . 提示找不到命令,可以在 VS Code 里执行:

命令面板 -> Shell Command: Install 'code' command in PATH

或者直接从 VS Code 左下角的远程窗口按钮进入 WSL。

八、Docker Desktop 配置:让 Windows 和 WSL2 配合跑容器

Docker Desktop 在 Windows 上推荐使用 WSL2 backend。

安装思路如下:

  1. Windows 安装 Docker Desktop。
  2. 打开 Docker Desktop 设置。
  3. 在 General 里确认启用 WSL2 based engine。
  4. 在 Resources -> WSL Integration 里启用你的 Ubuntu。
  5. 回到 Ubuntu WSL2 里测试:
docker version
docker ps

如果能正常输出,说明 WSL2 里可以调用 Docker。

再跑一个测试容器:

docker run hello-world

如果你要跑 MySQL、Redis、Nginx、WordPress 这类服务,建议用 Docker Compose。比如创建一个 compose.yaml,再执行:

docker compose up -d

新手要注意三个点:

第一,Docker Desktop 本身会占内存。如果电脑只有 8GB 内存,不要同时开太多容器。

第二,项目文件建议放在 WSL2 的 ~/projects 下,不要放在 Windows C 盘再让容器频繁读写。

第三,容器端口如果 Windows 浏览器打不开,先查容器状态:

docker ps

确认端口映射是否存在,比如 0.0.0.0:8080->80/tcp。

九、WSL2 网络问题:localhost、端口和局域网访问

在 WSL2 里启动一个服务,Windows 浏览器通常可以通过 localhost 访问。

比如在 Ubuntu 里执行:

python3 -m http.server 8000

然后 Windows 浏览器打开:

http://localhost:8000

一般就能看到页面。

如果打不开,按这个顺序排查:

  1. 服务是否真的启动了。
  2. 端口是否写对。
  3. 服务是否监听 127.0.0.1 或 0.0.0.0。
  4. Windows 防火墙是否拦截。
  5. WSL2 是否需要重启。

在 WSL2 里可以查看监听端口:

ss -tulnp

如果命令没有,可以安装:

sudo apt install -y iproute2

如果服务状态很奇怪,可以在 Windows PowerShell 里执行:

wsl --shutdown

然后重新打开 Ubuntu。

局域网其他设备访问 WSL2 服务会更麻烦一些,因为 WSL2 有自己的虚拟网络。新手阶段建议先保证 Windows 本机能通过 localhost 访问。等本机跑通后,再考虑端口转发和防火墙规则。

十、WSL2 文件路径:项目放哪里最合适?

这是 WSL2 新手最容易踩坑的地方。

Windows 的 C 盘在 WSL2 里一般是:

/mnt/c

比如 Windows 桌面:

/mnt/c/Users/你的Windows用户名/Desktop

WSL2 的 Ubuntu 文件,在 Windows 资源管理器里可以通过:

wsl$Ubuntu

访问。

比如你的 Linux 用户目录可能是:

wsl$Ubuntuhome你的Linux用户名

建议记住这个原则:

  • 开发项目放在 WSL2 的 ~/projects。
  • 临时互传文件可以放 Windows 桌面或下载目录。
  • 不要把大型 Node.js 项目、Python 虚拟环境、Git 仓库长期放在 /mnt/c 下跑。

为什么?因为 /mnt/c 是 Windows 文件系统挂载进来的,权限、性能、换行符、符号链接行为都可能和 Linux 原生目录不一样。小文件临时处理问题不大,长期开发项目还是放在 WSL2 自己的 home 目录更稳。

十一、几个常用维护命令

查看已安装发行版:

wsl -l -v

关闭所有 WSL 环境:

wsl --shutdown

更新 WSL:

wsl --update

进入指定发行版:

wsl -d Ubuntu

Ubuntu 内更新软件:

sudo apt update && sudo apt upgrade -y

查看磁盘空间:

df -h

查看当前目录占用:

du -sh ./*

总结

Ubuntu WSL2 装完以后,真正要做的是把它整理成一个稳定的开发和学习环境。

先换好软件源或确认官方源能用,再安装 Python、Node.js、Git 这些基础工具;然后用 VS Code Remote WSL 连接进去写代码;需要跑服务时,再接入 Docker Desktop;遇到打不开页面、路径混乱、文件权限问题时,先从 WSL2 的网络和文件系统关系去排查。

对 Windows 10 用户来说,WSL2 的价值就在这里:你不用放弃 Windows 的桌面生态,又能拥有接近真实 Linux 的开发环境。把这篇里的基础配置做完,后面再学 Docker、服务器运维、AI 工具链和 Agent 项目,就会顺很多。

下期预告

下一篇继续看:Windows 10 WSL2 + Docker Desktop 入门:新手怎么跑第一个容器。

会重点讲:Docker Desktop 和 WSL2 是什么关系、怎么确认 Ubuntu 里能调用 docker、怎么跑 MySQL/Redis/Nginx、容器数据应该放哪里,以及新手最容易踩的端口和权限问题。


*本文由 数码罗记 · godsun.pro 整理。*

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注