最近折腾 WSL 时,我把系统里的默认发行版从 Ubuntu 换成了 Alpine,专门拿来当 SSH 门户用。所谓“门户”说白了就是一台轻量入口机:我从 Windows 桌面能连过去,在外面时也能通过隧道回来,再从这个入口进到家里内网的其他设备、开发环境,以及那些只有 Linux 环境才能跑顺手的工具。Alpine 的好处是干净、启动快、内存占用低,跑在 WSL 里几乎没有存在感,但该干的活一样不少。
这篇文章我就把整套配置过程完整写出来,从 WSL 里装 Alpine,到 sshd 服务端配置,再到 Windows 端口转发、密钥登录、反向隧道这些实际用得上的玩法,最后附上我在真实环境里踩过的坑和排查思路。不管你是想给 Windows 加一个远程入口,还是纯粹想找一个低资源消耗的 Linux 跳板机,这套方案都可以直接照抄。
1. 为什么我会在 WSL 里用 Alpine 搭 SSH 门户
1.1 这个入口到底解决什么问题
WSL 本身已经提供了非常方便的 wsl.exe 命令行入口,但它的使用场景有局限:你人得坐在 Windows 前,或者先远程到 Windows 桌面,再打开终端。而 SSH 门户解决的是另一类需求,让 Linux 风格的远程访问方式直接对接到 Windows 环境。
具体来说,我把 WSL 里的 Alpine 当成一台独立的 Linux 服务器来跑,Windows 只负责供电和网络。连上这个 SSH 端口之后,我可以做这几件事:
- 从手机、笔记本、公司电脑直接 ssh 到家里的 Windows 机器,进入 WSL 环境。
- 把 WSL 当跳板,继续 ssh 到家里内网的其他机器,比如 NAS、树莓派、另一台 Linux 台式机。
- 在远程终端里跑
apk安装工具,或者执行node、git、binwalk之类只有 Linux 环境才顺手的软件。 - 配合 VSCode Remote-SSH,让编辑器把 WSL 当成远程主机连接,代码在 WSL 里跑,界面在本地显示。
本质上就是把 Windows 这台机器,通过 WSL 这个轻量容器,对外暴露成一个标准的 SSH 服务端。你不需要记住 WSL 那一套 wsl -d 的命令,所有客户端都走同一个协议。
1.2 Alpine 对比 Ubuntu 的取舍
很多人在 WSL 里默认装 Ubuntu,这个选择没有错,但如果你只是想要一个稳定的 SSH 入口,Ubuntu 体量就偏大了。我实际对比下来,用 Alpine 有几点很直观的优势:
| 对比项 | Alpine | Ubuntu |
|---|---|---|
| minirootfs 体积 | 3MB 左右 | 几百 MB 起步 |
| 空闲内存占用 | 通常在 30~50MB | 经常 100MB 以上 |
| 默认 init 方式 | OpenRC,干净直接 | systemd,功能全但重 |
| 包管理器 | apk,依赖解析快 | apt,生态更大 |
| sshd 配置复杂度 | 低,装完就能跑 | 低,但默认带了一堆服务 |
当然也有代价。Alpine 默认使用 musl libc,和 Ubuntu 的 glibc 有差异,某些闭源编译好的二进制在 Alpine 上会报找不到库。但这个缺点对我的场景影响很小,因为 SSH 门户本身只需要 openssh、bash、sudo、autossh 这些轻量工具,它们全部能用 apk 原生安装,不存在兼容问题。如果你要在这个环境里跑大量 glibc 相关应用,那不如换回 Ubuntu;如果只是要一个安静、省资源的入口机,Alpine 非常合适。
1.3 这篇文章适合谁看
写这篇文章之前,我搜索了一圈相关关键词,发现很多人卡在几个点上:WSL 装不上、ssh 连不上、不知道密钥怎么配、搞不清 root 能不能登录、想把 WSL 从 C 盘迁到别的盘。这篇文章会把这些问题都覆盖到。
建议至少有一点点 Linux 命令行基础再操作,哪怕只会 cd 和 ls 都行。命令我会完整给出来,复制粘贴就能跑。Windows 端只需要管理员权限的 PowerShell 或 CMD,不需要额外安装客户端工具。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 先把 Alpine 这个底子铺好
2.1 从 WSL 商店安装还是手动导入
现在比较新的 Windows 11 里,Alpine 已经进了 WSL 官方发行版列表,可以直接这样装:
bash复制# 查看线上可安装的发行版
wsl --list --online
# 直接安装 Alpine
wsl --install -d Alpine
这条命令会自动下载、导入并设置默认用户。如果你在 Windows 10 较老版本上,或者遇到 wsl --install 太慢的情况,就别死磕商店了,改用手动导入 minirootfs 的方式:
bash复制# 1. 到 Alpine 官方 release 目录下载 minirootfs
# 比如 https://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/
# 找到 alpine-minirootfs-3.20.3-x86_64.tar.gz
# 2. 在 PowerShell 里创建目标目录并导入
mkdir D:\WSL\Alpine
wsl --import Alpine D:\WSL\Alpine .\alpine-minirootfs-3.20.3-x86_64.tar.gz --version 2
手动导入这种方式我强烈推荐,理由有两个:第一,不依赖微软商店的网络状况;第二,你可以直接指定安装到 D 盘或别的数据盘,从源头上避免后面 C 盘膨胀再迁盘的麻烦。
装好之后进入系统:
bash复制wsl -d Alpine
如果一切正常
