VPS就是云厂商租给你的一台远程服务器,阿里云、Oracle、RackNerd这些家都有,做英文独立站的人拿它装环境、挂站点,机器本身不要多少钱,安全组这类基础功能还免费。它连不上的时候,按 ping、端口、云厂商安全组、系统防火墙、服务进程、控制台 VNC 这个顺序,从外到内一层一层查,每层都有通和不通的判断标准。阿里云和 Oracle 的规则页都提到同一件事,ping 不通大多是安全组入方向的 ICMP 协议没有放行,机器本身没坏。
对做出海站的人来说,机器连不上,最先丢的是时间。后台登不进去,文章改不了,邮件也收不到,盯着一行报错不知道是线路问题还是自己把规则改坏了。先按层查,几分钟能定位的事不用折腾一晚上。
- 六层顺序:ping、端口、云厂商安全组、系统防火墙、服务进程、控制台 VNC。
- ping 不通先查入方向 ICMP 规则,Oracle 的默认安全列表里就不含这条。
- 端口不通先查云厂商安全组,再查系统防火墙,两层都放行才算通。
- 安全组免费,规则变更 5 分钟后系统自动创建快照,改错能回滚。
- 能 ping 通却连不上,通常是安全组未放行端口,要接着按端口、安全组、系统防火墙往下查。
本文把六层排查每层的命令、判断标准和出问题怎么回查写清楚。手头还没有机器的,先看VPS怎么选,再照SSH 上手步骤把一次正常连接走通,有了对照,报错才好认。
本文目录
- vps连不上,为什么要按从外到内六层查
- 第一步 ping:vps ping不通先查 ICMP 规则,不是先重装
- 第二步端口:能 ping 通但 ssh连不上,先测端口通不通
- 第三步 SSH 服务本身:端口通了还连不上,查 sshd 在不在跑
- 第四步云厂商安全组:vps安全组设置要查全部关联的安全组
- 第五步系统防火墙:ufw、firewalld、iptables 三条命令查放行
- 第六步控制台 VNC:网络层全不通时,用厂商控制台进系统
- 排查时用得到的数字和限制:安全组免费,改错能回滚
- 这五种误判最容易把排查带偏,对应怎么回查
- 两类机器 ping 不通分别卡在哪
- AI 能帮哪几步排查,哪三步必须你自己在控制台点
- 常见问题
vps连不上,为什么要按从外到内六层查
六层分别是什么
ping 管网络层,看数据包能不能到机器边界。端口管传输层,看 22 这类端口有没有被放行。云厂商安全组在实例外面挡包,规则不对,包到不了系统。系统防火墙在系统里面挡包。服务进程决定有没有程序在端口上应答。控制台 VNC 绕开网络,从厂商后台直接进系统。
一次正常的 SSH 登录,要把前面每一层都走通。从SSH 连接到部署上线那篇把正常路径从头写了一遍,登录、装环境、传到上线,照着走一次,就知道自己卡在哪一环。
为什么不能跳步
安全组在网络层过滤数据包,白名单只控制是否放行连接,不影响数据包到达服务器网络边界。所以「安全组没放行」和「机器没起来」,在客户端看起来一样,都是没回应。ping 不通的时候,这两种原因都在候选里,只能一层层排除,不能靠猜。
跳步的代价很实在。直接重装系统,把系统防火墙规则、服务配置、装好的环境一起清掉,如果问题本来在安全组,重装完照样连不上。同一层里,先查规则,再动系统。
每层的判断标准
每一层的通和不通,现象不一样,对照着看比凭感觉快。
| 层级 | 通的表现 | 不通的表现 |
|---|---|---|
| ping | 有回包,显示往返毫秒数 | 一直没回包,或提示目标不可达 |
| 端口 | 显示 Connected 或连接建立 | Connection timed out 或 Connection reset by peer |
| 云厂商安全组 | 诊断工具显示放行 | 显示未放行,或允许规则被拒绝规则盖掉 |
| 系统防火墙 | 规则里有目标端口 | 规则里没有,或被 deny 挡住 |
| 服务进程 | 进程在跑,端口处于监听 | 进程没起,或监听端口不对 |
| 控制台 VNC | 能进系统看到界面和日志 | 进不去,机器本身没起来 |
表里最容易被忽略的是端口那行的两种报错,一个是被丢包,一个是被拒绝,往下的方向完全不同,下一节分开讲。
第一步 ping:vps ping不通先查 ICMP 规则,不是先重装
本地终端敲 ping,后面跟服务器 IP。有回包,说明数据包能到机器边界,网络这一层先放下。一直没回包,或者提示目标不可达,先分清是本机网络的问题还是对方规则的问题。换个目标 ping 一下,比如本地网关或别的站点,能通就说明自己这边没事。

