前言
无意间发现一个能限速
的simple网络代理平台,可以实现创建多协议多用户的节点,目前平台还处于开发中,仅支持shadowsocks/trojan两种协议,openvpn、ikev2、WireGuar、V2ray还处于待开发中。
ss据作者版本描述可以限速,亲测无效,有可能是我的vps问题,欢迎大家测试并留言。
功能及搭建条件
平台支持如下功能:
- 创建、删除、查询VPN客户端配置
- 配置数据持久化
- 用户级限速
- 容器化部署
- 使用grpc api管理
- 使用http api管理
- 使用命令行工具(spctl)管理
- 使用grpc+protobuf与VPN对接,可自由插拔不同VPN
- prometheus数据指标采集
- 使用dashboard管理
(待开发)
搭建条件
VPS弱鸡一台(1核CPU、192/512M内存);域名一个(可有可无,有域名可以搭建trojan协议节点)
操作系统:CentOS7+,
一键安装
搭建按以下命令一行一行输入回车即可执行。这边默认已准备好具备ssl证书域名(www.yugogo.tk),申请部署证书不会的朋友参见此处充电。
安装依赖程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#安装必要条件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协议可以忽略以下第二、三步骤,点击跳过。
1 2 3 4 5 6 7 8 |
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等参数,见突亮代码行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
{ "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证书,参见页尾申请证书
1 2 |
cp /etc/ssl/certs/cert.crt ~/docker/trojan-go/ cp /etc/ssl/certs/private.key ~/docker/trojan-go/ |
打开/root/docker/docker-compose.yaml
,修改ssl证书路径,见突亮代码行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
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则可以直接跳过上述第二、三步骤,直接按照以下命令启动主程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#启动主程序 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网络加速命令:
1 |
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更换为自己的域名
1 2 3 4 5 |
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 |
大佬 学到了 谢谢
谢谢分享,devpn.store 有提供trojan和vpn服务,7天免费试用。