搭建 auto

搭建 auto

全自动代理池,镜像mzzsfy/auto-proxy-pool,将多个api代理池或者固定上游转化为透明代理池,多规则控制请求上游,也支持请求拦截、修改请求等功能。降低因为使用同一个ip导致活动火爆黑号的概率

嫌麻烦的可以直接上车:Rabbit

备用:Pro

QQ群:570499950

一.免费代理推荐

代理ip-http代理_高质量代理ip-星空代理(新用户送好像是送1000,每天签到可以免费兑换)

短效代理_防封_动态_爬虫IP_api代理【优亦云】(每天免费500)

ip代理_长短效动静态ip代理_优质高速在线ip代理_携趣网络代理ip服务商(每天免费1000)

先去这几个免费的注册个账号,当然用收费的更好

二.dockers创建auto-proxy-pool容器

直接复制这个命令粘贴运行即可

mkdir -p /root/proxypool && cd /root/proxypool && docker run -itd -v "$(pwd)":/run/data -p 8899:8080 --restart=always --name=auto-proxy-pool mzzsfy/auto-proxy-pool

更新命令

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once auto-proxy-pool

三.配置

1.运行成功后会在/root/auto-proxy-pool/文件夹生成proxy.template.yml默认配置文件

2.复制并重命名为proxy.yml,可以去宝塔面板或者安装的其他面板找到这个文件手动修改,或者使用以下命令

cp /root/auto-proxy-pool/proxy.template.yml /root/auto-proxy-pool/proxy.yml

3.打开proxy.yml这个刚才复制的空文件,把下边的内容粘贴进去(选一个就行)

仅京东请求生效(单个上游)

changeRequest:

- hostRegex: (.+\.jd\.com)|(.+\.isvjd\.com)|(.+\.isvjcloud\.com) #正则表达式

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

仅京东生效(多上游,多个api代理轮换使用)

changeRequest:

- hostRegex: (.+\.jd\.com)|(.+\.isvjd\.com)|(.+\.isvjcloud\.com) #正则表达式

proxy: proxy1,proxy2

upstream:

proxy1: #自定义名字

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

proxy2: #自定义名字

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: 1 #保留几个上游

checkTimeout: 2s #单个check超时时间

checkRetryWait: 500ms #重试check前等待时间

requestInterval: 1000ms #请求时间间隔,在这个时间内只会请求一次api

以上为两个上游代理,多加一个代理池proxy: proxy1,proxy2,proxy3以此类推

全部请求生效

defaultCheckUrl: http://baidu.com/,http://connect.rom.miui.com/generate_204 #检测代理是否有效的url

changeRequest:

- hostRegex: .+\.xxx\.com #正则表达式

proxy: proxy

- hostRegex: .+.xxx\.com #正常使用只用上方一条规则,本行和以下内容可删除

proxy: noproxy #自定义名称里没有则不用代理

- hostRegex: (.+\.xxx\.com)|(.*xxx\.com) #匹配多个

proxy: proxy

- hostRegex: .* #匹配全部

proxy: proxy #本行和以上内容可删除

upstream:

proxy: #自定义名字

template: '{{$x := regexFindAll "\\d{1,3}(\\.\\d{1,3}){3}:\\d{2,5}" . -1}}{{range $s := $x}}{{printf "http://%s\n" $s}}{{end}}'

apiUrl: 这里是填写api地址,txt换行(带有\n字样)格式的

lifecycle: 20 #提取后主动过期时间,-1不主动过期,只定期检测

maxSize: 1 #同时维护几个有效ip

requestInterval: 100ms #请求api间隔,避免请求太快服务器拉黑

4.配置api代理,以携趣为例其他家的都差不多 (提取数量1 TXT格式 换行符/n http代理协议)

设置完之后复制链接粘贴在 apiUrl: 后面加个空格在填链接

填完之后重启

docker restart auto-proxy-pool

查看日志

docker logs -f --tail 50 auto-proxy-pool

正常运行图

成功后删除 proxy.template.yml这个文件即可

四.青龙面板配置

.1.打开青龙的配置文件

2.添加以下变量即可(基本涵盖大部分脚本的变量),代理池地址 http://ip:8899

export JD_PROXY_TUNNRL='你的代理池地址

export OPENCARD_GLOBAL_AGENT_HTTP_PROXY_URL='你的代理池地址'

export JD_YQ_GLOBAL_AGENT_HTTP_PROXY_URL='你的代理池地址'

export DP_POOL='你的代理池地址'

export JD_ISV_GLOBAL_PROXY="true"

export GLOBAL_AGENT_HTTP_PROXY="你的代理池地址"

export RS_PROXY_OPEN="true"

export RS_PROXY_TUNNRL="你的代理池地址"

以上配置后就大功告成了,以下内容可以忽略

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"

相关推荐