加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

教你怎样屏蔽国外全部IP访问亲测有效

发布时间:2022-03-16 12:58:39 所属栏目:运营 来源:互联网
导读:为大家分享一篇文章教你/如何屏蔽国外所有IP访问(亲测有效)!当你的网站做到一定时候,一定会有大量国外IP访问你的隐私目录,去渗透你的主机权限,或者用cc攻击你,或者使用dos攻击你,因为现在主流的攻击模式,就是dos,流量IP大部分都分布在国外IP段,美
    为大家分享一篇文章“教你/如何屏蔽国外所有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/%dn", $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/%dn", $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的一些方法,好了,就先讲解到这里。

(编辑:宿州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读