iptables 基础介绍

一、查看现有的规则

iptables -L -v -n #同理iptables -t nat /mangle/raw/filter -L -v -n

二、基本语法

iptables [选项] <链> <操作> [匹配条件] [目标动作]

常用选项
  • -A:表示追加规则到指定链(Append)。
  • -I:表示插入规则到指定链(Insert)。
  • -D:表示删除指定链中的规则(Delete)。
  • -L:表示列出指定链的规则(List)。
  • -F:表示清空指定链的规则(Flush)。
  • -t:指定表(Table),默认是filter表。常见的表包括filternatmangleraw等。
常见链
  • INPUT:处理进入本地的流量。
  • OUTPUT:处理从本地发出的流量。
  • FORWARD:处理经过本地的流量(如路由转发的流量)。
  • PREROUTING:在路由决策前处理到达的数据包(用于NAT)。
  • POSTROUTING:在路由决策后处理离开的数据包(用于NAT)。
匹配条件
  • -i <接口>:匹配输入接口(如-i eth0)。
  • -o <接口>:匹配输出接口(如-o eth0)。
  • -s <地址>:匹配源地址(如-s 192.168.1.0/24)。
  • -d <地址>:匹配目标地址(如-d 192.168.2.0/24)。
  • -p <协议>:匹配协议(如-p tcp-p udp-p icmp)。
目标动作(-j 选项指定)
  • ACCEPT:允许数据包通过。
  • DROP:丢弃数据包,不发送任何响应。
  • REJECT:拒绝数据包,并发送响应信息。
  • LOG:记录数据包信息到日志。
  • DNAT:目标地址转换,用于PREROUTING链(如-j DNAT --to-destination 192.168.2.2)。
  • SNAT:源地址转换,用于POSTROUTING链(如-j SNAT --to-source 192.168.1.1)。
  • MASQUERADE:特殊的SNAT,用于动态IP地址(如-j MASQUERADE)。
三、示例

允许特定接口之间的流量转发、

iptables -A FORWARD -i lan0 -o wrtnet -j ACCEPT

禁用NAT(删除现有NAT规则)

iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

添加NAT规则以将流量重定向到特定地址

iptables -t nat -A PREROUTING -d 192.168.2.2 -i eth0 -j DNAT --to-destination 192.168.2.2
四、更多…
#允许lan-wan,允许内网已建立的连接
iptables -A FORWARD -i lan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o lan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#快捷保存规则
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
​#删除对应自定义链表规则
iptables -D DOCKER-USER -i eth0 -o docker0 -j REJECT

留下评论

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