GFW

Trojan一键搭建教程

什么是 Trojan

Trojan 是一个比较新的翻墙软件,它模仿了互联网上最常见的HTTPS协议,以诱骗 GFW 认为它就是 HTTPS,从而不被识别。所谓魔高一尺道高一丈,墙在不断往上砌,那工具也得跟着变了。

Trojan 工作在 443 端口,并且处理来自外界的 HTTPS 请求,如果是合法的 Trojan 请求,那么为该请求提供服务,否则将该流量转交给 WEB 服务器 Nginx,由 Nginx 为其提供服务。基于这个工作过程可以知道,Trojan 的一切表现均与 Nginx 一致,不会引入额外特征,从而达到无法识别的效果。当然,为了防止恶意探测,我们需要将 80 端口的流量全部重定向到 443 端口,并且服务器只暴露 80 和 443 端口,这样可以使得服务器与常见的 WEB 服务器表现一致。
项目地址: https://github.com/trojan-gfw

搭建前准备

域名申请

目前免费顶级域名我知道的只有 http://www.freenom.com/zh/index.html 可申请。另外,在一些域名商家也可购买几块钱一年的,我看阿里云现在有 6 元一年的,一年一换也不费事。

VPS 购买

还是建议 VULTR.COM,主要是因为在同价位 VPS 中比较稳定,IP 虽然日本经常有被墙的,但可以随时换啊,无论是换地区还是换 IP。论小时计费,如果用 IPV6 的话最低 $2.5/月,IPV4 的最低有美区 $3.5/月,我觉得还是比较合适的。

DNS 解析

免费解析网站有很多,首先域名申请机构一般都会解析,如腾讯云,阿里云,godaddy 等,还有:

  • cloudflare.com
  • dns.he.net
  • dnsever.com

将域名解析设置到购买的 VPS 对应 IP,并确认已成功。使用 cloudflare 的记得将 DNS only 灰掉。

一键安装 Trojan

系统建议:

  • Debian 9,10(推荐)
  • Ubuntu 14,16,18
  • CentOS 7,8

安装依赖包

安装依赖包(Debian/Ubuntu):

apt-get update && apt-get install sudo whiptail curl locales -y && sudo -i

安装依赖包(Centos):

yum update -y && yum install sudo newt curl -y && sudo -i

一键安装脚本

感谢 johnrosen1 提供的一键脚本:https://github.com/johnrosen1/trojan-gfw-script

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/johnrosen1/trojan-gfw-script/master/vps.sh)"
  1. 方向键选择,回车确定安装。提示 VPS 打开 80,443 端口,一般服务器都是开的吧,我还没碰到过没打开这两端口的。
  2. 可安装项目有很多,我是把下载相关的都取消了,没这方面需求。

  3. 输入已经解析成功的域名。
  4. 输入用户密码阵列两个,可输不同的密码,一样也可以。

  5. 输入访问 natdata 访问路径,随便填。
  6. 是否使用 API ,支持 cloudflare,aliyun,dnspod 等几家,当然也可以选否,不用去输入 key,更简单。


    如果是 cloudflare,在 My Profile 里选择 Global API Key:
  7. 回车开始自动安装,等一袋烟的功夫出结果。

  8. 访问域名会出现一个网站

注:更多请看 Github 详情。如域名已有证书,请放置于 /etc/trojan/trojan.crt 处,脚本会自动跳过域名解析验证,申请证书以及 acme.sh 安装

客户端及配置

Windows,Linux,MacOS

开发者有发布三大系统客户端:
https://github.com/trojan-gfw/trojan/releases
只说下 Windows 下使用,下载解压缩,如果启动 trojan.exe 报错,说明系统没有 C++ 运行环境,需要安装 VC++ 运行环境,压缩包里已经有了:VC_redist.x64.exe。
修改配置文件 config.json,很简单,就下面两个地方,本地端口默认 1080,可选修改:

{
    "run_type": "client",
    "local_addr": "127.0.0.1",
    "local_port": 1080,
    "remote_addr": "example.com,改为解析的域名",
    "remote_port": 443,
    "password": [
        "password1,改为服务器端安装时设置的第一密码"
    ],
    "log_level": 1,
    "ssl": {
        "verify": true,
        "verify_hostname": true,
        "cert": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
        "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
        "sni": "",
        "alpn": [
            "h2",
            "http/1.1"
        ],
        "reuse_session": true,
        "session_ticket": false,
        "curves": ""
    },
    "tcp": {
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "fast_open": false,
        "fast_open_qlen": 20
    }
}

