情况好鬼复杂
情况好鬼复杂
发布于 2023-01-12 / 151 阅读 / 0 评论 / 0 点赞

青龙面板使用代理池教程

一.前言

!!!前提需要有代理池,搭建代理池教程看文最后!!!
在某些情况下我们需要脚本通过代理来请求,尤其是容器部署在公网服务器上的时候,IP会出现被限制的情况。本文介绍了为青龙面板脚本网络请求设置代理的方法。

二.正文

青龙面板运行的脚本编程语言主要是Python和JavaScript,下面介绍这两种类型脚本的代理设置。

1.JavaScript设置代理

JavaScript脚本并不像Python那样默认使用系统代理变量,如果需要使用代理进行请求,那只能在代码中设置。

1.1安装global-agent依赖

dl11.png1.2局部代理

通过以上的介绍,可以知道js脚本要使用代理,只需要配置好环境变量,然后在该脚本开头加入一行代码:

//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环境变量,然后设置node运行参数:

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

青龙面板是使用node命令来执行js脚本的,因此我们可以设置node运行-r参数来达到全局代理的目的:

 node -r 'global-agent/bootstrap' your-script.js

目前个人使用的面板版本是2.10.13,该版本面板并不提供设置运行参数的功能(高版本有),只能通过修改源码加入-r参数了。

进入青龙面板容器的目录后,

docker exec -it 容器名 bash
vi /ql/shell/task.sh

修改node的运行命令,即在node后添加 -r ‘global-agent/bootstrap’,保存即可:

#!/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
}

2.Python设置代理

2.1局部代理

局部代理主要针对开发者来使用,如果是自己写的脚本,配置代理就是配置requests模块的代理,小白建议直接使用全局代理:

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

2.2全局代理

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

//仅支持http代理
export http_proxy="http://ip:port"
//支持http和https代理
export https_proxy="http://ip:port"

原文地址:https://blog.csdn.net/qq_44863814/article/details/128530031