在阅读了一些有关 TPROXY 的内容(例如在https://www.kernel.org/doc/html/latest/networking/tproxy.html)后,我现在有更多的问题然后得到答案。我实际上什至不知道 TPROXY 应该做什么......
关于我应该做什么以及内部发生的事情的一些假设。
你能纠正以下假设吗?
据我了解,这些是您应该运行的命令(尽管我不知道为什么):
iptables -t mangle -N DIVERT
:
DIVERT
已创建。mangle
因为您将要做的事情比重定向、阻止和 NAT 更重要。iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
:
PREROUTING
链确保一旦 TCP 数据包从网络设备传递到内核,首先发生的事情就是将其发送到链DIVERT
。-p tcp
确保非 TCP 流量不会出现这种情况。-m socket
确保创建和关闭连接的数据包不会出现这种情况(例如SYN/ACK
)-p tcp -m socket
TPROXY 将影响所有 IP(v4) 数据包。这将是一个不同但有效的设置。iptables -t mangle -A DIVERT -j MARK --set-mark 1
:
1
。您可以选择其他号码。iptables -t mangle …