基础定义
四表
FILTER
控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output
NAT
控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting
MANGLE
修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting
RAW
控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output
五链
PREROUTING
FORWARD
OUTPUT
POSTROUTING
堵通策略
ACCEPT
放行
DROP
丢弃
REJECT
拒绝
一般配置
NAT配置
1
| iptables -t nat -A POSTROUTE -s 192.168.55.0/255.255.255.0 -o eth0 -j MASQUEADE
|
PREROUTING
当外网的数据包进入到内网时,我们需要修改数据包中的公网 IP 为内网的主机 IP,这种 DNAT 的行为规则就要在 PREROUTING 链里添加。
POSTROUTING
和 PREROUTING 不同,在执行 SNAT 任务时的行为规则就添加在 POSTROUTING 链中。
透明代理配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #!/bin/sh vpn_ip="`ping home.nekokami.cc -c 1| grep 64 | awk -F" " '{print $4}'`" wwan_ip="`ifconfig wwan0 | grep "inet " | awk -F" " '{print $2}'`" echo "VPN地址".$vpn_ip echo "WWAN地址".$wwan_ip
iptables -t nat -F iptables -t nat -X
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
iptables -t nat -N clash_dns
iptables -t nat -A PREROUTING -p tcp --dport 53 -d 192.168.55.1/32 -j clash_dns iptables -t nat -A PREROUTING -p udp --dport 53 -d 192.168.55.1/32 -j clash_dns
iptables -t nat -A clash_dns -p tcp --dport 53 -j REDIRECT --to-ports 5353 iptables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to-ports 5353
iptables -t nat -N clash iptables -t nat -A PREROUTING -p tcp -j clash
iptables -t nat -A clash -d 0.0.0.0/8 -j RETURN iptables -t nat -A clash -d 10.0.0.0/8 -j RETURN iptables -t nat -A clash -d 127.0.0.0/8 -j RETURN iptables -t nat -A clash -d 169.254.0.0/16 -j RETURN iptables -t nat -A clash -d 172.16.0.0/12 -j RETURN iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN iptables -t nat -A clash -d $vpn_ip/32 -j RETURN iptables -t nat -A clash -d $wwan_ip/30 -j RETURN
iptables -t nat -A clash -p tcp -j RETURN -m mark --mark 0xff iptables -t nat -A clash -p tcp --dport 22 -d 192.168.55.1/32 -j RETURN iptables -t nat -A clash -p tcp -j REDIRECT --to-ports 12345
echo "Configure ok..."
|