XShell连接不了(ubunt14.04)虚拟机Could not connect to ‘192.168.1.105’ (port 22): Connection failed

本文记录了解决XShell无法连接Ubuntu 14.04虚拟机的问题,错误提示为'Could not connect to '192.168.1.105' (port 22): Connection failed'。经过检查,包括ping通主机与外网、验证sshd服务状态、防火墙设置以及排查IP冲突,最终发现是物理机IP与虚拟机IP相同导致的冲突。解决方法是修改物理机IP地址,确保与虚拟机IP不一致且能正常上网。

XShell连接不了(ubunt14.04)虚拟机Could not connect to ‘192.168.1.105’ (port 22): Connection failed.

(我搭建了两台虚拟机一台,控制节点的ip是192.168.1.105,计算节点是192.168.1.107)虚拟机搭建好以后,开始前几天xshell工具都能成功连接虚拟机的,但是过几天以后控制节点的虚拟机突然连接不上,当是计算节点还是能用xshell成功连接的。

之后我按照以下步骤排查了控制节点的虚拟机:
1.ping 我的物理主机的ip ,能ping通,和主机是连通的
2.ping 外网(比如百度)
ping -c 4 www.baidu.com
能ping通百度,说明访问外网没有问题。
3.查看虚拟机的sshd服务是否安装并查看运行状态
查看sshd是否安装,如果没有,可以安装我最后给出步骤安装ssh服务
sudo ps -e |grep ssh
查看运行状态
sudo apt-get install openssh-server
查看sshd的配置文件中,执行命令vi /etc/ssh/sshd_config打开ssh服务

在使用 Xshell 连接到指定 IP 地址和端口时出现 `Could not connect to 192.168.1.151 port 22: Connection failed` 错误,通常与网络配置、SSH 服务状态、防火墙规则或 IP 地址配置不当有关。以下是排查和解决方法: ### 1. 检查目标主机的 SSH 服务状态 确保目标主机(192.168.1.151)上的 SSH 服务正在运行。可以通过以下命令检查 SSH 服务的状态: ```bash systemctl status sshd ``` 如果服务未运行,可以使用以下命令启动 SSH 服务: ```bash systemctl start sshd ``` 确保 SSH 服务开机自启: ```bash systemctl enable sshd ``` ### 2. 检查网络连通性 使用 `ping` 命令测试本地与目标主机之间的网络连通性: ```bash ping 192.168.1.151 ``` 如果无法 ping 通目标主机,可能的原因包括: - 目标主机未开机或未连接到网络 - 网络接口配置错误或未启用 - 网络设备(如交换机、路由器)配置错误 - 防火墙阻止了 ICMP 请求 ### 3. 检查防火墙配置 确保目标主机的防火墙允许 SSH 端口(默认为 22)的入站连接。可以使用以下命令查看防火墙规则: ```bash firewall-cmd --list-all ``` 如果未开放 SSH 端口,可以使用以下命令开放: ```bash firewall-cmd --permanent --add-service=ssh firewall-cmd --reload ``` ### 4. 检查 IP 地址和子网掩码配置 确认目标主机的 IP 地址和子网掩码配置正确,确保本地主机与目标主机处于同一子网。例如,如果目标主机的 IP 为 `192.168.1.151`,子网掩码应为 `255.255.255.0`,即前三个字节相同,最后一个字节不同。 ### 5. 检查路由表 如果目标主机不在同一子网中,需要确保本地主机的路由表配置正确。可以使用以下命令查看路由表: ```bash ip route show ``` 确保有正确的路由条目指向目标网关。 ### 6. 检查 Xshell 配置 确认 Xshell 中的连接配置正确: - IP 地址:`192.168.1.151` - 端口号:`22` - 协议类型:`SSH` ### 7. 使用 `telnet` 测试端口连通性 可以使用 `telnet` 命令测试目标主机的 22 端口是否可达: ```bash telnet 192.168.1.151 22 ``` 如果连接失败,可能是防火墙或 SSH 服务的问题。 ### 8. 检查 SELinux 或 AppArmor 某些情况下,SELinux 或 AppArmor 可能会阻止 SSH 连接。可以暂时禁用 SELinux 进行测试: ```bash setenforce 0 ``` 如果禁用 SELinux 后连接成功,说明 SELinux 配置可能存在问题。 ### 9. 检查日志文件 查看目标主机的 SSH 服务日志文件,通常位于 `/var/log/secure` 或 `/var/log/auth.log`,以获取更多连接失败的详细信息: ```bash tail -f /var/log/secure ``` ### 10. 检查网络接口配置文件 确保目标主机的网络接口配置文件正确,例如 `/etc/sysconfig/network-scripts/ifcfg-ens33` 应包含以下内容: ```bash BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.1.151 PREFIX=24 GATEWAY=192.168.1.1 DNS1=114.114.114.114 ``` 配置完成后,重启网络服务: ```bash systemctl restart network ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值