使用 nftables 屏蔽大量 IP

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

本文介绍了作者使用nftables屏蔽恶意IP地址的经历,通过调整规则定义成功实现了IP屏蔽功能。

🎯

关键要点

  • 作者最初使用iptables屏蔽恶意IP地址,但由于性能问题,决定尝试nftables。

  • iptables的O(n)时间复杂度在处理大量规则时导致性能下降,影响下载速度。

  • 使用iptables的补丁来跳过已建立的连接以提高下载速度。

  • nftables支持超时的动态集合,适合临时屏蔽恶意IP。

  • 作者通过nftables创建了支持IPv4和IPv6的规则,能够自动解除屏蔽。

  • 被屏蔽的IP数量稳定在26k到28k之间,性能良好,softirq占用低于10%。

  • nftables的手册页难懂,但多看几遍后能更好理解。

  • 作者编写了一个Python脚本来统计被屏蔽IP的流量。

  • 最后,作者对运营商的不负责任行为表示谴责,认为其将压力转嫁给无辜群众。

延伸问答

为什么作者选择使用nftables而不是继续使用iptables?

作者选择nftables是因为iptables在处理大量规则时性能下降,导致下载速度受限,而nftables支持超时的动态集合,适合临时屏蔽恶意IP。

nftables如何处理恶意IP的屏蔽?

nftables通过创建支持超时的动态集合来屏蔽恶意IP,自动解除在设定时间内未再请求的IP。

使用nftables屏蔽IP的性能表现如何?

被屏蔽的IP数量稳定在26k到28k之间,性能良好,softirq占用低于10%。

作者在使用nftables时遇到了什么困难?

作者觉得nftables的手册页难懂,但通过多次阅读后逐渐理解其结构。

作者是如何统计被屏蔽IP的流量的?

作者编写了一个Python脚本,通过nftables的API统计被屏蔽IP的流量。

作者对运营商的看法是什么?

作者谴责运营商不负责任的行为,认为其将压力转嫁给无辜群众。

🏷️

标签

➡️

继续阅读