Littleyu科学上网
技术分享

个性化增加区域限制访问功能的非域名爬虫网站(升级版)

前言

之前创建一键脚本安装专门爬取公网免费节点爬虫网站程序,由于没有伪装功能,暴露在互联网上很容易被墙/gfw嗅探识别,所以从安全性和功能的拓展性考虑,准备增加一定的安全保护功能:屏蔽国内所有IP访问,只允许国外的IP访问
这是怎么做到的呢?一起学习吧!

搭建条件及思路

搭建条件

1,vps(弱鸡)一台,1核CPU;192M/512M内存均可;高性能大鸡也可以。
      2,已经装好非域名一键脚本安装爬虫(没装点击安装);

搭建思路

这次使用geoip程序,通过它获取识别国内IP,通过nginx配置策略禁止访问。
      由于前期一键脚本安装nginx并没有增加http_geoip2_module模块,所以需要重新下载相同版本的nginx,加载新模块http_geoip2_module一道编译生成新的nginx可执行程序,从而替换覆盖原程序,修改nginx相关配置即可实现。
      为了能让小白搭建更容易理解,文中会在搭建步骤前加以描述。
下载配置geoip----->下载nginx源码和http_geoip2_module模块----->加载模块编译新的nginx---->替换原nginx/修改配置

搭建步骤

下载并配置geoip

geoip的作用:世界各地的互联网地址都是通过具体的IP访问,这些IP数据存在于geoip数据库中,使用它可以精确判断访问IP的位置。
      这边使用geoip自动更新脚本实现安装,安装好处在于可以定时更新最新IP数据库,考虑零成本使用的是maxmind免费的IP库。
      这边需要自行注册maxmind账户,以便下面脚本用到geoip;
      其次获取LicenseKey如下图所示:

注意:这边使用高于3.1.1版本程序,区别方法:高版本的是以mmodb格式为后缀文件,低版本是dat文件后缀格式。用法略有不同。
      这里以高于3.1.1版本程序为例
1.下载解压geoipupdate程序

2.编辑配置

3.创建并更新geoipupdate

4.编辑定时更新geoipupdate

安装好以后,执行geoipupdate命令获取GeoLite2-City.mmdb,GeoLite2-Country.mmdb

下载nginx源码和http_geoip2_module模块

1.下载http_geoip2_module模块

2.下载nginx源码

加载模块编译生成新的nginx

以上configure加载的参数根据需要增设,但必须增加ngx_http_geoip2_module一同编译,参数增设不合理会导致编译失败生成不完整程序(如:已安装过并配置过的路径不能重复,否则编译失败)。

替换原nginx并修改配置

这样,通过nginx -V命令,即可查看nginx已加载的ngx_http_geoip2_module模块。

修改nginx配置

编辑打开nginx.conf vi /etc/nginx/nginx.conf,增加如下第21-29行代码

代码意思:定义geoip2数据存储路径,以及变量。
编辑打开nginx.conf包含的子配置文件 vi /etc/nginx/conf.d/default.conf,增加如下第12-21行代码

代码意思:只允许非国内IP访问反代爬虫网站,在网址后加入/myip回车,可显示当前访问IP及所属国家省份位置

修改网址默认首页

备份首页,同时下载新首页代码覆盖网站首页代码即可。

自此,整个搭建已完毕。

实现效果

打开浏览器,在地址栏输入vps的IP回车即可看到如下效果。
1.国内IP禁止访问,和google一样伪装完美

2.国外IP允许访问爬虫网站

3.测试访问IP所在位置

后记

以上就是在nginx上增设安全策略功能实现的国内禁止访问,当然大家也可以根据自身需求(如:只允许部分内部人访问等)
      目前从我这里获取开源的爬虫网站部分已被禁止外界访问,只有我还在不断的贡献力量,写这篇博文也不容易,希望大家给予点赞或打赏下,谢谢各位。

问题反馈

经多次安装测试,以上安装是可行,唯一在测试中发现,有时会出现nginx.pid文件找不到,这时请复制pid文件到对应路径,即可刷新nginx最新配置。详见如下代码:

参考网址

blog.leonshadow.com/763482/1983.html
      cloud.tencent.com/developer/article/1865759?from=article.detail.1050222
      dev.maxmind.com/geoip/geolite2-free-geolocation-data?lang=en

赞(2) 打赏,请点Google广告
需转载请注明引用出处:Littleyu科学上网技术 » 个性化增加区域限制访问功能的非域名爬虫网站(升级版)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Littleyu油管频道电报交流群