iptables 是 Linux 系统中用于配置内核防火墙(netfilter)规则的一个命令行工具。以下是一些常用的 iptables 命令行参数及其用法:
iptables [选项] [链] [规则匹配条件] [目标动作]
-A:追加规则到链的末尾。-I:在指定位置插入规则。-D:删除规则。-R:替换规则。-L:列出所有链的规则。-n:以数字形式显示地址和端口。-v:详细模式,显示更多信息。-x:精确计数,显示精确的数据包和字节计数。-t:指定表(如 filter, nat, mangle, raw)。INPUT:处理进入本机的数据包。OUTPUT:处理从本机发出的数据包。FORWARD:处理经过本机转发的数据包。PREROUTING:目标地址转换(DNAT)之前处理数据包。POSTROUTING:源地址转换(SNAT)之后处理数据包。-p:指定协议(如 tcp, udp, icmp)。--dport:指定目标端口。--sport:指定源端口。-i:指定输入接口。-o:指定输出接口。-s:指定源IP地址。-d:指定目标IP地址。-m:指定匹配模块(如 conntrack, state, limit)。ACCEPT:允许数据包通过。DROP:丢弃数据包,不给出任何回应。REJECT:拒绝数据包,并给出错误响应。LOG:记录数据包信息到系统日志。允许所有来自特定IP的SSH连接
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
阻止所有ICMP请求
iptables -A INPUT -p icmp -j DROP
限制每分钟最多接收5个新的SSH连接
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 5/min -j ACCEPT
删除特定规则
iptables -D INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
列出所有INPUT链的规则
iptables -L INPUT -v -n
清空所有规则
iptables -F
iptables 规则可能会影响系统的网络连接,请谨慎操作。iptables-save 和 iptables-restore 命令可以备份和恢复整个 iptables 规则集。希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。