上网科学Trojan-Go

一. 简介

Trojan-Go是使用Go语言实现的完整的Trojan代理,和Trojan协议以及原版的配置文件格式兼容。支持并且兼容Trojan-GFW版本的绝大多数功能,并扩展了更多的实用功能。

Trojan-Go支持并且兼容原版Trojan的绝大多数功能,包括但不限于:

*TLS/SSL隧道传输

  • 透明代理 (NAT模式,iptables设置参见这里)
  • UDP代理
  • 对抗GFW被动/主动检测的机制
  • MySQL数据库支持
  • 流量统计,用户流量配额限制
  • 从数据库中的用户列表进行认证

同时,Trojan-Go还扩展了更多高效易用的功能特性:

  • 简易模式,快速部署使用
  • Socks5/HTTP代理自动适配
  • 基于tproxy的透明代理(TCP/UDP)
  • 多平台和多操作系统支持,无特殊依赖
  • 基于多路复用(smux)降低延迟,提升并发性能
  • 自定义路由模块,可实现国内直连/广告屏蔽等功能
  • Websocket传输支持,用于实现CDN流量中转(基于WebSocket over TLS/SSL)和对抗GFW中间人攻击
  • 自动化HTTPS证书申请,从Let’s Encrypt自动申请和更新HTTPS证书
  • TLS指纹伪造,绕过GFW针对TLS Client Hello的特征识别
  • 基于gRPC的API支持,支持动态用户管理和流量速度限制等
  • 可插拔传输层,可将TLS替换为其他协议或明文传输。同时有完整的Shadowsocks混淆插件支持
  • 支持对人类更友好的YAML配置文件格式

二. 准备工作

1.VPS 一台(非生成环境)重置好干净的系统,新选配VPS可以看我之前的文章。
2.准备好一个域名,后台配置解析域名到上述VPS的IP,脚本运行时会需要填写域名。

三. 安装脚本

Trojan-Go由p4gefau1t开发,并配有详细的文档。有一定动手能力的看文档部署即可。

这里我选择网友phlinhng的安装脚本安装,脚本支持V2RAY TCP+TLS+WEB / WSS+CDN and Trojan-go的配置。

1
bash <(curl -sL https://raw.githubusercontent.com/phlinhng/v2ray-tcp-tls-web/master/install.sh) && v2script

上面的命令将下载脚本,将其保存到/ usr / local / bin / v2script,使其可执行并启动。要在安装后再次运行该脚本,只需使用以下命令:

1
v2script

四. 客户端
理论上Trojan-Go和Trojan兼容,客户端可以通用,详细见上网科学Trojan