1.这里设置需要我们先整理好一下国外,输入会下载一个ip.txt文件在/root/目录:
wget -T 60 -q -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /root/ip.txt
命令解答一下:wget一般在linux中用来下载文件等,wget有一个优点就是可以在下载文件时由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕,可以下载一些大文件非常有用。
-T:表示请求超时的时间
-q:表示不显示请求过程
-o-:把文档写入file文件中
2.下载成功后,ls命令查看目录下是否存在ip.txt文件,输入vim ip.sh 创建一个ip.sh脚本,复制一下sh脚本程序:
mmode=$1
CNIP="/root/ip.txt"
gen_iplist() {
cat <<-EOF
$(cat ${CNIP:=/dev/null} 2>/dev/null)
EOF
}
flush_r() {
iptables -F ALLCNRULE 2>/dev/null
iptables -D INPUT -p tcp -j ALLCNRULE 2>/dev/null
iptables -X ALLCNRULE 2>/dev/null
ipset -X allcn 2>/dev/null
}
mstart() {
ipset create allcn hash:net 2>/dev/null
ipset -! -R <<-EOF
$(gen_iplist | sed -e "s/^/add allcn /")
EOF
iptables -N ALLCNRULE
iptables -I INPUT -p tcp -j ALLCNRULE
iptables -A ALLCNRULE -s 127.0.0.0/8 -j RETURN
iptables -A ALLCNRULE -s 169.254.0.0/16 -j RETURN
iptables -A ALLCNRULE -s 224.0.0.0/4 -j RETURN
iptables -A ALLCNRULE -s 255.255.255.255 -j RETURN
iptables -A ALLCNRULE -m set --match-set allcn src -j RETURN
iptables -A ALLCNRULE -p tcp -j DROP
}
if [ "$mmode" == "stop" ] ;then
flush_r
exit 0
fi
flush_r
sleep 1
mstart
在vim编辑器粘贴后按esc,下输入“ :wq ” 回车就可以了,最后给与ip.sh 执行的权限输入:chmod +x ip.sh 。
启动ip.sh程序输入:./ip.sh
要关闭ip.sh程序时输入: ./ip.sh stop