目前 Trojan 客户端没有全局代理而且仅支持 socks5,因此得配合 Chrome 的 SwitchOmeaga 插件或者用 V2rayN 客户端把 socks5 转换成 http 使用。

  1. 如果使用 Chrome 浏览器,可在 SwitchOmeaga 新增情景模式,代理协议填入 SOCKS5,代理伺服器填 127.0.0.1,端口填 1080 或者配置已经修改的端口。
  2. 在 V2rayN 客户端点击服务器->添加 SOCKS 服务器->填写服务器地址:127.0.0.1 端口:1080。即可实现国内分流了。

Android

下载安装,填上域名,密码就可以使用了,目前没过多选项,而且仅支持一个节点连接:
https://github.com/trojan-gfw/igniter/releases
支持 IPV6 和大陆白名单,不过我发现大陆白名单的使能开关需要关闭再打开一次才起作用。
如果运营商支持 IPV6,可在 DNS 解析设置 IPV6 ,我这没法测试,不知道速度会不会更好。

iOS

因为已经很多年没用过 iOS 了,所以就知道目前 Shadowrocket 俗称小火箭最新版是支持 Trojan 的。

路由器

目前仅有 Openwrt 系统有 Trojan 插件,可根据路由器型号选择刷机。

后记

因为手动安装复杂很多,涉及到的知识面也更多,所以不想写了,一键安装确实方便了我这样的懒汉。
Trojan 似乎和 V2Ray+WS+TLS 机理差不多,从安全性来说两者稍有点差异但不大,而速度 Trojan 更有优势。就我测试的美国主机,本身速度就比较慢,V2Ray+WS+TLS 平均下载 1M 左右,最高 1.5M,而 Trojan 平均下载速度 2M 以上,最高可以到 3.5M。

推荐目前我觉得还算便宜(最低 $3.5/月),服务还算稳定可靠的 VPS

使用推荐链接,新用户充值有奖励,谢谢! www.vultr.com/?ref=7342510

参考:
Trojan-GFW --一把通往自由互联网世界的万能钥匙:https://www.johnrosen1.com/trojan/
自建梯子教程 --Trojan版本:https://trojan-tutor.github.io/2019/04/10/p41.html

微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

回复

  1. VInce VInce
    Chrome 79

    为什么安装一键脚本的时候提示 (22) The requested URL returned error: 404 Not Found

    1. harry harry
      Chrome 80 10

      GitHub 那边的命令文件更新了,名字改了

  2. phoenix phoenix
    Chrome 79 10

    可以提供一下K2的opemwrt的固件含有trojan链接吗?谢谢

    1. harry harry
      Chrome 80 P

      lean的openwrt源码是支持的,恩山有人编译了刷k2用了,因为我现在手上没有k2也不好验证,你试试看这个
      https://www.right.com.cn/forum/thread-1655944-1-1.html

  3. CheneyChen CheneyChen
    Chrome 79 10

    你好

    我是家用VPS搭建。80,443端口被屏蔽掉了,请问如何更换端口?

    1. harry harry
      Chrome 80 P

      你是在国外是吧,如果家里的端口被封那就没招了,trojan本身就是通过443端口伪装流量的,改端口没意义。
      所以还是找海外机房吧

  4. 牧羊人 牧羊人
    Chrome 77 10

    小火箭简直是全能哇~啥都能敢,科是我没法升级到新版本

  5. Jeason Jeason
    Chrome 63 7

    感谢。哪里有打赏,我想感谢一下你。

    1. harry harry
      Chrome 79 P

      不客气,能帮到就好

  6. joki joki
    QQ 10 10

    谢谢分享,拯救我的bwg,用v2ray速度只有2m,现在用trojan能看4k了。谢谢。。。

  7. Sam.Z Sam.Z
    Firefox 72 10

    这么明文写,小心域名直接黑名单哦~ 不过,给你点赞~ 我还是一直用的free梯子

    1. harry harry
      Chrome 79 10

      反正没放国内,访问量也不大还好了。
      现在还能找到免费的?以前我是一直薅 google 的羊毛,但也买一个备用,以防万一

      1. Sam.Z Sam.Z
        Firefox 72 10

        嗯,这个免费的我用了有1年多,靠淘宝和其他APP推荐买东西回流量,相当于别人拿收益然后给你流量用,而你买东西是本来就要买的,所以持久。

This is just a placeholder img.