神代綺凛の随波逐流

[不再维护] 屏蔽任意一个国家所有IP的一键脚本

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »

看到那个 lowendtalk 上的帖子,觉得挺好玩的就写成了一个脚本,说不定以后还能派上用场(大概并不会派上用场

Head Pic: 「ルーミア」/「みなみな」[pixiv]

Block IPs from countries

[button color="dark" icon="fa fa-github"]Tsuk1ko/Block-IPs-from-countries[/button]

是看到了 lowendtalk 上的这个帖子
https://www.lowendtalk.com/discussion/141800/blocking-attack-ips-ddos-ips-from-china

还行,那就做一个一键脚本玩玩
顺便把最近份的文章水了好腾出时间专心写实验

更新日志

2018-04-11

  1. 把 IP 数据源换成了 APNIC 的
  2. 国家代码不用再区分大小写

准备

安装 ipset

# Debian / Ubuntu
apt-get install -y ipset

# CentOS系统
yum install -y ipset

下载脚本

wget https://raw.githubusercontent.com/Tsuk1ko/Block-IPs-from-countries/master/block-ips.sh

使用

屏蔽某国IP

比如要屏蔽中国IP

  1. 添加中国IP到 ipset
    添加的时候会自动下载一个IP段集delegated-apnic-latest.txt,请不要删除它
    bash block-ips.sh -a cn
  2. 屏蔽中国IP
    bash block-ips.sh -b cn

!> 如果真的要试的话就别屏蔽中国IP了啊,小心屏蔽完了 ssh 上不去(。
你可以尝试拿邻国友人jp,kr,sg之类的开刀(x

i> 你可以到 http://doc.chacuo.net/iso-3166-1 或者 https://www.iso.org/obp/ui/ 查看可用的国家代码(二字母),使用的时候大小写无所谓

解除屏蔽

如果要解封中国IP

bash block-ips.sh -u cn

查看你已经屏蔽了哪些国家

bash block-ips.sh -l

更新IP列表

如果你需要更新IP列表,你需要先删除delegated-apnic-latest.txt文件,然后再次使用-a参数添加即可,脚本会自动先清空原 ipset 然后重新添加数据

rm delegated-apnic-latest.txt
bash block-ips.sh -a cn