Loading... <div class="tip inlineBlock info"> 感谢M佬提供 </div> > 下面是我自己搭建的流程使用给大家参考下,自己在用的部分功能,内容收集与互联网 # 代理池搭建 <div class="tip inlineBlock success"> 使用的是docker安装,没装docker的自行[安装docker](https://www.mezgg.com/archives/17/) 进入ssh终端,运行以下代码进行安装: </div> > /root/data/proxy-pool可自行修改自己想放的目录 > 端口根据自己需要的端口进行修改,我这用的18080 ``` docker run -dit \ --name auto-proxy-pool \ # 容器名 --hostname auto-proxy-pool \ # 主机名 --network bridge \ # 容器网络类型 --restart always \ # 开机自启 -p 18080:8080 \ # 端口映射,主机端口:容器端口 -v /root/data/proxy-pool:/run/data \ # 配置文件的主机挂载目录 --privileged=true \ mzzsfy/auto-proxy-pool:latest ``` <div class="tip inlineBlock success"> 简单部署 </div> ``` docker run -dit \ --name proxy-pool \ -p 18080:8080 \ -v /root/data/proxy-pool:/run/data \ mzzsfy/auto-proxy-pool:latest ``` > docker logs -f auto-proxy-pool 命令查看容器日志 <div class="tip inlineBlock success"> 运行后会生成proxy.template.yml文件(该文件每次重启都会被覆盖) 将文件改名为proxy.yml,然后参考最简配置修改,需要重启服务 </div>  <div class="tip inlineBlock success"> 配置文件表,可自定义修改自己需要的参数,<span style='color:#DC143C'> 替换所有 </span> 即可; <span style='color:#DC143C'> +\.xxx\.com </span>里面的xxx改成需要进行代理的域名比如<span style='color:#DC143C'>jd</span> ,如果提示配置错误,删除注释的文字即可。 </div> ``` defaultCheckUrl: http://baidu.com/ # 代理默认检测地址,用于检测通过代理池提取到的代理IP是否有效 changeRequest: - hostRegex: .+\.xxx\.com #正则表达式 ,用于指定通过代理的请求链接(根据正则表达式匹配,` .* `表示匹配全部,若请求链接不在此规则内则会通过本机自身网络快速放通) proxy: proxy #指定配置 #- hostRegex: .+.xxx\.com #proxy: noproxy #自定义名称里没有则不用代理 #- hostRegex: (.+\.xxx\.com)|(.*xxx\.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地址,换行(带有\n字样)格式的 #指定该代理检验是否有效url # <你的代理池API> 接口回传需为txt格式 checkUrl: http://jd.com/ #api重试超时,最多共重试10秒 #apiRetryTimeout: 10s #api上游重试次数,最多重试3次,超过次数则采用直连 apiRetryNumber: 2 #检测代理次数,防止误检测,超过次数则获取新代理 checkRetryNumber: 2 # 代理IP的生命周期,即从代理池提取到的IP的有效时长(填-1为自动检测即不指定,若需指定直接定义正整数,单位/秒) lifecycle: -1 # 保留几个上游,IP数量即同时维护几个有效ip,代理池消耗速度的倍数等于该设定值 maxSize: 1 # 从代理池获取代理IP的请求时间间隔,注意不要太快否则可能会被服务器拉黑 requestInterval: 2000ms ``` <div class="tip inlineBlock success"> 最简配置,直接复制涵盖文件<span style='color:#DC143C'> 替换所有 </span> 填入apiUrl的<span style='color:#DC143C'> api代理 </span> 即可; </div> ``` defaultCheckUrl: http://baidu.com/ changeRequest: - hostRegex: .+\.jd\.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代理 checkUrl: http://jd.com/ apiRetryNumber: 4 checkRetryNumber: 3 lifecycle: -1 maxSize: 1 requestInterval: 3000ms ``` <div class="tip inlineBlock success"> api代理可以用 **熊猫代理**(质量稍好价格稍贵):2元1000个IP [熊猫代理注册](http://www.xiongmaodaili.com?invitationCode=2CD8E155-E5FA-4994-AD57-309AC84735C2) **星空代理**(质量一般价格稍便宜) :每日签到送 100 IP - 10元10000个IP [星空代理每日自动签到github项目](https://github.com/wd210010/just_for_happy/blob/main/xingkong.py) [星空代理注册](http://www.xkdaili.com/?ic=5z7s6w1z) **巨量IP代理**(质量差价格便宜) :每日签到送 1000 IP [巨量巨量IP代理注册](https://www.juliangip.com/user/reg?inviteCode=1006276) **携趣代理**(质量差价格便宜) :每日签到送 1000 IP [携趣代理](https://www.xiequ.cn/) **品易代理**(质量好价格巨贵):注册送1G流量 - 50元1G流量 [品易代理](https://http.py.cn?invitation_code=AnpTB3dndRV4CC4LSGNQWG5ASAVZe11xRxMDBiscMEh0XhowJj0=) 代理自行选择,购买代理后 进入-订单管理-API提取/生成API-生成API链接-复制下面的API链接填入配置文件的-apiUrl: </div> <div class="tip inlineBlock success"> api代理获取设置: 读取数量选择: 1 读取格式:txt 分 隔 符:换行(\n) 配置好后重启即可 </div> <div class="tip inlineBlock success"> 图例为星空代理设置 </div>  <div class="tip inlineBlock success"> 图例为熊猫代理设置 </div>  <div class="tip inlineBlock success"> 图例为携趣代理设置 </div>  <div class="tip inlineBlock success"> 图例为品易代理设置 </div> <div class="tip inlineBlock warning"> 品易代理不会自动更新IP白名单,如果是家宽使用,使用前每次都需要先去提取下APi,提取API后会自动更新本地IP才能使用 </div>  <div class="tip inlineBlock success"> 重启后显示如下图例就属于正常配置 </div>  # 青龙面板使用代理池 ## JavaScript脚本代理 <div class="tip inlineBlock success"> js脚本文档最简使用方式 安装依赖global-agent 青龙依赖管理里面-NodeJs-添加 `global-agent` 依赖 </div> ``` npm i global-agent ``` <div class="tip inlineBlock success"> 然后在你的要使用代理的js脚本顶部中加入以下代码 </div> ``` //js脚本开头加入这段代码 require("global-agent/bootstrap"); global.GLOBAL_AGENT.HTTP_PROXY="http://代理池docker地址:18080"; ```  ## JavaScript脚本全局代理 <div class="tip inlineBlock success"> 只需要在青龙的config.sh文件添加GLOBAL_AGENT_HTTP_PROXY、GLOBAL_AGENT_HTTPS_PROXY环境变量即可 </div> ``` //仅支持http代理 export GLOBAL_AGENT_HTTP_PROXY="http://代理池docker地址:18080" //支持http和https代理 export GLOBAL_AGENT_HTTPS_PROXY="http://代理池docker地址:18080" ``` ## Python脚本代理 ``` proxies = {"http":"http://ip:port","https":"http://代理池docker地址:18080"} requests.get(url,proxies=proxies) ``` ## Python全局脚本代理 <div class="tip inlineBlock success"> 只需要在青龙的config.sh文件添加http_proxy、https_proxy环境变量 </div> ``` //仅支持http代理 export GLOBAL_AGENT_HTTP_PROXY="http://代理池docker地址:18080" //支持http和https代理 export GLOBAL_AGENT_HTTPS_PROXY="http://代理池docker地址:18080" ``` <div class="tip inlineBlock success"> 青龙面板是使用node命令来执行js脚本的,因此我们可以设置node运行-r参数来达到全局代理的目的: </div> ``` node -r 'global-agent/bootstrap' your-script.js ``` <div class="tip inlineBlock warning"> 目前个人使用的面板版本是2.10.13,该版本面板并不提供设置运行参数的功能(高版本有),只能通过修改源码加入-r参数了。 </div> <div class="tip inlineBlock success"> 进入青龙面板容器的目录后,打开ql/shell/task.sh,部分源码如下: 修改node的运行命令,即加入-r参数,保存即可: </div> ``` #!/usr/bin/env bash ## 导入通用变量与函数 dir_shell=/ql/shell . $dir_shell/share.sh . $dir_shell/api.sh ## 选择python3还是node define_program() { local first_param=$1 if [[ $first_param == *.js ]]; then which_program="node -r 'global-agent/bootstrap'" elif [[ $first_param == *.py ]]; then which_program="python3" elif [[ $first_param == *.sh ]]; then which_program="bash" elif [[ $first_param == *.ts ]]; then which_program="ts-node-transpile-only" else which_program="" fi } ``` <div class="tip inlineBlock success"> 运行脚本,出现图例即表示代理成功 </div>  TG频道地址:[https://t.me/autoProxyPool](https://t.me/autoProxyPool) <div class="tip inlineBlock success"> 如果还有遇到问题,可留言探讨 </div> 最后修改:2023 年 01 月 08 日 © 允许规范转载 打赏 赞赏作者 微信 赞 8 如果觉得我的文章对你有用,别忘了点赞或赞赏,让我知道路上有你陪伴。
4 条评论
高版本青龙如何设置运行参数
学习学习
学习
学习学习