Linux 使用 iptables 进行端口流量统计与防火墙规则详解

在 Linux 服务器运维过程中,iptables 不仅可以作为防火墙使用,还可以用来 精确统计指定端口的网络流量,并完成访问控制、安全加固等操作。本文将详细介绍 iptables 的常见用法及相关运维技巧。


一、使用 iptables 精确统计指定端口流量

iptables 本身带有 数据包和字节计数功能,可用于统计端口的输入、输出流量。


1. 添加需要统计的端口规则

(1)统计输入流量(INPUT)

例如:统计 目标端口为 8080 的 TCP 输入流量:

iptables -A INPUT -p tcp –dport 8080

说明:

  • –dport:destination port,目标端口

  • 用于统计外部访问本机 8080 端口的流量


(2)统计输出流量(OUTPUT)

例如:统计 源端口为 8080 的 TCP 输出流量:

iptables -A OUTPUT -p tcp –sport 8080

说明:

  • –sport:source port,源端口

  • 用于统计本机 8080 端口向外发送的数据流量


2. 查看端口流量统计数据

iptables -L -v -n -x

参数说明:

  • -v:显示详细信息(包括数据包和字节数)

  • -n:不进行域名解析,提高显示速度

  • -x:显示精确字节数(不做单位转换)


3. 重置流量统计计数器

(1)重置 INPUT 链统计数据

iptables -Z INPUT

(2)重置 OUTPUT 链统计数据

iptables -Z OUTPUT

4. 删除流量统计规则

(1)删除 INPUT 端口规则

iptables -D INPUT -p tcp –dport 8080

(2)删除 OUTPUT 端口规则

iptables -D OUTPUT -p tcp –sport 8080

二、iptables 防火墙常用命令汇总

1. 查看当前 iptables 规则

iptables -L -n -v

2. 清空 iptables 配置(谨慎使用)

iptables -F # 清空所有规则 iptables -X # 删除用户自定义链 iptables -Z # 清空数据包计数器

⚠️ 注意:在远程服务器上执行 iptables -F 可能会导致 SSH 连接中断。


3. 常用防火墙规则示例

基本安全策略

iptables -P INPUT DROP iptables -A OUTPUT -j ACCEPT iptables -A INPUT -i lo -j ACCEPT

允许 Ping

iptables -A INPUT -p icmp -j ACCEPT

允许 SSH

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

允许 FTP

iptables -A INPUT -p tcp –dport 21 -j ACCEPT iptables -A INPUT -p tcp –dport 20 -j ACCEPT

被动模式端口范围:

iptables -A INPUT -p tcp –dport 20000:30000 -j ACCEPT

SMTP 本地限制示例

iptables -A INPUT -p tcp –dport 25 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp –dport 25 -j REJECT

允许 DNS

iptables -A INPUT -p tcp –dport 53 -j ACCEPT iptables -A INPUT -p udp –dport 53 -j ACCEPT

允许 HTTP / HTTPS

iptables -A INPUT -p tcp –dport 80 -j ACCEPT iptables -A INPUT -p tcp –dport 443 -j ACCEPT

允许已建立连接

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

拒绝未匹配的访问

iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT

三、屏蔽 IP 地址的方法

1. 屏蔽单个 IP

iptables -I INPUT -s 10.10.10.1 -j DROP

2. 屏蔽整个网段

iptables -I INPUT -s 123.45.6.0/24 -j DROP

四、删除与修改 iptables 规则

1. 删除规则(-D)

iptables -D INPUT -s 192.168.1.4 -j DROP

或按规则序号删除:

iptables -D INPUT 3

2. 修改规则(-R)

iptables -R INPUT 3 -j ACCEPT

五、iptables 规则持久化(重启生效)

保存规则

service iptables save

重启防火墙

service iptables restart

备份与还原规则

iptables-save > /etc/iptables iptables-restore < /etc/iptables

六、Linux 查看端口占用及解除占用方法

问题描述

有时程序关闭后,进程未完全退出,导致端口被占用。


1. 查看端口占用情况

netstat -tln | grep 80

2. 查看端口对应的进程

lsof -i :80

3. 结束占用端口的进程

kill -9 进程PID

七、总结

iptables 是 Linux 系统中 功能强大且灵活 的工具,不仅可以作为防火墙使用,还能完成:

  • 端口流量统计

  • 网络访问控制

  • 安全加固

  • 运维排障

熟练掌握 iptables,是 Linux 运维工程师的必备技能之一。

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/18586.html

(0)
admin的头像admin
上一篇 2025年12月29日
下一篇 2025年12月30日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

QQ
分享本页
返回顶部