ping 不通的一个直接原因是 ICMP 被挡在安全组外面。阿里云在安全组的使用说明里写:「无法 ping 通 ECS 实例,通常是因为安全组中入方向 ICMP 协议(ping 命令所使用的协议)的默认规则被移除。」Oracle 的规则页给了一样的结论,默认安全列表不含启用 ping 的规则。两家说法一致,ping 用的 ICMP 要单独放行。
怎么做。登录云厂商控制台,找到这台实例关联的安全组,在入方向加一条 ICMP 规则,授权对象填你自己的公网 IP。Oracle 那边默认安全列表里没有 ICMP,要加;它的规则页也建议用 NSG 而不是安全列表,因为 NSG 能把子网架构和应用的安全需求分开管,机器多了不用逐个改安全列表。
加完规则再 ping。还是不通,不要停在 ping 这一层,往下走端口。ping 只说明网络层,机器为了少挨扫描本来就把 ICMP 关着,ping 不通、SSH 照样能连的机器是有的。
第二步端口:能 ping 通但 ssh连不上,先测端口通不通
本地测端口,用 telnet 或 nc,两行命令就够。
telnet 你的服务器IP 22
nc -zv 你的服务器IP 22
连上会显示 Connected 或者 successful,端口通。连不上会给出两种不同的报错,这两种要分开看,处理方向完全相反。
Connection timed out 是数据包被丢掉了,没人回应,安全组或者系统防火墙把包扔掉就是这种表现。Connection reset by peer 是包到了机器被明确拒绝,通常是 22 端口上没有服务在听,或者服务配置里拒了这个来源。阿里云在排查说明里写:「安全组 Drop 规则导致连接超时(Connection timed out),需与 Connection reset by peer 区分。」
两种报错对应两条路。超时,回到安全组那一层,看 22 端口有没有放行、授权对象对不对。重置,往下走服务进程那一层,看 sshd 在不在跑。测端口这一步的价值就在这里,它把「网络没通」和「服务没起」分开了。
服务器侧也要看。能进系统的话执行 ss -lntp,看 22 端口是不是处于监听状态,监听的是 0.0.0.0 还是只绑了 127.0.0.1。只绑本地回环的,外面怎么连都连不上。
第三步 SSH 服务本身:端口通了还连不上,查 sshd 在不在跑
到这一步,网络和端口都通了,问题在系统里面。用云厂商控制台的 VNC 或者远程连接进系统,执行 systemctl status sshd 看服务状态,或者 ps -ef | grep sshd 看进程在不在。再看监听端口:ss -lntp | grep 22。
先用 VNC 进去确认 sshd 在跑,再确认监听端口是不是 22。改过默认端口的机器,安全组放行的是 22,sshd 听的是别的端口,两边对不上,表现就是连不上。
回查分两种。sshd 没跑,先起服务,systemctl start sshd,再看开机自启有没有开。sshd 在跑但端口不对,回安全组把实际端口加进去,客户端的连接命令也要跟着改,端口号写在 -p 后面。
还有一种情况是服务活着但连接被拒,多半是配置里限制了来源 IP 或登录用户。这类问题在 VNC 里看日志最快,tail 一下认证日志,被拒的原因会写清楚。
第四步云厂商安全组:vps安全组设置要查全部关联的安全组
安全组是实例外面的虚拟防火墙,规则按协议类型、端口范围、授权对象匹配流量,再按授权策略决定放行还是拒绝。一张弹性网卡最多可以关联 10 个安全组,规则优先级取 1 到 100,数值越小优先级越高,同优先级下拒绝规则优先生效。低优先级的允许规则,会被高优先级的拒绝规则盖掉。阿里云的原话是:「排查网络不通时,需检查所有关联的安全组。」

