无法通过 ssh 连接到 WSL2

无法通过 ssh 连接到 WSL2

我曾经在 MacBook 上成功连接到 WSL2(win11)。然后我重启 windows 机器来测试 ssh 连接。但这次失败了,报告 kex_exchange_identification: read: Connection reset by peer

我已经添加了sshd: ALLWSL 并重新启动了 ssh 服务。但我仍然无法连接到 WSL。我该怎么办?

答案1

重新启动时,WSL 会选择不同的 IP,从而使您的端口转发设置无效,因为数据包将被转发到系统上不再存在的旧 IP 地址。您需要使用某种形式的桥接或静态 IP。另外编写设置脚本也许也有帮助。

Hanselman 谈到了这一点更详细地如下:

将端口转发到 WSL2

现在,从管理员 Windows 提示符(可以是 cmd.exe 或 powershell.exe,没关系)使用网络 shell“netsh”添加 portproxy 规则。再次将 connectaddress 更改为您的 WSL2 IP 地址,这是您机器的内部地址。

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=<internal-IP> connectport=2222

作为您的 WSL2 IP 地址下次启动时发生变化,端口转发停止工作。

希望对您有帮助。祝您好运。

相关内容