上一篇 下一篇 分享链接 返回 返回顶部

服务器端口被系统拦截排查方法

发布人: 发布时间:2 天前 阅读量:6

现象描述

服务器端口被系统拦截通常表现为客户端无法建立TCP/UDP连接,而服务器端服务进程正常监听。常见原因包括防火墙规则、安全组策略、SELinux限制或系统资源耗尽。以下为系统性排查方法。

排查步骤

1. 检查本地防火墙

使用iptablesfirewalld查看当前规则是否丢弃了目标端口的流量。

  • 对于iptables:执行iptables -L -n -v,检查INPUT、FORWARD链中是否有DROP或REJECT规则。
  • 对于firewalld:执行firewall-cmd --list-all,确认服务或端口是否未在allow列表。
  • 临时放行测试:iptables -I INPUT -p tcp --dport -j ACCEPT,若连接成功,则为防火墙拦截。

2. 检查云安全组/网络ACL

若服务器部署在阿里云、腾讯云、AWS等平台,需登录控制台检查安全组入方向规则。确保目标端口已添加允许规则,且来源IP(或0.0.0.0/0)正确。同时检查网络ACL的入站/出站规则。

3. 检查SELinux或AppArmor

Linux系统安全模块可能阻止进程监听或接受连接。

  • 查看SELinux状态:getenforce,若为Enforcing,则可能触发avc拒绝。
  • 检查审计日志:ausearch -m avc -ts recentgrep "" /var/log/audit/audit.log
  • 临时关闭测试:setenforce 0,若问题解决,则需要调整SELinux策略或添加端口上下文。

4. 确认服务监听状态

使用ss -tlnpnetstat -tlnp查看服务进程确实在0.0.0.0:端口[::]:端口监听。若仅监听127.0.0.1,则外部无法访问,需修改服务配置绑定到公网IP或0.0.0.0。

5. 检查系统资源限制

系统文件描述符限制或端口范围限制也可能导致连接异常。

  • 查看当前限制:ulimit -n(文件描述符),确保足够。
  • 检查本地端口范围:cat /proc/sys/net/ipv4/ip_local_port_range,确保客户端源端口可用。
  • 查看连接数:ss -s,确认未达到上限。

总结

按照以上步骤逐层排查,从最可能的本地防火墙开始,再检查云安全组、SELinux、监听绑定和资源限制。每调整一项后立即用telnetnc -vz测试连通性,可快速定位拦截原因。

目录结构
全文
企业微信 企业微信
微信公众号 微信公众号
服务热线: 400-790-1688
电子邮箱: 3310008520@qq.com