常见拦截原因
服务器端口无法访问通常由系统层安全机制触发,主要包括防火墙规则、安全组策略、SELinux限制及端口监听故障。
防火墙规则
Linux系统默认使用iptables或firewalld,Windows使用Windows防火墙。若未放行目标端口,数据包将被丢弃。
安全组策略
云服务器(如阿里云、腾讯云)的安全组规则默认禁止入站流量,需在控制台添加允许规则。
SELinux限制
开启SELinux时,即便防火墙放行,进程若未获得正确上下文也可能被拦截。
端口监听异常
服务未运行、端口被占用或监听地址为127.0.0.1时,外部请求无法到达。
排查步骤
- 检查服务监听状态:使用
ss -tlnp或netstat -ano确认目标端口是否处于LISTEN状态,且监听地址为0.0.0.0或具体公网IP。 - 测试本地连通性:在服务器本地执行
telnet 127.0.0.1 端口或curl localhost:端口,判断服务本身是否正常。 - 检查防火墙规则:Linux下运行
iptables -L -n或firewall-cmd --list-all查看INPUT链;Windows使用netsh advfirewall show allprofiles。 - 验证安全组:登录云平台控制台,核对安全组入方向是否包含目标端口及来源IP(如0.0.0.0/0)。
- 临时关闭SELinux:执行
setenforce 0后再次测试,若恢复访问则需修改策略或关闭SELinux。
解决建议
根据排查结果对应处理:修改防火墙放行规则、调整安全组策略、配置SELinux布尔值或修复服务监听地址。完成操作后务必重新测试连通性,并确保生产环境保留最小必要权限。