本文最后更新于 1103 天前,其中的信息可能已经有所发展或是发生改变。
一、搭建代理池
1.创建并运行代理池docker
docker run -dit \
--name dailichi \
--hostname auto-proxy-pool \
--network bridge \
--restart always \
-p 18888:18888 \
-v /root/auto-proxy-pool:/run/data \
--privileged=true \
mzzsfy/auto-proxy-pool:latest更新容器命令(通用,改容器名)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once dailichi2.配置proxy.yml文件
运行后root/auto_proxy_pool会生成proxy.template.yml文件(该文件每次重启都会被覆盖)
将文件改名为proxy.yml,复制下方代码替换所有;+.xxx.com里面的xxx改成需要进行代理的域名比如jd为 .+.jd.com
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 #请求时间间隔,在这个时间内只会请求一次api3.购买代理
提供一个代理购买地址:
星空代理 每日签到送 100 IP。
进入-订单管理-API提取/生成API-生成API链接-复制生成后的API链接填入配置文件proxy.yml的apiUrl的冒号后面。
提取格式如下:
api代理获取设置:
读取数量选择: 1
读取格式:txt
分 隔 符:换行(\n)
配置好后重启即可
二、青龙配置代理
1.javascript设置代理
JavaScript脚本并不像Python那样默认使用系统代理变量,如果需要使用代理进行请求,那只能在代码中设置。
1.1nodejs中安装global-agent依赖
1.2局部代理
在需要用代理的js脚本开头加入一行代码
require('global-agent/bootstrap');
global.GLOBAL_AGENT.HTTP_PROXY="http://ip:port";1.3全局代理
我们只需要在青龙的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"