外贸网站屏蔽中国IP访问的多种方法
大家都知道的原因,做外贸站,国人喜欢研究你的站,还总是帮你进行压力测试……
首先想到要屏蔽中国IP就会是把中国IP库加入Nginx配置文件中,然后WEB服务器对比IP来达到屏蔽。
在Nginx中加deny IP;
批量可以建立一个ip.conf的文件然后include ip.conf;
其次是通过IPtable要禁止中国IP段来达到屏蔽的目的。
以下是Iptable的Sh脚本:
#!/bin/bash
# Block traffic from a specific country
# written by vpsee.com
COUNTRY = “cn”
IPTABLES = /sbin/iptables
EGREP = /bin/egrep
if [ "$(id -u)" != "0" ]; then
echo “you must be root” 1>&2
exit 1
fi
resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}
resetrules
for c in $COUNTRY
do
country_file = $c.zone
IPS = $($EGREP -v “^#|^$” $country_file)
for ip in $IPS
do
echo “blocking $ip”
$IPTABLES -A INPUT -s $ip -j DROP
done
done
exit 0
今天在网上又看到了一种更绝的屏蔽之法:国内有个免费解析的服务商DNSPOD,我们就是利用其独特的解析方式,进行最有效的DNS屏蔽。国内的网络不外乎联通(原网通)、电信、教育网等几种访问模式,恰好,DNSPOD提供了这3种解析模式。首先,我们添加一个默认的解析地址,这里填的是8.8.8.8(请自行对照是您网站的正确IP地址),然后我们依次添加选择3种不同线路的错误IP地址,比如 127.0.0.1,这样来自于国内的访问几乎被彻底的解析到错误的IP地址,也就是可以被另类的屏蔽掉了。
第二种方法:利用浏览器屏蔽之法:
<script type="text/javascript">
if (navigator.language)
var language = navigator.language;
else
var language = navigator.browserLanguage;
if(language.indexOf('zh') > -1)document.location.href = 'nddbc.html';
</script>
第三种方法:利用.htaccess文件来禁止中国IP段访问;
.htaccess(别忘了前面1个点)文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。.htaccess文件一般在你网站的根目录可以找到;如果没有,在windows系统下可以通过以下方法创建一个:
打开Windows内建的记事本;
选取另存新文件“文件->另存为”;
在另存为的“保存类型”下拉选单中选取“所有文件”类型,可以选择utf-8,也可以是ansi
在“文件名”中输入.htaccess;
选取要另存的路径再按下保存,一个.htaccess 文件就新增完成。
.htaccess文件,我们可以使用记事本打开。以下是一些允许或禁止的规则:
order allow,deny # 禁止一个ip地址 deny from 123.125.125.147 # 禁止一个ip段 deny from 210.145.95.0/255 # 或者你需要在这ip段中允许部分ip allow from 210.145.95.123 # 除此之外一切均可以访问 allow from all
为了禁止中国IP访问,我们需要在.htaccess文件中添加以下规则:
<Limit GET HEAD POST>
order allow,deny
allow from all
deny from 1.0.1.0/22
其它中国IP段
</Limit>
1.0.1.0/22 是其中1个中国IP段,为禁止所有中国IP访问,我们还需要把所有中国IP段加上去。为方便大家,这里做了个禁止所有中国IP的htaccess文本(txt)文件,点击下载 或者到网盘下载 ;大家可以下载后上传到空间根目录,然后在空间重新命名为.htaccess 即可;也可以把它用记事本打开,复制里面的代码粘贴到空间的.htaccess文件中;