我想REDIRECT
在 NATPREROUTING
链中做一个 iptables 规则,将连接重定向到端口 80 以转到 8080。但我只想对输入数据包(发往本机)执行此操作,而不是转发数据包(发往例如互联网)。
在链中的规则中,有没有办法PREROUTING
区分发往该机器的数据包与正在转发的数据包,并以不同的方式处理它们?
最好以不需要在规则中枚举特定接口或 IP 地址的方式执行此操作,因为这不太灵活(例如,如果接口或 IP 地址发生变化,则需要更新 iptables 会更复杂规则)。
我认为您注定要手动列出所有“本地”IP 地址。根据我对这个 netfilter 数据包流程图的阅读,在所有 PREROUTING 链之后,输入/转发数据包没有区别——这是有道理的,因为该链毕竟称为PRE ROUTING ......
我刚刚遇到了这个
addrtype
模块,它似乎能够根据目标地址是否为本地地址来区分传入的数据包。所以这可以用来区分输入和转发数据包。例如: