使用 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的流量。
作者对运营商的看法是什么?
作者谴责运营商不负责任的行为,认为其将压力转嫁给无辜群众。
🏷️