xshell连接不上——Linux could not connect to 'ip' (port 22): Connection failed.

本文介绍了使用SSH协议进行远程会话时遇到的连接失败问题,并详细解释了如何通过更改虚拟机网络模式从NAT到桥接来解决该问题。此外,还对比了不同网络模式下虚拟机的网络特性。
部署运行你感兴趣的模型镜像

今天学习使用ssh协议,实现操作系统的远程会话。
在java代码中连接操作系统时,发现连接总是失败,干脆使用xshell来直接连接,发现还是失败,错误提示:Could notconnect to ‘222.20.74.61’ (port 22): Connection failed.

在网上查了很久的资料,如在Linux安装openssh-server,开启ssh服务,开启关闭防火墙,开启22号端口等。

最后发现,自己是用主机和虚拟机上的Ubuntu连接,而我的Ubuntu系统选择的网络是NAT模式,应改为桥接模式
End…

另,
在NAT模式下,虚拟机可以访问主机所在局域网内所有同网段的电脑,但除了主机外,局域网内的其它电脑都无法访问虚拟机。
桥接模式下,虚拟机和主机就好比插在同一台交换机上的两台电脑。如果主机连接在开启了DHCP服务的(无线)路由器上,这时虚拟机能够自动获得IP地址。如果局域网内没有提供DHCP服务的设备,那就需要手动配置 IP地址,只需仿照主机网卡的IP地址,设置一个同网段的不同的IP地址即可。只要IP地址在同一网段内,那么局域网内的所有同网段的电脑都能互访。这样虚拟机和主机一样能够上网了。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### Xshell 连接失败到 IP 172.21.172.212 的端口 22 故障排查 当尝试通过 Xshell 使用 SSH 协议连接目标 Linux 虚拟机时,如果收到 `Connection failed` 错误消息,则可能是由于网络配置、SSH 配置或其他环境因素引起的。以下是可能的原因及其解决方案: #### 1. **检查目标机器的防火墙设置** 如果目标机器启用了防火墙并阻止了端口 22 上的流量,则可能导致此问题。可以通过以下命令临时关闭防火墙来验证是否存在此类阻塞: ```bash sudo systemctl stop firewalld ``` 或者允许特定端口上的流量: ```bash sudo firewall-cmd --zone=public --add-port=22/tcp --permanent sudo firewall-cmd --reload ``` 此外,在某些情况下,SELinux 可能会干扰 SSH 流量。可以暂时将其设为宽容模式以排除其影响: ```bash setenforce 0 ``` 若上述操作有效,请记得重新启用防火墙并将规则保存。 #### 2. **确认 SSH 服务状态** 确保目标机器上的 SSH 服务正在运行且监听指定端口(默认为 22)。可执行以下命令检查 SSH 服务的状态: ```bash sudo systemctl status sshd ``` 如果未启动,可通过以下命令启动它: ```bash sudo systemctl start sshd ``` 同时,确保 `/etc/ssh/sshd_config` 文件中的配置正确无误,特别是以下参数: - `Port 22`: 定义使用的端口号。 - `PermitRootLogin yes/no`: 是否允许 root 用户登录。 - `PasswordAuthentication yes/no`: 密码认证是否开启。 修改完成后需重启 SSH 服务生效: ```bash sudo systemctl restart sshd ``` #### 3. **IP 地址冲突或子网匹配** 如引用中提到的情况[^3],可能存在虚拟机与宿主机之间的子网地址一致的问题。建议核实虚拟机和物理主机所在的子网范围,并调整 VMWare 中的网络适配器设置以保持一致性。例如,将 VMNet8 子网更改为与当前网络相适应的值[^4]。 #### 4. **Ping 和路由可达性测试** 尽管能够成功 Ping 到目标 IP 地址并完全代表 TCP 层面通信正常,但仍是一个初步判断依据。进一步利用 telnet 工具检测端口连通情况: ```bash telnet 172.21.172.212 22 ``` 如果无法建立连接,则表明存在其他潜在障碍。 #### 5. **客户端侧配置校验** 对于 Xshell 自身而言,也需要审查其内部设定是否有异常之处。比如用户名拼写错误、密钥文件路径对等问题均会引起类似的错误提示。另外,部分版本可能存在兼容性缺陷,更新至最新版或许有助于缓解这些状况[^5]。 综上所述,针对该类问题应从多个角度入手分析原因所在,并逐一采取措施加以修复。 ```python import socket def test_port(ip, port): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = sock.connect_ex((ip, int(port))) if result == 0: print(f"Port {port} is open.") else: print(f"Port {port} is closed.") test_port('172.21.172.212', '22') ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值