proxy.php 1.6 KB
<?php

error_reporting(E_ALL);

ini_set("display_errors","off");



/**
 * TODO:: 这个文件请用root执行
 * 这个文件请加ip白名单访问
 */


function sign(){
    return md5('fob.guaidong007'.date('ym').$_REQUEST['rand_str'].'=');
}
if($_SERVER['AUTH_VERIFY'] != sign()){
    http_response_code(500);
    echo 'auth error';
    exit(1);
}


$body = file_get_contents("php://input");

$body = base64_decode($body);

$body = json_decode($body, true);

define('CONF_FILNAME','/www/server/panel/vhost/nginx/tcp/mail.conf');


/**
 * 保存配置
 * @param $body
 * @return int
 * @author:dc
 * @time 2025/4/14 22:54
 */
//server {
//    listen 10087;  # 监听的端口
//    proxy_pass smtp.gmail.com:465;
//}
function saveconfig($body){
    $config = [];

    foreach ($body['proxys'] as $port=>$domain){
        $config[] = "server {
    listen {$port};
    proxy_pass {$domain};
}";
    }

    $config = implode("\n",$config);

    if(@file_put_contents(CONF_FILNAME,$config)){
        return 200;
    }

    return 500;

}

/**
 * 重启nginx服务
 * @return int
 * @author:dc
 * @time 2025/4/14 22:54
 */
function reload(){
    exec("nginx -s reload",$ret,$code);
    return $code===0?200:500;
}

/**
 * 检查端口监听状态
 * @param $body
 * @author:dc
 * @time 2025/4/14 22:53
 */
function check_prot($body){
    $ports = $body['prots'];
    foreach ($ports as $port){
        exec("netstat -ano | grep :$port",$ret,$code);
        echo $port;
        echo ":";
        if(count($ret)>=1){
            echo "1";
        }else{
            echo "0";
        }
        echo "\n";
    }
}


echo call_user_func($body['action'],$body);


return 0;