教你/如何屏蔽国外所有IP访问(亲测有效)

今天代代SEO为大家分享一篇文章“教你 如何屏蔽国外所有IP访问(亲测有效)!”当你的网站做到一定时候,一定会有大量国外IP访问你的隐私

今天代代SEO为大家分享一篇文章“教你/如何屏蔽国外所有IP访问(亲测有效)!”当你的网站做到一定时候,一定会有大量国外IP访问你的隐私目录,去渗透你的主机权限,或者用cc攻击你,或者使用dos攻击你,因为现在主流的攻击模式,就是dos,流量IP大部分都分布在国外IP段,美国、加拿大的IP段居多,如果我们可以禁止国外IP,也就是禁止掉了70%以上的网站攻击,而国内代理IP虽然也比较多,但是毕竟数量有限,经常寻找屏蔽下基本是可以解决问题的,下面来分享思路。

禁止国外IP思路:

很多人都是,发现国外IP就屏蔽,发现就屏蔽,其实你根本屏蔽不完,国外IP几百万个IP段,你能屏蔽过来么,所以要换一个思路,我们收集国内所有IP段,只允许收集的国内IP段访问,其他的IP(国外)的IP,都无法访问,无论是新加坡,美国,韩国、日本等等都没用,这就有效的阻止了国外IP,下面分享方法。

1,登录自己的Linux服务器,执行以下代码,会把国内所有IP段下载到自己的服务器中(建议每个月执行一次),因为国内有IP段更新,执行后,linux窗口不会有反应,txt文件自动会进行下载,一般执行5分钟左右,大家关闭窗口就可以了。

wget -q --timeout=60 -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/china_ssr.txt

2,将下面脚本保存为/root/allcn.sh ,设置可执行权限(755)。

值得注意的是:.sh文件,大家去服务器中下载一个sh文件,重命名,然后把下面的复制粘贴进去,就行了,如果用txt改sh文件,会乱码,执行不成功,sh的格式很严谨(另外下面的代码不要有换行符)。

mmode=$1

#下面语句可以单独执行,不需要每次执行都获取网段表

#wget -q --timeout=60 -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/china_ssr.txt

CNIP="/root/china_ssr.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

#可在此增加你的公网网段,避免调试ipset时出现自己无法访问的情况

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

3,打开linux服务器,执行下面代码,执行后国外ip将无法打开网站:/root/allcn.sh

4,如果要停止的话执行下面这个命令可恢复国外ip访问网站:/root/allcn.sh stop

是不是非常简单,上面的IP段,大家每个月执行一次代码就行了,不需要每天执行,每个月更新一次IP库,sh文件这个很关键,一般都是在这个地方出错,大家可以下载sh文件,然后在改下内容就行,就讲解到这里,后面在视频中会详细讲解屏蔽国外IP的一些方法,好了,就先讲解到这里。

文章来源:代代SEO博客

来源地址:https://www.daidaiseo.com/seoan/10932.html