搭建青龙代理池,避免黑ip

由于京东农场,服务器大量号运行,导致黑IP,脚本就无法正常运行。 所以才出本期教程。

前期准备

已搭建docker    

一、搭建教程

docker run -dit \
--name auto-proxy-pool  \
--network bridge  \
--restart always  \
-p 8080:8080  \ 
-v /root/auto-proxy-pool:/run/data \
--privileged=true \
mzzsfy/auto-proxy-pool:latest

前一个8080可修改,防止占用,记得开放对应的端口防火墙(如果搭建宝塔,则服务器 宝塔都需要开启端口)

搭建完成会在root  目录下生成 auto-proxy-pool文件夹

、配置proxy.yml文件

运行后root/auto_proxy_pool会生成proxy.template.yml文件(该文件每次重启都会被覆盖)
将文件改名为proxy.yml,只需要替换你代理网站提取的代理链接apiUrl即可

########################################
#    配置中带有default前缀的都能被覆盖     #
########################################

#!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!!
#!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!!
#!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!!
#!!!!!!!!!!请将本文件改名为proxy.yml,本文件每次重启都会被覆盖!!!!!!!!!!
  changeRequest:
  - hostRegex: (.+\.jd\.com)|(.+\.isvjd\.com)|(.+\.isvjcloud\.com) #正则表达式
     
    # 支持多项,从上到下匹配
    ###########################################################################
    # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!!
    # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!!
    # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!!
    # !!!!!!!!未配置decryptHttps:true 遇到https只能匹配host其他匹配将不生效!!!!!!!!!!
    ###########################################################################
    # 目前为或者关系,只要匹配其中一项就生效,后续会改为与关系,有填写的全部匹配才生效
    # 匹配host的正则,性能最高
    - hostRegex: .+\.jd\.com
        #匹配完整url正则,携带参数,功能最全
        #urlRegex: https://.+\.baidu\.com\?.+
        #匹配路径正则
        #pathRegex:/path
        #参数匹配正则
        #paramsRegex:
        #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化
        #name: 正则
        #headersRegex
        #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化
        #name: 正则
        #cookiesRegex
        #支持多项,写了就会去匹配,如果没有该参数会使用空字符串匹配,后续看是否需要优化
        #name: 正则
        
        #使用哪一个代理,这样写会尝试按顺序从proxy1取2次,然后去proxy2取一次,按最先取到有效计算
      proxy: proxy1
        #是否放行,true直接屏蔽该请求
      black: false
        #用来做上游匹配的ck,当ck值一致时会分配到同一上游,https需要配置decryptHttps:true
      #proxyCk: xxxx
        #该规则的日志等级
        #logLevel: debug
        #是否记录未知大小的jsonBody
        #logUnknownSizeBody: true
        
        #拦截指定路径
    #- pathRegex: /xxxx
    #  black: true
        
        #带有test 这个header的单独指定上游为proxy2
   # - headersRegex:
          #test: test
        #指定上游
      #proxy: proxy1
    proxy: proxy
upstream:
  proxy: #自定义名字
    template: '{{$x := regexFindAll "\\d{1,3}(\\.\\d{1,3}){3}:\\d{2,5}" . -1}}{{range $s := $x}}{{printf "http://%s" $s}}{{end}}'
    apiUrl: #这里是填写代理api地址,格式:txt,换行\n,提取1个
    checkRetryNumber: 2 #检测代理次数,超过次数则获取新代理
    apiRetryNumber: 5 #上游重试次数,超过次数则采用直连
    checkUrl: http://jd.com/,http://baidu.com/,http://bilibili.com/ #检测代理是否有效,不用改
    lifecycle: -1 #自动失效时间,-1为不自动失效,单位秒
    maxSize: 5 #保留几个上游
    checkTimeout: 2s #单个check超时时间
    checkRetryWait: 500ms #重试check前等待时间
    requestInterval: 1000ms #请求时间间隔,在这个时间内只会请求一次api

三、购买代理,提取apiUrl

 星空代理

 携趣网络

api代理获取设置:读取数量选择:1    读取格式:txt     分 隔 符:换行(\n)
 配置好后重启即可

  填写到第二步proxy.yml文件   apiURL

docker restart auto-proxy-pool

 命令重启   记得删除新生成的 proxy.template.yml文件 保留已修改的 proxy.yml文件

 四:Python设置代理

局部代理

proxies = {"http":"http://ip:port","https":"http://ip:port"}
requests.get(url,proxies=proxies)

全局代理
我们只需要在青龙的config.sh文件添加http_proxy、https_proxy环境变量即可:

//仅支持http代理
export GLOBAL_AGENT_HTTP_PROXY="http://ip:port"
//支持http和https代理
export GLOBAL_AGENT_HTTPS_PROXY="http://ip:port"

五、JavaScript设置代理

JavaScript脚本并不像Python那样默认使用系统代理变量,如果需要使用代理进行请求,那只能在代码中设置。
nodejs中安装global-agent依赖          局部代理
在需要用代理的js脚本开头加入一行代码:

require('global-agent/bootstrap');
global.GLOBAL_AGENT.HTTP_PROXY="http://ip:port";

全局代理
我们只需要在青龙的config.sh文件添加GLOBAL_AGENT_HTTP_PROXY、GLOBAL_AGENT_HTTPS_PROXY环境变量即可:

//仅支持http代理
export GLOBAL_AGENT_HTTP_PROXY="http://ip:port"
//支持http和https代理
export GLOBAL_AGENT_HTTPS_PROXY="http://ip:port"

  • 1
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值