Redock 直接连接 WSL2 内的 Linux 环境。本指南中的 SSH 服务、用户名、密码、密钥、路径和登录 Shell 都属于 WSL,而不是 Windows。
局域网连接推荐使用 Windows 11 22H2 或更高版本,并开启 WSL 镜像网络。Windows 10 和 WSL NAT 需要额外的端口转发,本指南不展开说明。
1. 安装 WSL2
以管理员身份打开 PowerShell:
wsl --install
按提示重启 Windows,打开安装好的 Linux 发行版,并创建 Linux 用户名和密码。确认发行版使用 WSL 2:
wsl --list --verbose
如果 VERSION 显示为 1,请运行 wsl --set-version <DistroName> 2。
2. 在 WSL 内安装 SSH
在 WSL 的 Ubuntu 或 Debian 中执行:
sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager
在 WSL 内验证 Linux SSH 会话:
ssh localhost
其他发行版的包管理器或服务名称可能不同。
3. 允许从局域网连接 WSL
在 PowerShell 中打开 %UserProfile%\.wslconfig:
notepad $env:USERPROFILE\.wslconfig
添加:
[wsl2]
networkingMode=mirrored
然后以管理员身份运行 PowerShell:
wsl --shutdown
New-NetFirewallHyperVRule -Name 'RedockSSH' -DisplayName 'Redock SSH' -Direction Inbound -VMCreatorId '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -Protocol TCP -LocalPorts 22
执行 wsl --shutdown 后重新打开 Linux 发行版。Redock 连接时 WSL 必须处于运行状态;systemd 服务不会让已经停止的 WSL 实例保持运行。
4. 在 Redock 中添加 Host
在 PowerShell 中运行 ipconfig,使用当前 Wi-Fi 或以太网适配器的 IPv4 地址;在 WSL 内运行 whoami 获取 Linux 用户名。
Host: <Windows 局域网 IPv4 地址>
Port: 22
Username: <WSL Linux 用户名>
Connection Mode: SSH
Auth: WSL 密码或 SSH Key
使用密钥认证时,将公钥添加到 WSL 内的 ~/.ssh/authorized_keys。详细步骤见 SSH 认证。
常见问题
- Connection timed out: 打开 WSL 发行版,检查
wsl --list --running,并确认 Hyper-V 防火墙规则和局域网地址。 - Connection refused: 在 WSL 内运行
sudo systemctl status ssh和sudo ss -lntp | grep ':22'。 - Authentication failed: 使用 WSL Linux 用户名及其密码或
authorized_keys,不要使用 Windows 凭据。 - SFTP 正常但终端关闭: 运行
getent passwd $USER,确认账号拥有有效的登录 Shell,并检查ssh localhost能否保持连接。 - 端口 22 已被占用: 在 WSL 内配置其他 SSH 端口,并在防火墙规则和 Redock Host 中使用相同端口。
日常远程访问建议使用 SSH Key 和 Tailscale 等私有网络。