Iptable 使用ipset设置防火墙端口白名单,只让指定国家访问

DNS屏蔽

查看dns域名解析商线路选择(略)

黑名单屏蔽

首先需要得到国家IP段,下载地址:http://www.ipdeny.com/ipblocks/。这里以我们国家为例。

安装ipset

#Debian/Ubuntu系统
apt-get -y install ipset

#CentOS系统
yum -y install ipset

创建规则

#创建一个名为cnip的规则
ipset -N cnip hash:net
#下载国家IP段
wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone
#将IP段添加到cnip规则中
for i in $(cat /root/cn.zone ); do ipset -A cnip $i; done

开始屏蔽

解除屏蔽

一键执行

为了便于实时,这里我写了个脚本,可以一键执行。适用于CentOS、Debian、Ubuntu等常用系统

封禁ip时会要求你输入国家代码,代码查看:点击进入。记住所填参数均为小写字母。比如JAPAN (JP),我们就输入jp这个参数。注意:封禁国内时要特别注意,如封禁国内会造成登录服务器失败

演示

封禁IP

查看封禁列表

解封IP

白名单屏蔽

有同学会说国外那么多国家,我不可能一个个国家去进行屏蔽吧。只需要国内访问或个别几个国家访问。那就选择白名单,把允许的几个国家加入白名单中,其他全部屏蔽掉即可。已中国为例:

获取列表

一键执行

脚本一

脚本二

Last updated