我的路由器将所有传入stream量(接口eth0 )redirect到IP 1.2.3.4:
iptables -t NAT -A PREROUTING -i eth0 -p tcp --dport 80 --to-destination 1.2.3.4:80
当客户端点击“100.80.77.8”,我不想redirect他,但让他访问www-online IP 100.80.77.8。 ( 注意:IP转发开启 )。
最后,任何IP但100.80.77.8被捕获并redirect到1.2.3.4。
我应该添加什么iptables规则? redirect之前或之后 – 全部(见上)?
谢谢。
__编辑__这里是我运行的脚本,使我的规则:
IPTABLES=iptables # Enable Internet connection sharing, echo "1" > /proc/sys/net/ipv4/ip_forward #clear all rules (flush) $IPTABLES -F $IPTABLES -X $IPTABLES -t nat -F $IPTABLES -t nat -X $IPTABLES -t mangle -F $IPTABLES -t mangle -X $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT #rules-------- $IPTABLES -t nat -A PREROUTING -i wlan0 -d 100.80.77.8 -p tcp --dport 80 -j ACCEPT #http (80) $IPTABLES -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j DNAT --to-destination 1.2.3.4 $IPTABLES -t nat -A POSTROUTING -j MASQUERADE echo "\nipforward: done. but Apple."
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -d 100.80.77.8 -j ACCEPT
在上面显示的规则之前 (即,处理例外, 然后是规则)。
iptables不会做DNS(以任何你想要的方式),所以放弃了第4层处理的任何想法 – 它是一个2/3层的工具。 如果你发现这不起作用,那么我们需要查看你所有的规则来做进一步的评论,所以编辑iptables -L -n -v ; iptables -t nat -L -n -v的结果iptables -L -n -v ; iptables -t nat -L -n -v iptables -L -n -v ; iptables -t nat -L -n -v进入你的问题。