Awesome Open Source
Awesome Open Source

TSP & Trojan-Go / V2Ray 容器化管理部署脚本

GitHub top language GitHub release (latest by date) FOSSA Status Codacy Badge Chat on Telegram

基于 Docker 容器架构的 Trojan-Go/VLESS/VMess-TCP/WS-TLS 分流部署&管理脚本

本方案采用 TSP 进行 TLS 前置分流,后端使用 Trojan-Go、V2Ray 容器与 WatchTower、Portainer 维护组件配合,实现快速部署、易用易维护的极致体验。

特别提示 在脚本部署过程中,除引用必要的官方源外,其他所有配置操作、数据处理皆为本地执行无任何外部连接参与数据交换

使用简介

  1. 安装 Wget(当检测到已经安装时,会跳过,请继续执行第二步)

Centos 7+

command -v wget >/dev/null 2>&1 || sudo yum -y install wget

Debian 9+ | Ubuntu 16+

command -v wget >/dev/null 2>&1 || sudo apt -y install wget
  1. 下载并执行脚本
wget -N --no-check-certificate -q https://raw.githubusercontent.com/h31105/deployX.sh/master/deploy.sh && \
chmod +x deploy.sh && bash deploy.sh

提醒 由于 1.10+ 版本改动较多,使用 1.00 以前版本脚本部署的环境,与新版脚本存在配置兼容性问题,请在脚本升级后,根据提示重新安装 TLS-Shunt-Proxy 来完成新版本的配置适配。(更新内容详见 Release 页面)

    ——————————————————————部署管理——————————————————————
    1.  安装 TLS-Shunt-Proxy(网站&自动管理证书)
    2.  安装 Trojan-Go TCP/WS 代理(容器)
    3.  安装 V2Ray TCP/WS 代理(容器)
    4.  安装 WatchTower(自动更新容器)
    5.  安装 Portainer(Web管理容器)
    ——————————————————————配置修改——————————————————————
    6.  修改 TLS 端口/域名
    7.  修改 Trojan-Go 代理配置
    8.  修改 V2Ray 代理配置
    ——————————————————————查看信息——————————————————————
    9.  查看 配置信息
    10. 查看 分享/订阅 链接
    ——————————————————————杂项管理——————————————————————
    11. 升级 TLS-Shunt-Proxy/Docker 基础平台
    12. 卸载 已安装的所有组件
    13. 安装 4合1 BBR 锐速脚本
    14. 运行 SuperSpeed 测速脚本
    0.  退出脚本 
    ————————————————————————————————————————————————————   

协议、CDN 及客户端支持状况

Protocol Transport MUX Direct CDN Qv2ray① Shadowrocket Clash v2rayN(G)
VLESS TCP-TLS
VLESS WS-TLS
VMess TCP-TLS
VMess WS-TLS
Trojan② TCP-TLS
Trojan-Go TCP-TLS
Trojan-Go WS-TLS

✅完全支持 ❌不支持

Qv2Ray 客户端需根据协议类型安装对应插件及核心,才能正常使用。

Trojan-Go 兼容原版 Trojan 协议。

可同时部署 Trojan-Go 和 V2Ray 服务端,最大支持共用分流 2 种 WS-TLS 和 2 种 TCP-TLS(协议类型按需自由组合)

部署建议

脚本部署的完整架构拓扑如下图所示:

  • TLS-Shunt-Proxy 负责证书全自动管理和网站服务(HTTPS 默认 443 HTTP 80 自动跳转)

  • Trojan-Go 容器化部署 (支持 WebSocket)

  • V2Ray 容器化部署(VLESS/VMess 协议)

  • 容器的镜像由 WatchTower 监控并自动更新(建议安装)

    *WatchTower 无需额外配置,已配置为自动更新容器并清理过期镜像

  • Portainer 基于 Web 的 Docker 管理服务(可选)

    *Portainer 安装后,请尽快访问管理地址设置管理帐号和密码。HTTP://ServerDomainName:9080 (非 HTTPS)

  • 由于 TSP 的 SNI 分流特性,若需配置 CDN 建议使用 A 记录方式,CNAME 方式不被支持。

    CDN 配置:域名 -- A 记录 --> VPS IP #这里的域名与脚本部署时填写的 TLS 域名相同

注意 本脚本为单用户配置,部署后可以自行按需修改代理配置文件内容,但修改后不要使用脚本菜单中的修改选项,否则将会重置相关配置信息。

注意 请根据部署情况调整开启防火墙端口,例如 HTTP 80、9080 及 HTTPS 443 端口。

开启 CDN 加速需要注意

  1. 仅需在直连线路状况不太理想的情况下开启,否则开启 CDN 并不一定会带来加速效果。

  2. CDN 加速开启后,TSP 所管理的证书可能无法完成自动续签,应对办法:

    *请在证书过期前 30 天内,手动暂停 CDN 加速后重启 TSP 完成证书续签。

    #重启 TSP 触发证书续签
    systemctl restart tls-shunt-proxy
    #查看日志,观察证书续签结果
    journalctl -u tls-shunt-proxy.service --since today
    

    *如果您的域名解析服务支持分线路设置 DNS 记录(例如 Aliyun、DNSpod),可通过设置境外线路解析为 VPS IP,其他线路解析为 CDN 记录来解决此问题。

  3. 由于 CDN 仅支持 加速 WebSocket 模式代理,在开启 CDN 加速后,为确保所有模式代理均可正常使用,客户端需要根据脚本生成的配置信息相应调整

    通过客户端服务器地址的不同配置,来控制是否通过 CDN 加速:

    *TCP 模式代理客户端(不通过 CDN 加速)服务器地址 (ServerAddress) 设置为VPS IP 地址任意指向该 IP 地址的域名(其他配置不变)

    *WebSocket 模式代理客户端(通过 CDN 加速)服务器地址 (ServerAddress) 设置为域名任意支持 Anycast 的 CDN 节点 IP(其他配置不变)

日志查看

TLS-Shunt-Proxy 日志查看

  • 查看所有日志:journalctl -u tls-shunt-proxy.service
  • 查看当天日志:journalctl -u tls-shunt-proxy.service --since today

容器日志查看

  • 查看 Trojan-Go 日志

    最近 30 分钟日志:docker logs --since 30m Trojan-Go

  • 查看 V2Ray 日志

    最近 100 行日志:docker logs --tail=100 V2Ray

  • 查看 WatchTower 日志

    指定时间后日志:docker logs --since="2020-09-01T10:10:00" WatchTower

  • 查看 Portainer 日志

    指定时间段日志:docker logs --since="2020-09-05T10:10:00" --until "2020-09-05T12:00:00" Portainer

自定义配置以及容器重启

在某些情况下,我们可能需要自定义修改代理配置文件(非脚本方式修改配置),我们需要在修改后,重启代理容器使配置生效。

例如:重启 V2Ray 容器:docker restart V2Ray

注意 请确认您对 TLS-Shunt-Proxy 以及 Trojan-Go/V2Ray 代理的配置方式、工作原理足够了解,否则不要自定义修改相关配置文件。

配置文件

  • WebSite:/home/wwwroot/
  • TLS-Shunt-Proxy:/etc/tls-shunt-proxy/config.yaml
  • Trojan-Go:/etc/trojan-go/config.json
  • V2Ray:/etc/v2ray/config.json

致谢

Stargazers over time

Stargazers over time


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (9,848
v2ray (122
shell-script (96
cdn (76
trojan (73
vmess (33
vless (21
portainer (19

Find Open Source By Browsing 7,000 Topics Across 59 Categories