ssh远程另一台主机的链接wsl
·
SSH / WSL 连接排障记录
目标
- 通过 SSH 或其他方式连接远程计算机。
- 连接成功后进入该计算机上的 WSL。
方案 A:先连远程 Windows,再进入 WSL(推荐)
- 远程 Windows 启用 OpenSSH Server。
- 放行 22 端口(防火墙)。
- 本机执行:
ssh <WINDOWS_USER>@<REMOTE_WINDOWS_IP> - 登录后执行:
wsl - 多发行版时可执行:
wsl -d <DISTRO_NAME>
优点:稳定、维护成本低。
方案 B:直接 SSH 到远程 WSL
- 在 WSL 中安装并启动 SSH 服务:
sudo apt update
sudo apt install -y openssh-server
sudo service ssh start - 如 22 端口冲突,改用 2222:
sudo sed -i ‘s/^#?Port .*/Port 2222/’ /etc/ssh/sshd_config
sudo sshd -t
sudo systemctl restart ssh - 验证监听:
ss -lntp | grep :2222 - 从本机连接:
ssh <WSL_USER>@<REMOTE_WINDOWS_IP> -p 2222
mirrored networking 配置(WSL2)
在 Windows 用户目录创建或编辑 .wslconfig:
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
[experimental]
hostAddressLoopback=true
生效方式:
- 在 Windows 执行:wsl --shutdown
- 重新启动 WSL
常见报错与处理
1) Address already in use
原因:端口被占用(常见为 Windows sshd 占用 22)。
处理:
- 保留 Windows 22,WSL 改 2222(推荐);或
- 停用 Windows sshd,让 WSL 使用 22。
2) Missing privilege separation directory: /run/sshd
处理:
- sudo mkdir -p /run/sshd
- sudo chmod 755 /run/sshd
- sudo sshd -t
3) Connection timed out / DestinationHostUnreachable
结论:多为网络层不可达(客户端隔离/VPN 策略/路由问题),不是 sshd 本身问题。
处理:
- 先做
Test-NetConnection双端测试。 - 检查 Windows 防火墙与 Hyper-V 规则。
- 必要时改用内网中继方案(如 Tailscale/ZeroTier)。
Tailscale 最短实施清单
- 两台 Windows 安装并登录同一 Tailscale 账号。
- 获取远程机 Tailscale IP(通常为 100.x.x.x)。
- 先测试远程 Windows 22 端口:
Test-NetConnection <TAILSCALE_IP> -Port 22 - 连接远程 Windows:
ssh <WINDOWS_USER>@<TAILSCALE_IP> - 登录后进入 WSL:
wsl - (可选)直连 WSL:
ssh <WSL_USER>@<TAILSCALE_IP> -p 2222
日常使用建议(教室 -> 寝室)
- 统一走 Tailscale + MagicDNS,避免记动态 IP。
- 配置 SSH Host 别名,减少手敲命令。
- 仅使用密钥登录,关闭密码登录。
- 远程主机关闭自动睡眠,确保网络稳定。
- 预留应急入口(远程桌面或其他远控)。
更多推荐

所有评论(0)