配置windows端口转发完成远程ssh访问WSL
配置好WSL的SSH后配置Windows端口转发
配置Windows防火墙
为了允许SSH连接,需要在Windows防火墙中添加一个入站规则,允许通过22端口的连接:
-
打开“Windows安全中心”: 按
Win + I
键,进入“更新和安全”,然后选择“Windows安全中心”。 -
点击“防火墙和网络保护”: 在“防火墙和网络保护”界 面中选择“高级设置”。
-
添加入站规则:
- 在左侧选择“入站规则”,然后在右侧选择“新规则”。
- 选择“端口”,点击“下一步”。
- 选择“TCP”,并在特定本地端口中输入“22”,然后点击“下一步”。
- 选择“允许连接”,点击“下一步”。
- 选择适用的网络类型(通常选择全部),点击“下一步”。
- 给规则命名,例如“SSH”,然后点击“完成”。
配置端口转发
由于WSL2中的IP地址是动态的且可能会改变,建议通过Windows的IP地址进行连接,并将流量转发到WSL2中的SSH服务。可以使用 netsh
命令进行端口转发:
-
打开命令提示符(以管理员身份运行): 按
Win + R
键,输入cmd
,然后按Ctrl + Shift + Enter
以管理员身份运行。 -
运行以下命令进行端口转发:
netsh interface portproxy add v4tov4 listenport=22 listenaddress=<Windows_IP> connectport=22 connectaddress=<WSL2_IP>
将
<Windows_IP>
替换为Windows主机的IP地址(这里建议填写0.0.0.0
,这样即使ip切换端口转发规则也是有效的),将<WSL2_IP>
替换为WSL2的IP地址(例如172.26.209.126
)。
从其他电脑进行SSH连接
在其他电脑上使用SSH客户端连接到Windows的IP地址:
- 打开终端或SSH客户端,运行以下命令:
例如:
ssh <your_username>@<Windows_IP>
输入WSL2中配置的用户密码后即可登录。ssh user@172.20.10.4
常见问题排查
-
无法连接到SSH服务器:
- 确认WSL2和Windows的防火墙规则正确配置。
- 确认端口转发配置正确,并且WSL2实例的IP地址没有变化。
- 检查SSH服务器状态:
sudo service ssh status
-
SSH服务未启动:
- 确认SSH服务已配置为开机启动。
- 手动启动SSH服务:
sudo service ssh start
-
权限问题:
- 确认SSH配置文件的权限正确:
sudo chmod 600 /etc/ssh/sshd_config
- 确认
~/.ssh
目录和文件的权限正确。
- 确认SSH配置文件的权限正确:
通过上述步骤,你应该能够成功将WSL2配置为服务器并允许SSH访问。如果在过程中遇到任何问题,请检查配置文件和网络设置,确保每一步都正确无误。