无法从Windows 11通过SSH连接到Ubuntu 20.04虚拟机
SSH连接Ubuntu虚拟机超时排查思路
以下是针对ssh: connect to host 10.0.2.15 port 22: Connection timed out错误的排查方向和操作步骤:
检查虚拟机网络模式
默认NAT模式下,虚拟机的10.0.2.x地址属于内部网段,Windows主机无法直接访问:- 若使用桥接模式:将虚拟机网络适配器设置为「桥接模式」,并确认Ubuntu获取的IP与Windows主机处于同一网段(如
192.168.x.x)。 - 若坚持使用NAT模式:在虚拟机软件(如VirtualBox、VMware)的NAT设置中配置端口转发,将主机的某个端口(如2222)映射到虚拟机的22端口,之后通过
ssh username@主机IP -p 2222发起连接。
- 若使用桥接模式:将虚拟机网络适配器设置为「桥接模式」,并确认Ubuntu获取的IP与Windows主机处于同一网段(如
确认虚拟机实际IP地址
DHCP可能已为Ubuntu分配新IP,导致10.0.2.15失效。在Ubuntu终端执行ip a,查看网卡对应的inet地址,确认是否与你使用的目标IP一致。验证主机与虚拟机的基础连通性
在Windows命令提示符中执行ping 10.0.2.15:- 若ping不通:说明网络层面未连通,优先排查虚拟机网络模式、主机防火墙是否拦截ICMP请求,或Ubuntu的DHCP/网关配置是否正常。
- 若ping通但SSH超时:再聚焦SSH服务和端口拦截问题。
检查Windows主机防火墙/安全软件
Windows自带防火墙或第三方杀毒软件可能拦截了SSH出站请求:- 临时关闭Windows防火墙测试连接;
- 或在Windows防火墙中添加「允许SSH(22端口)出站」的规则。
确认SSH服务监听状态
确保sshd服务监听所有网卡的22端口:
在Ubuntu终端执行ss -tulpn | grep sshd,查看输出中是否包含0.0.0.0:22或:::22。- 若仅显示
127.0.0.1:22:说明服务仅允许本地连接,需编辑/etc/ssh/sshd_config,将ListenAddress设置为0.0.0.0,再执行sudo systemctl restart sshd重启服务。
- 若仅显示
排查虚拟机网络配置
若使用桥接模式,确认Ubuntu的IP、网关配置正常:
执行nmcli connection show查看当前网络连接的详细信息,确保IP地址、子网掩码、网关与Windows主机处于同一网络段。
内容的提问来源于stack exchange,提问作者Dash
相关产品推荐
相关产品推荐

