Linux的iptables:为什么在filter表中没有PREROUTING钩子?

如果我不想在我的服务器上收到某些端口,我宁愿尽早丢弃这些数据包,即:在执行路由之前。

sudo iptables -I PREROUTING -p tcp --dport 80 -j DROP iptables: No chain/target/match by that name. 

在filter表中没有PREROUTING挂钩的原因是什么?

filter中没有PREROUTING链,只是因为在那里没有意义。 当数据包到达netfilter的过滤表时,所有的路由都已经完成。

看到这个答案 ,特别是这个图 ,了解数据包如何通过netfilter。

至于尽可能早地过滤数据包,图表显示PREROUTING链最早可能是raw表。 看到这个更多的信息。