Categories: trojan

尝鲜trojan-go命令面板——搭建强大多协议多用户能限速的网络平台

前言

无意间发现一个能限速的simple网络代理平台,可以实现创建多协议多用户的节点,目前平台还处于开发中,仅支持shadowsocks/trojan两种协议,openvpn、ikev2、WireGuar、V2ray还处于待开发中。
ss据作者版本描述可以限速,亲测无效,有可能是我的vps问题,欢迎大家测试并留言。

功能及搭建条件

平台支持如下功能:

  1. 创建、删除、查询VPN客户端配置
  2. 配置数据持久化
  3. 用户级限速
  4. 容器化部署
  5. 使用grpc api管理
  6. 使用http api管理
  7. 使用命令行工具(spctl)管理
  8. 使用grpc+protobuf与VPN对接,可自由插拔不同VPN
  9. prometheus数据指标采集
  10. 使用dashboard管理(待开发)

搭建条件
  VPS弱鸡一台(1核CPU、192/512M内存);域名一个(可有可无,有域名可以搭建trojan协议节点)
操作系统:CentOS7+,

一键安装

搭建按以下命令一行一行输入回车即可执行。这边默认已准备好具备ssl证书域名(www.yugogo.tk),申请部署证书不会的朋友参见此处充电。

安装依赖程序

#安装必要条件docker和dockercompose
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
#若是Centos系统需要手动启动,其他系统默认自启
systemctl start docker
#查看是否能用docker
docker run hello-world
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#检测docker-compose是否能用
docker-compose --version
#下载simple主程序
yum -y install wget
wget https://github.com/fregie/simple/releases/download/v1.0.2/simple-docker-compose.tar.gz
tar -xzf simple-docker-compose.tar.gz
cd docker

初始化配置

启动前修改相关文件配置:第一步骤:打开/root/docker/config.yaml 修改为host参数,改为自己的域名;若不启用trojan协议可以忽略以下第二、三步骤,点击跳过

grpc_addr: "0.0.0.0:4433"
grpc_gateway_addr: "0.0.0.0:4443"
prom_addr: "0.0.0.0:4442"
host: 你自己的域名
sqlite: /opt/simple/simple.db
services:
  - "adapter-trojan:10001"
  - "adapter-shadowsocks:10003"

第二步骤(非必选项):打开/root/docker/trojan-go/server.json 修改password、ssl、websocket等参数,见突亮代码行:

{
  "run_type": "server",
  "local_addr": "0.0.0.0",
  "local_port": 2443,
  "remote_addr": "www.bing.com",
  "remote_port": 80,
  "sqlite": "/opt/trojan/trojan.db",
  "password": [
      "用户1的密码(自定义)"
  ],
  "ssl": {
      "verify_hostname": true,
      "cert": "(ssl证书路径,给为自己的路径)如:/etc/ssl/certs/cert.crt",
      "key": "(ssl密匙路径)如:/etc/ssl/certs/private.key"
  },
  "mux": {
      "enabled": true,
      "concurrency": 4,
      "idle_timeout": 60
  },
  "websocket": {
      "enabled": true,
      "path": "/yugogo"
  },
  "api": {
      "enabled": true,
      "api_addr": "0.0.0.0",
      "api_port": 2552
  }
}

第三步骤(非必选项):若不启用trojan协议可以忽略。先拷贝ssl证书和密匙文件到/root/docker/trojan-go/命令如下:若没有ssl证书,参见页尾申请证书

cp /etc/ssl/certs/cert.crt ~/docker/trojan-go/
cp /etc/ssl/certs/private.key ~/docker/trojan-go/

打开/root/docker/docker-compose.yaml,修改ssl证书路径,见突亮代码行:

version: '3'

services: 
  trojan:
    image: fregie/trojan-go:latest
    ports: 
      - 2443:2443
      - 2552:2552
    volumes:
      - ./trojan-go/server.json:/etc/trojan-go/config.json
      - ./trojan-go/cert.crt:/etc/ssl/certs/cert.crt
      - ./trojan-go/private.key:/etc/ssl/certs/private.key
      - ./trojan-go/data:/opt/trojan

    networks:
      - simple

  adapter-trojan:
    image: fregie/adapter-trojan:latest
    depends_on:
      - trojan
    ports:
      - 10001:10001
    environment:
      ADDR: 0.0.0.0:10001
      TROJAN_ADDR: trojan:2552
    volumes: 
      - ./trojan-go/server.json:/server.json

    networks:
      - simple

  adapter-shadowsocks:
    image: fregie/adapter-shadowsocks:latest
    ports:
      - 10003:10003
      - 50000-50100:50000-50100
    environment:
      ADDR: 0.0.0.0:10003
      PORT_RANGE: 50000-50100

    networks:
      - simple

  simple:
    image: fregie/simple:latest
    depends_on:
      - adapter-shadowsocks
      - adapter-trojan
      - trojan
    ports: 
      - 4433:4433
      - 4444:4444
      - 4442:4442
    volumes:
      - ./config.yaml:/config.yaml
      - ./simple:/opt/simple

    networks:
      - simple

networks:
  simple:
    driver: bridge

启动主程序/spctl节点管理

不启动trojan则可以直接跳过上述第二、三步骤,直接按照以下命令启动主程序。

#启动主程序
docker-compose up -d
#安装命令管理工具cpctl
wget https://github.com/fregie/simple/releases/download/v1.0.2/spctl
chmod +x spctl
echo 'grpcAddr: 127.0.0.1:4433' > $HOME/.spctl
#查看可用协议
./spctl get protos
#创建ss节点
./spctl create session --proto ss --type url --name ss-01
#创建trojan节点
./spctl create session --proto trojan --type url --name trojan-01
#创建trojan限速12.5MB/s节点
./spctl create session --proto trojan --type url --name trojan-02 --limit 100
#创建trojan限速2MB/s节点
./spctl create session --proto trojan --type url --name trojan-03 --limit 16
#创建trojan限速500KB/s节点
./spctl create session --proto trojan --type url --name trojan-04 --limit 4
#查看ss-01节点信息
./spctl get session ss-01 --conf
#查看全部节点信息
./spctl get sessions
#删除指定节点信息
./spctl delete session ss-01

后记

simple注意事项

关闭重启trojan管理命令:docker-compose down && docker-compose up
trojan管理所有命令必须在/root/docker/目录下执行,否则不生效。
修改配置务必关闭再重启才能生效,命令如下:docker-compose down && docker-compose up -d
VPS若启用BBR网络加速,请使用相匹配的内核版,否则simple平台使用到的docker启动会失败。如搬瓦工的VPS只能使用原版BBR或魔改版BBR,BBR Plus不支持。
BBR网络加速命令:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

域名申请部署ssl证书

以下就是域名申请部署ssl证书的命令,需一行一行回车执行。注意:把www.yugogo.tk更换为自己的域名

cd /root
curl https://get.acme.sh | sh -s email=my@example.com
yum -y install socat
~/.acme.sh/acme.sh  --issue -d www.yugogo.tk   --standalone
~/.acme.sh/acme.sh --installcert -d www.yugogo.tk --key-file /root/certs/www.yugogo.tk.key --fullchain-file /root/certs/fullchain.crt
Little yu

View Comments

Share
Published by
Little yu