入口在 ECS 控制台。实例详情页切到安全组页签,点更换安全组,能看到这台实例现在关联了哪几个。逐个点进去,看入方向和出方向规则里,目标端口对应的授权对象和授权策略。只看一个安全组就下结论,是这一步最容易出的漏。
阿里云有个安全组规则诊断工具,一键检测 80、443、22、3389、8080 五个常用端口,也能单独测 ICMP。自定义检测填三项:源地址填本地或客户端的公网 IP,目的端口填服务用的端口号,协议类型选端口对应的协议。填完跑一次,比人工翻规则快。
规则多了会互相盖。健康检查能识别冗余规则:规则 A 的条件被规则 B 完全包含,且 A 的优先级不高于 B,A 就是冗余的,删掉不影响结果。清一遍冗余规则,下次排查少看一半。
出问题回查。诊断说放行但还不通,往下走系统防火墙;说不放行,改规则。改之前先克隆一个安全组,在测试环境验证过再动线上。IP 被封或者换了地址导致连不上的,Reserved IP 重新指派那篇给了重新指派的步骤。
第五步系统防火墙:ufw、firewalld、iptables 三条命令查放行
进系统之后先看本机防火墙。Ubuntu 系一般用 ufw,执行 ufw status 看状态和规则,要看带编号的列表用 ufw status numbered。放行某个端口用 ufw allow 80/tcp 这种格式,把端口和协议换成自己的。
CentOS 系用 firewalld。firewall-cmd --state 检查守护进程在不在跑,返回 running 就是活的。firewall-cmd --list-all 列出当前区域里已经放行的端口和服务。机器上 curl 访问不了外部地址的,执行 iptables -L OUTPUT 或 firewall-cmd --list-all,看 80 和 443 有没有被拦。
Oracle 的规则页专门提醒,要确认操作系统防火墙规则和安全规则保持一致。云厂商安全组放行了,系统防火墙没放行,包到了机器还是进不去。两层都放行,才算真的通。
两个容易踩的点。firewall-cmd 加 --permanent 的改动不会立即生效,要重启或重载服务才生效,只加永久配置不改运行时,看起来配了其实没生效。firewall-cmd --complete-reload 会丢掉状态信息,很可能把正在连着的会话断掉,只在防火墙出严重问题时才用。ufw 的 limit 规则在某个 IP 30 秒内发起 6 个或更多连接时会拒绝,正常登录被拦,先看是不是这条。
系统防火墙也放行了,还是连不上,回服务进程那一层。三层都通还连不上,问题多半在服务配置或者账号密码上,跟网络无关了。
第六步控制台 VNC:网络层全不通时,用厂商控制台进系统
前面五层都不通,或者根本进不去系统,用厂商控制台的 VNC。
这一步能确认三件事。机器是不是活着,能不能看到登录界面或者系统日志;服务是不是在跑,登录进去执行前面那几条命令;系统防火墙是不是把 22 或者别的端口误封了。VNC 能进、SSH 进不去,问题基本锁定在系统里面的防火墙或服务配置。
VNC 也有进不去的时候。进不去说明机器本身没起来,或者控制台侧的连接有问题,这时候要看实例状态、系统盘,以及最近有没有改过内核或者网络配置。
排查时用得到的数字和限制:安全组免费,改错能回滚
排查时用得到的几个数字,集中放一张表,看完再回去对前面的步骤。
| 项目 | 数值 | 对排查的意义 |
|---|---|---|
| 安全组费用 | 免费 | 改规则不花钱,别因为怕计费不敢动 |
| 规则变更后快照 | 5 分钟后创建,保留 1 到 30 天,默认 1 天 | 改错了能回滚 |
| 单张弹性网卡关联安全组 | 最多 10 个 | 排查时要逐个看,不能只看一个 |
| 规则优先级 | 1 到 100,数值越小越高,同优先级拒绝优先 | 允许规则会被拒绝规则盖掉 |
| 单次导入规则 | 不超过 200 条 | 批量恢复规则时的上限 |
| ufw 单条规则端口数 | 最多 15 个,端口范围算 2 个 | 一次放多个端口时别超 |
这张表里最该记住的是前两行,安全组不要钱,改错了有快照能回滚。
还有两个上限也用得上。一张网卡关联的所有安全组,规则总数含出入方向最多 1000 条;一个有状态的会话,最长保持 910 秒。规则堆到上限,先清冗余再谈排查。
这五种误判最容易把排查带偏,对应怎么回查
下面五条都是排查时真会走偏的地方,每条给一句结论,再给一句依据。
只查了一个安全组就下结论。实例可以关联多个安全组,低优先级的允许规则会被高优先级的拒绝规则覆盖,得逐个看。
把 Connection timed out 当成机器挂了。Drop 规则的表现就是超时,包被扔掉不会有回应,跟机器死机在客户端看起来没区别。
安全组放行就以为通了。系统防火墙是第二道,Oracle 的规则页明确要求两层规则保持一致,只放行一层等于没放行。
改完 --permanent 以为立即生效。这个参数只写永久配置,不重启不重载就不生效,运行时和永久配置是两套东西。
安全组全设成拒绝,忘了放行 100.64.0.0/10。阿里云内部服务要走这个地址段,拒绝了之后实例的监控和运维通道会断,加一条入方向允许规则补回来。规则收得太紧带来的麻烦,四步加固清单按顺序写了怎么收、收完怎么验,比一次全关再一条条放开稳。
两类机器 ping 不通分别卡在哪
Oracle 这类机器,ping 不通先看默认安全列表。默认列表里不含启用 ping 的规则,加一条 ICMP 入方向规则就能通。日常管规则用 NSG 比用安全列表省事,NSG 跟子网架构分开,换子网不用重配安全需求。默认规则不要随手删,删了可能中断整个 VCN 的连通性。
RackNerd 这类机器,先按六层顺序走一遍,重点看系统防火墙。有些系统镜像装完 ufw 或 firewalld 就是开着的,系统里还拦着 22,表现就是能 ping 通、SSH 连不上。
一个要提前看清的规则:阿里云 ECS 实例的 25 端口默认受限,要对外发邮件建议用 SSL 加密端口,通常是 465。端口受限是厂商侧的策略,改安全组也放不开。
机器实在救不回来,只能换一台的时候,先打包、后切DNS、再逐项验证那篇给了迁移顺序,比直接在新机器上重装再一点点配要快。
AI 能帮哪几步排查,哪三步必须你自己在控制台点
AI 在这件事里能帮的是整理和对照,不能替你在控制台点按钮。具体能做四步:
- 把 ping、端口、云厂商安全组、系统防火墙、服务进程、控制台 VNC 六层顺序整理成一张检查清单,按顺序逐项打勾。
- 根据你贴出来的 ufw status、firewall-cmd --list-all、iptables -L OUTPUT 输出,判断哪条规则可能拦截了目标端口。
- 把安全组诊断工具的自定义检测参数整理成填写模板,源地址、目的端口、协议类型三项各填什么写清楚。
- 把整轮排查整理成复盘记录,标清每层通还是不通,下次同类问题直接跳到出问题的那层。
下面三条提示词是本文给的示例,不是官方模板,可以直接复制,把括号里的内容换成自己的。
「我 VPS ping 不通,请按 ping、端口、云厂商安全组、系统防火墙、服务进程、控制台 VNC 六层顺序,列出每层要执行的命令和通/不通的判断标准,不要跳步。」
「这是我的 ufw status 输出:[粘贴]。目标端口是 22,请判断是否有规则拦截了 22 端口,并指出需要检查哪一条。」
「这是我的阿里云安全组规则诊断结果:[粘贴]。请按入方向 ICMP、22 端口、出方向规则三项,逐项说明是否放行,以及下一步该查哪一层。」
必须你自己动手的有三件:
- 在 ECS 控制台实例页点一键诊断,进安全组规则诊断,选实例 ID 和网卡,点开始检测,看结果里 ICMP 或目标端口放没放行。
- 在安全组详情页看入方向和出方向规则,确认目标端口对应的授权对象和授权策略。
- 在服务器上执行 ufw status 或 firewall-cmd --list-all,看系统防火墙放没放行目标端口。
猎者出海的AI Agent 在这一步能接的活,是把阿里云和 Oracle 的规则页整理成一张对照表,省掉来回翻页的时间,判断还得你自己下。
常见问题
vps ping不通怎么办?
先查安全组入方向的 ICMP 规则,没放行就加上,授权对象填自己的 IP。加完还不通,用安全组规则诊断工具跑一次,看是规则问题还是端口问题,再往下一层查。
能 ping 通但 ssh连不上是什么原因?
网络层通了,问题在端口或服务。先测 22 端口,Connection timed out 是包被丢了,查安全组和系统防火墙;Connection reset by peer 是包到了被拒,查 sshd 有没有在跑。
vps安全组设置要注意什么?
按白名单思路配,默认拒绝,只放行要用的端口和来源 IP。22 端口只给可信 IP,不要开 0.0.0.0/0。出方向也别全关,全关之后要放行 100.64.0.0/10,阿里云内部服务的访问才不断。
安全组和网络 ACL 有什么区别?
安全组作用在弹性网卡上,有状态,配入方向就够,回包自动放行。网络 ACL 作用在子网级,无状态,出入方向都要单独配。
安全组设了 IP 白名单,未授权 IP 的扫描还会有流量吗?
会。安全组在网络层过滤数据包,白名单只决定连接放不放行,不影响数据包到达服务器网络边界。
改完安全组规则多久生效、能回滚吗?
规则变更后系统在 5 分钟后创建快照,快照保留 1 到 30 天,默认 1 天,改错了照快照回滚。
机器能连上但页面打开慢,是另一条线,去建站后变慢的四层排查顺序那条线上查。
连不上这件事,慌是没用的,顺序有用。把这一轮查到的规则和命令记在自己的文档里,下次直接跳到出问题那层。

发表评论