iptables命令参数非常多,记忆起来比较困难,以下是一些速记规则,从其它帖子上粘过来,备急需时查看。 iptables -t filter: 顾名思义,用于过滤的时候 nat: 顾名思义,用于做 NAT 的时候 -A、-I、-D、-R、-P、-F APPEND,追加一条规则 INSERT,插入一条规则 DELETE,删除一条规则 REPLACE,替换一条规则 POLICY,设置某个链的默认规则 FLUSH,清空规则 INPUT: 位于 filter 表,匹配目的 IP 是本机的数据包 FORWARD: 位于 filter 表,匹配穿过本机的数据包, PREROUTING: 位于 nat 表,用于修改目的地址(DNAT) POSTROUTING:位于 nat 表,用于修改源地址 (SNAT) -i、-o 流入、流出接口 -i ppp0 -s、-d 来源、目的地址 -s 192.168.0.1 匹配来自 192.168.0.1 的数据包 -s 192.168.1.0/24 匹配来自 192.168.1.0/24 网络的数据包 -p 协议类型 -p icmp --icmp-type 类型 -p tcp --sport、--dport 来源、目的端口 --sport 1000 匹配源端口是 1000 的数据包 --sport 1000:3000 匹配源端口是 1000-3000 的数据包(含1000、3000) --sport :3000 匹配源端口是 3000 以下的数据包(含 3000) --sport 1000: 匹配源端口是 1000 以上的数据包(含 1000) -m state --state NEW、RELATED、ESTABLISHED、INVALID mac --mac-source xx:xx:xx:xx:xx:xx limit --limit 50/s -m multiport --dports 21,22,25,80,110 -j ACCEPT DROP SNAT DNAT MASQUERADE 典型应用: iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 / -j DNAT --to 192.168.1.1 做dnat,内网提供web服务 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 / -j SNAT --to 1.1.1.1 做snat,为内网提供上网服务 -L [链名] LIST,列出规则 v:显示详细信息,包括每条规则的匹配包数量和匹配字节数 x:在 v 的基础上,禁止自动单位换算(K、M) n:只显示 IP 地址和端口号码,不显示域名和服务名称
所有链名必须大写 INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING 所有表名必须小写 filter/nat/mangle 所有动作必须大写 ACCEPT/DROP/SNAT/DNAT/MASQUERADE 所有匹配必须小写 -s/-d/-m <module_name>/-p/--sport/--dport
|