小破站批量屏蔽IP地址实践--容器版
设置iptables屏蔽IP,容器内不生效解决办法
不生效原因分析:
依据容器原理,容器和宿主机共享linux 内核, netfilter是内核的一部分
报文在经过 PREROUTING 环节,就已经被容器设置的链的规则接管,因此我们宿主机设置的规则,容器内不生效
容器的请求没有经过宿主机的 INPUT 链,所以在宿主机的 INPUT 链上做规则是没法限制容器的网络访问的。需要在 DOCKER 链动手脚
运行容器的环境下屏蔽IP地址
原理:把要屏蔽的IP的报文,全部转发到 127.222.222.222
127.222.222.222 是自定义的地址
命令是在宿主机上执行,不是容器里
# 存在先删除 number=$(iptables -t nat -L PREROUTING -n --line-number | grep 'match-set blocklist-ip src' | wc -l ) for ((i = 1; i <= $number; i = i + 1)); do iptables -t nat -D PREROUTING -m set --match-set blocklist-ip src -j DNAT --to-destination 127.222.222.222 done # 存在先删除 number=$(iptables -t filter -L INPUT -n --line-number | grep '127.222.222.222' | wc -l ) for ((i = 1; i <= $number; i = i + 1)); do iptables -t filter -D INPUT -d 127.222.222.222 -j DROP done # 3 句话实现运行容器的环境下主机屏蔽IP地址 iptables -t nat -I PREROUTING 1 -m set --match-set blocklist-ip src -j DNAT --to-destination 127.222.222.222 iptables -t filter -I INPUT 1 -d 127.222.222.222 -j DROP ipset create blocklist-ip hash:net # 下面到了添加屏蔽的IP地址环节 ipset add blocklist-ip 34.100.239.202 ipset add blocklist-ip 51.75.123.107 # 查看 blocklist-ip 集合的内容 ipset list blocklist-ip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术