健康上网

Trojan-Go安装部署

温馨提示:本文最后更新于2021-04-26 08:02:08,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 4月26日 · 2021年 本文2457个字,预计阅读7分钟 16637次已读

一、Trojan-Go介绍

原文链接:https://www.dqzboy.com

Trojan-Go是使用Go语言实现的完整的Trojan代理,和Trojan协议以及原版的配置文件格式兼容。 支持并且兼容Trojan-GFW版本的绝大多数功能,并扩展了更多的实用功能。 Trojan-Go的的首要目标是保障传输安全性和隐蔽性。 在此前提下,尽可能提升传输性能和易用性。

二、Trojan-Go原理

1、为什么Shadowsocks容易遭到封锁

防火墙在早期仅仅只是对出境流量进行截获和审查,也即被动检测。Shadowsocks的加密协议设计使得传输的数据包本身几乎没有任何特征,看起来类似于完全随机的比特流,这在早期的确能有效绕过GFW。

目前的G原文链接:https://www.dqzboy.comFW已经开始采用主动探测的方式。具体来说,当GFW发现一个可疑的无法识别的连接时(大流量,随机字节流,高位端口等特征),将会主动连接这个服务器端口,重放之前捕获到的流量(或者经过一些精心修改后重放)。Shadowsocks服务器检测到不正常的连接,将连接断开。这种不正常的流量和断开连接的行为被视作可疑的Shadowsocks服务器的特征,于是该服务器被加入GFW的可疑名单中。这个名单不一定立即生效,而是在某些特殊的敏感时期,可疑名单中的服务器会遭到暂时或者永久的封锁。该可疑名单是否封锁,可能由人为因素决定。

2、Trojan如何绕过GFW

与Shadowsocks相反,Trojan不使用自定义的加密协议来隐藏自身。相反,使用特征明显的TLS协议(TLS/SSL),使得流量看起来与正常的HTTPS网站相同。TLS是一个成熟的加密体系,HTTPS即使用TLS承载HTTP流量。使用正确配置的加密TLS隧道,可以保证传输的

  • 保密性(GFW无法得知传输的内容)
  • 完整性(一旦GFW试图篡改传输的密文,通讯双方都会发现)
  • 不可抵赖(GFW无法伪造身份冒充服务端或者客户端)
  • 前向安全(即使密钥泄露,GFW也无法解密先前的加密流量)

对于被动检测,Trojan协议的流量与HTTPS流量的特征和行为完全一致。而HTTPS流量占据了目前互联网流量的一半以上,且TLS握手成功后流量均为密文,几乎不存在可行方法从其中分辨出Trojan协议流量。

对于主动检测,当防火墙主动连接Trojan服务器进行检测时,Trojan可以正确识别非Trojan协议的流量。与Shadowsocks等代理不同的是,此时Trojan不会断开连接,而是将这个连接代理到一个正常的Web服务器。在GFW看来,该服务器的行为和一个普通的HTTPS网站行为完全相同,无法判断是否是一个Trojan代理节点。这也是Trojan推荐使用合法的域名、使用权威CA签名的HTTPS证书的原因: 这让你的服务器完全无法被GFW使用主动检测判定是一个Trojan服务器。

因此,就目前的情况来看,若要识别并阻断Trojan的连接,只能使用无差别封锁(封锁某个IP段,某一类证书,某一类域名,甚至阻断全国所有出境HTTPS连接)或发动大规模的中间人攻击(劫持所有TLS流量并劫持证书,审查内容)。对于中间人攻击,可以使用Websocket的双重TLS应对,高级配置中有详细讲解。

三、Trojan-Go部署

1、准备工作

  1. 首先我们去腾讯云或者万网申请一个域名,申请域名主要是为了保护我们的VPS真实服务器IP地址,申请的域名我们需要由Cloudflare托管,然后使用Cloudflare免费CDN功能实现隐藏真实IP;
  2. 注:此步骤可选;域名有了之后,我们现在需要申请一个SSL证书,后面部署Trojan-Go时我们选择使用自己的证书,申请证书可以到腾讯云或者阿里云申请免费的SSL证书(免费的申请有次数限制);如果不想申请的话,也可以在部署Trojan-Go时选择【1】;
  3. 查看下面链接中的文章,为自己的VP文章来源(Source):浅时光博客S开启文章来源(Source):浅时光博客BBR,加速VPS访问。

BBR加速国外VPS访问

2020-2-5 0

文章来源(Source):浅时光博客
注:我们这里先通过Cloudflare实现域名解析,暂时先不使用CDN功能,等Trojan-Go部署完成后,我们再开启CDN功能。
  • 下图为本文的示例,域名地址更改为自己申请的,并按下图所示进行域名解析
Trojan-Go安装部署-浅时光博客

2、执行脚本

  • 上面我们添加完域名解析记录之后,接下来就需要安装部署Trojan-Go了,这里我们使用Jrohy大神开源的Trojan-Go一键部署面板实现Trojan-Go的部署;
  • 安装更新脚本下载(后期的更新也使用该条命令即可)
[root@dqzboy-vps ~]# source <(curl -sL https://git.io/trojan-install)
Trojan-Go安装部署-浅时光博客
Trojan-Go安装部署-浅时光博客
Trojan-Go安装部署-浅时光博客
Trojan-Go安装部署-浅时光博客
如果需要卸载,则执行下面的命令
source <(curl -sL https://git.io/trojan-install) --remove

3、访问页面

  • 上面安装完成后,我们就可以使用提前解析好的域名进行访问了,注意是https
Trojan-Go安装部署-浅时光博客
Trojan-Go安装部署-浅时光博客

4、修改配置

  • 添加以下代码,开启CND和多路复用支持
[root@dqzboy-vps ~]# vim /usr/local/etc/trojan/config.json
},	//下面的为新增的内容,这里必须加一个英文的逗号这是json格式的写法
    "websocket": {
        "enabled": true,
        "path": "/",	//ws路径,自定义
        "host": "你的域名"	//域名地址
    },
    "mux": {	//多路复用
        "enabled": true,
        "concurrency": 8,	//单个TLS隧道可承载的最大连接数,默认为8
        "idle_timeout": 60	//空闲超时时间
    }

四、Trojan-Go客户端

Trojan-QT5 (支持WIN/MACOS)

因为此Trojan-QT5 项目已经停更,所以只有1.4.0版本的供大家下载。



本文作者:浅时光
原文链接:https://www.dqzboy.com/4486.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
转载时请以超链接形式标明文章原始出处和作者信息

0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

    本站已稳定运行: | 耗时 0.227 秒 | 查询 13 次 | 内存 10.01 MB