首页主机资讯centos iptables故障排查

centos iptables故障排查

时间2026-01-21 05:01:04发布访客分类主机资讯浏览715
导读:CentOS iptables 故障排查手册 一 快速定位流程 确认管理栈:在 CentOS 7+ 上,系统可能由 firewalld 管理防火墙,先查看状态并统一管控口径 命令:systemctl status firewalld;如需...

CentOS iptables 故障排查手册

一 快速定位流程

  • 确认管理栈:在 CentOS 7+ 上,系统可能由 firewalld 管理防火墙,先查看状态并统一管控口径
    命令:systemctl status firewalld;如需改用 iptables,先停 firewalld 并启动 iptables 服务。
  • 查看规则与计数:使用带计数的列表,快速判断是否命中与在哪条规则被丢弃
    命令:iptables -L -n -v;必要时查看 nat/mangle 表:iptables -t nat -S。
  • 服务与持久化:确认服务运行与规则持久化文件
    命令:systemctl status iptables;RHEL/CentOS 6 可用 service iptables status;规则保存:service iptables save(写入 /etc/sysconfig/iptables)。
  • 连通性验证:分层测试(本机回环、主机端口、跨机访问),区分是服务未起、被本机防火墙拦截,还是网络路径问题
    命令:ss -ltnp | grep < 端口> ;curl -Iv http://127.0.0.1:< 端口> ;nc -vz < 目标IP> < 端口> ;ping / dig/nslookup;必要时 ip route 查路由。
  • 外部与平台层:若部署在云上,核对 安全组/NACL 是否放行;若使用 Docker,留意其会自动改写 iptables 规则。

二 常见症状与对应处理

  • 已放行端口仍无法访问
    1. 防火墙未生效:firewalld 场景执行 firewall-cmd --reload;iptables 场景确认规则顺序与接口/来源匹配。
    2. 服务仅监听 127.0.0.1:ss -ltnp 应看到 0.0.0.0:< 端口> ;修改服务配置监听地址。
    3. SELinux 限制:sestatus 查看;临时 setenforce 0 验证,若是端口类型问题用 semanage port 放行对应端口类型(如 http_port_t)。
    4. 云平台安全组未放行:在控制台为实例/负载均衡添加入站规则。
    5. 规则被前置 DROP/REJECT:iptables -L -n -v 检查命中计数与顺序。
  • “iptables: unrecognized service”
    常见于未安装管理脚本或运行环境不一致;安装 iptables-services(RHEL/CentOS 6/7 常见做法),或改用 nftables/直接操作内核表;确认 PATH 与运行级别。
  • 服务启动失败或规则不持久
    RHEL/CentOS 6.6+ 最小安装默认无 /etc/sysconfig/iptables,会导致启动失败;执行 iptables -L 触发模块加载,再 service iptables save 生成配置;必要时 chkconfig iptables on 设置开机启用。
  • Docker 相关
    Docker 启动/容器访问主机失败,常因 iptables 规则冲突或缺失;排查 docker0/FORWARD/INPUT 相关链,必要时显式允许 docker0 流量;重启 docker 后复核规则;遇到 “iptables failed” 检查内核模块(如 nf_tables/iptables)与权限。

三 关键命令清单

  • 查看与诊断
    • iptables -L -n -v --line-numbers(查看规则与命中计数)
    • iptables -t nat -S(查看 nat 规则)
    • iptables-save(导出当前规则,便于备份/比对)
    • ss -ltnp | grep < 端口> ;netstat -tulnp | grep < 端口> (确认监听地址与进程)
    • curl -Iv http://127.0.0.1:< 端口> ;nc -vz < 端口> (连通性测试)
    • ip route;ping;dig/nslookup(路由与 DNS 核验)
  • 规则维护
    • iptables -A/-I/-D/-R < 链> … -j ACCEPT/DROP/REJECT(增删改查)
    • iptables -F/-Z(清空/清零计数;谨慎操作)
    • 持久化:service iptables save(写入 /etc/sysconfig/iptables
  • firewalld 协同(若启用)
    • firewall-cmd --list-all;firewall-cmd --reload

四 最小可用规则模板与注意事项

  • 本机仅暴露 22/TCP(示例,按需扩展)
    1. 放行回环与已建立连接
      • iptables -I INPUT -i lo -j ACCEPT
      • iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    2. 放行 SSH
      • iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    3. 其余默认丢弃(谨慎:确保当前 SSH 会话不中断,建议先开新终端验证)
      • iptables -P INPUT DROP
    4. 保存并核验
      • service iptables save
      • iptables -L -n -v(确认命中与顺序)
  • 注意事项
    • 规则顺序决定命中;常用做法是先放行 lo/ESTABLISHED,再放行业务端口,最后设置默认策略。
    • 修改前先备份:iptables-save > iptables-$(date +%F).bak。
    • firewalld 环境混用时,避免并行修改造成规则互相覆盖;统一到一种管理方式或在变更后执行重载。
    • 云上环境务必同步检查 安全组/网络ACL 与主机防火墙策略的一致性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos iptables故障排查
本文地址: https://pptw.com/jishu/788131.html
如何使用iptables进行NAT centos如何更新iptables

游客 回复需填写必要信息