现象

用户反馈服务器网络状态出现两种矛盾情况:一是通过命令行执行 ping 命令超时或显示“请求超时”,但使用 SSH、RDP 或 Web 端口却能正常连接;二是 ping 命令正常返回响应,但尝试通过 SSH、RDP 或浏览器访问特定服务端口时连接被拒绝或超时。

原因

这两种现象的核心差异在于 ICMP 协议(Ping 使用的协议)与 TCP/UDP 协议(远程和服务使用的协议)在防火墙或安全组中的策略不同。第一种情况通常是服务器或云安全组禁用了 ICMP 入站流量,但放行了远程端口;第二种情况通常是 ICMP 放行,但远程服务端口被防火墙拦截、服务未启动或绑定地址错误。

先自查(3 分钟)

首先确认本地网络正常,排除自身网络问题。其次,通过奇异互动会员中心的「云服务器详情页」使用「VNC 控制台」登录服务器,确认服务器处于开机状态且系统已正常加载。如果 VNC 能登录,说明底层网络和管理通道正常,问题集中在操作系统内部防火墙或服务配置。

解决步骤

若 Ping 不通但远程能连,说明 ICMP 被拦截。检查操作系统防火墙是否禁用 ICMP。在 Ubuntu 22.04/24.04 或 Debian 12 中,检查 UFW 状态:

sudo ufw status verbose

如果显示 ICMP 为 deny,执行以下命令允许 ICMP:

sudo ufw allow icmp

在 CentOS 7 或 Rocky Linux 9 中,使用 firewalld 检查并允许 ICMP:

sudo firewall-cmd --query-rich-rule='rule family="ipv4" protocol="icmp" accept' --permanent
sudo firewall-cmd --reload

在 Windows Server 2019/2022 中,打开「高级安全 Windows Defender 防火墙」,检查入站规则中是否有“文件和打印机共享(回显请求 - ICMPv4)”规则被禁用,启用该规则。

若 Ping 通但远程不上,重点检查远程端口是否开放及服务状态。以 SSH 为例,在 Linux 中检查 sshd 服务状态:

systemctl status sshd

检查防火墙是否放行 22 端口(Ubuntu/Debian):

sudo ufw status | grep 22

如果未放行,执行:

sudo ufw allow 22/tcp

在 Windows 中,检查 RDP 端口 3389 是否开放,并确保「远程桌面服务」正在运行。

注意:修改防火墙规则前,请确保保留当前可用的管理通道(如 VNC 或已开放的 SSH 端口),避免误操作导致完全失联。

验证

在本地终端重新执行 ping 命令,确认有响应。随后使用 ssh 或远程桌面工具连接服务器,确认能成功登录并执行命令。如果是 Web 服务,尝试通过浏览器访问对应端口,确认页面加载正常。

预防

建议定期备份防火墙配置。在云服务器安全组中,明确区分 ICMP 和 TCP/UDP 规则的优先级。避免使用“拒绝所有”这种宽泛规则,而是针对具体协议和端口进行精细化配置。对于生产环境,建议保留一个独立的备用管理端口或 IP,以防主管理通道被误封。

在奇异互动如何最快处理

登录奇异互动会员中心,进入「云服务器详情页」。首先使用「VNC 控制台」直接登录系统,这是最底层且不受网络防火墙影响的通道,可立即确认系统状态。若 VNC 无法登录,检查服务器是否处于关机状态,执行「开机/关机/重启」操作。若系统正常但端口不通,检查是否误操作了「更换 IP」,确保公网 IP 未变。若怀疑是云平台安全组问题或 VNC 无法登录,直接提交工单,在工单中关联具体产品,附上服务器 IP、无法连接的端口号、本地测试命令截图(如 ping 和 telnet 结果)以及 VNC 登录截图,以便工程师快速定位是底层网络还是系统配置问题。