海外三网直连 vps 安全组规则配置错误导致端口不通怎么查

文章导读
海外 VPS 端口不通优先检查云服务商控制台的安全组 inbound 规则,其次排查系统内部防火墙配置。适用场景为云服务器外部无法访问特定业务端口,风险边界在于避免向公网开放数据库等敏感管理端口。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
A A

海外 VPS 端口不通优先检查云服务商控制台的安全组 inbound 规则,其次排查系统内部防火墙配置。适用场景为云服务器外部无法访问特定业务端口,风险边界在于避免向公网开放数据库等敏感管理端口。

先说结论:大多数端口不通问题源于安全组未放行或系统防火墙拦截,需按外部规则到内部服务的顺序排查。

  • 先确认:云控制台安全组是否放行对应协议和端口
  • 先处理:检查系统内部 iptables 或 firewalld 状态
  • 再验证:使用 telnet 或 nc 命令测试外部连通性

命令速用版

在本地终端执行以下命令测试端口连通性,替换 IP 和端口为实际值。

telnet <VPS_IP> <PORT>

若 telnet 不可用,使用 nc 命令:

nc -zv <VPS_IP> <PORT>

在 VPS 内部检查监听状态:

ss -tlnp | grep <PORT>

为什么会这样

数据包进入 VPS 需要经过云服务商的虚拟防火墙(安全组)和操作系统内部的防火墙两道关卡。

安全组规则配置错误会导致数据包在到达实例之前就被丢弃,系统内部防火墙则会在数据包到达网卡后再次过滤。此外,服务进程未监听公网地址(0.0.0.0)也会导致端口无法从外部访问。

分步处理

步骤 1:检查云控制台安全组

登录云服务商控制台,找到实例关联的安全组。确认入方向(Inbound)规则中是否存在允许 TCP 或 UDP 协议、端口范围覆盖业务端口、授权对象为 0.0.0.0/0 或特定 IP 的规则。

步骤 2:检查系统内部防火墙

登录 VPS 内部,检查 firewalld 或 iptables 状态。CentOS 7+ 常用命令:

systemctl status firewalld

若开启,确认是否放行端口:

firewall-cmd `--list-ports`

步骤 3:检查服务监听地址

海外三网直连 vps 安全组规则配置错误导致端口不通怎么查

确认服务进程监听的是 0.0.0.0 而非 127.0.0.1。使用 ss 命令查看:

ss -tlnp | grep <PORT>

若显示 127.0.0.1:PORT,需修改服务配置文件绑定公网 IP 或所有接口。

怎么验证是否生效

在本地电脑或第三方服务器使用 telnet 命令测试,连接成功即表示端口开放。

也可使用在线端口扫描工具输入 VPS IP 和端口,若显示 Open 则规则生效。在 VPS 内部使用 tcpdump 抓包可确认数据包是否到达网卡:

tcpdump -i any port <PORT>

常见坑

1. 协议选错:安全组放了 TCP,但业务使用 UDP,导致不通。

2. CIDR 格式错误:授权对象填写 IP 而非 CIDR 格式(如缺少/32 或/0)。

3. ICMP 独立:安全组放行端口不代表能 Ping 通,ICMP 协议需单独配置。

4. 云服务商特有限制:部分服务商默认禁止特定高危端口(如 25 smtp),需申请解封。

常见问题

安全组规则修改后需要重启服务器吗?

不需要,安全组规则通常实时生效,修改后直接测试即可。

为什么内部能 telnet 通但外部不通?

这是典型的安全组拦截现象,内部访问走本地回环或内网,外部访问经过云防火墙。

放行 0.0.0.0/0 是否安全?

对于 Web 服务端口(80/443)通常必要,对于数据库或管理端口建议限制特定源 IP。