需要使用到的 GitHub 仓库:

  1. clash-for-linux
  2. bot-on-anything

应用运行在 腾讯云服务器 上,使用的操作系统是 OpenCloudOS (兼容 CentOS 8)

# 在 Linux 服务器上启动代理

  1. 基本安装步骤参考 clash-for-linux 项目的使用说明
  2. 编辑 .env 文件时, CLASH_URL 的值应为自己 Clash订阅链接的地址
查看Clash日志

查看Clash错误日志

  1. 如果启动后出现 unsupported rule type RULE-SET 错误,可以参考如下 issue:
  • 关于启动后 clash 日志报 unsupported rule type RULE-SET 错误,检查服务端口发现 9090 端口没有应用
  • 显示成功开启代理,后台查询不到
  1. 进入 Clash Dashboard ,配置不同选择的节点
进入Clash Dashboard

Clash Dashboard界面

# 部署 bot-on-anything 程序

注意:下面仅以个人订阅号的使用为例

  1. 基本安装步骤参考 bot-on-anything 项目的使用说明
  2. 以下是关于在 个人订阅号启用服务器配置 的一些说明
  • 服务器地址 (URL) 格式为 http://<IP>:<port>/wx , 由于服务器地址 (URL) 只能配置 80/443 端口,但我们启动的 python 程序默认监听 8088 端口,因此需要通过 nginx 做转发
nginx配置如下
/etc/nginx/nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }
}
/etc/nginx/conf.d/bot-on-anything.conf
server {
  listen    80 default_server;
  listen    [::]:80 default_server;
  server_name  <xxx.xxx.xxx.xxx>; # 填写自己主机的 IP 地址 
  location /wx {
    proxy_pass  http://127.0.0.1:8088;
    proxy_read_timeout  300;
    proxy_connect_timeout   300;
    proxy_redirect  off;
    proxy_set_header    X-Forwarded-Proto $scheme;
    proxy_set_header    Host          $http_host;
    proxy_set_header    X-Real-IP     $remote_addr;
  }
  error_page 404 /404.html;
  location = /40x.html {
  }
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  }
}
  • 令牌 (Token) 为自己手动输入,并满足格式要求即可
  • EncodingAESKey 点击随机生成即可
  • 消息加解密方式处于简单的考虑选择 明文模式 即可,如有需要可以自行根据需求修改
  1. 将应用程序挂到后台运行
    进入项目目录执行如下命令
# 通过 nohup 命令将 python 应用程序挂到后台运行
# 并将输出的日志重定向到当前用户目录下的 bot.log 文件中
# 关于 2>&1 的说明: 
# 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 bot.log 文件中
# 0 – stdin (standard input,标准输入)
# 1 – stdout (standard output,标准输出)
# 2 – stderr (standard error,标准错误输出)
nohup python3 app.py > ~/bot.log 2>&1 &
更新于 阅读次数