笔记:部署trojan(靠运气)
本文最后更新于:2020-02-24
最近GFW是年底冲业绩吗,网络波动频繁,都不能愉快地刷推特了,被迫试试之前看过但觉得有点麻烦的trojan
。
2019/12/25 更新:太难了,运气好搭成功一次,结果reboot就挂了
2019/12/26 更新:又试了试,勉强能用了,搞不懂
项目地址:trojan - Github
与大部分代理走强加密、带混淆的思路不同,trojan
伪装成常见的HTTPS
流量
既然要伪装HTTPS
,就需要一个域名和证书
对于我这样的小白来说,这些步骤里最难的是前期准备工作,最后配置trojan
反而是最简单的
这次部署参考了七八篇教程,其中比较有用的:
Trojan Documentation
Trojan搭建教程 - Scaleya
自建梯子教程 –Trojan版本
Trojan:一个伪装成HTTPS的代理工具 - 荒岛
Certbot instructions - Let’s Encrypt
搭建步骤:
- 申请域名
- 解析DNS
- 生成证书
- 安装配置trojan
要求:
一台VPS,要开放80、443端口
申请域名
这个简单,网上免费的、付费的都有
知乎上这个回答有一定参考价值:现在去哪里买 .com 域名最便宜? - 范进的回答 - 知乎
域名比价网站:domcomp
找个便宜的或者喜欢的域名就可以了
解析DNS
这里我是用 CloudFlare ,免费版完全ok
- 第一步,申请账号,完成之后它会让你添加域名,把你刚才申请的域名填上去
- 第二步,要使用CloudFlare的服务,需要去你的域名后台更改
nameservers
改成CloudFlare指定的,如下图(可能每个人的都不一样) (更改之后需要一段时间生效,休息一下(我这里大概不到10分钟就ok了 - 第三步,在CloudFlare的面板里,设置你的域名解析
上面一排设置,点DNS
,Add record
,添加一条A Type
记录Name
为你的域名,Content
是做代理的VPS主机IP,后面的Proxy status
那个小云朵一定要设置灰色的DNS only
,只解析DNS就可以(橙色云朵的话trojan会有问题
这样,解析DNS就完成了
生成证书
目前为止,虽然可以连通,但还是HTTP
,需要在VPS上生成一张证书才能升级HTTPS
这里使用 Let’s Encrypt 的证书,因为这个证书开源免费,可以自己签
用到的工具是 Certbot,这部分完全不懂,全靠 Trojan搭建教程 - Scaleya 和 Certbot instructions - Let’s Encrypt 这两个教程,一步步来
添加Certbot源
1
2
3
4
5sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update安装
1
sudo apt-get install certbot
Certbot运行类型?(它问你要给什么服务上证书,五个选项里我只见过且仅限于见过nginx,完全不清楚选哪个,跟着教程选了nginx,还好能用
1
sudo certbot certonly --nginx
选择只生成证书
敲完这个命令它会问你邮箱多少、同意我家的用户协议吗、能订阅一下我家的新闻吗,最后问要给哪个域名上证书啊,一一回答就好了然后
certbot
会告诉你:真棒,你的证书已经签好了
仔细看输出,你得到两个pem文件,一个证书,一个key1
2/etc/letsencrypt/live/domain/fullchain.pem
/etc/letsencrypt/live/domain/privkey.pem记住key是私钥,不能给别人看
记下来这两个文件的路径,一会要用到Certbot instructions - Let’s Encrypt 这个教程后面还让你测试一下
Certbot
自动刷新证书的功能是否正常,因为证书有保质期的,过期作废1
sudo certbot renew --dry-run
看输出有没有问题,一般应该ok
Certbot instructions - Let’s Encrypt 这个教程
真长最后还跟你说:让我们确认一下证书效果怎么样吧
你可以去 SSL Labs 输入你的域名测试一下,all green,ok
有点啰嗦,但终于完了
下一步,安装trojan
2019/12/25 更新
不知道VPS上什么时候装了nginx,那就顺便上个证书吧
Certbot运行类型那里,敲sudo certbot --nginx
按照提示操作
完成后,打开浏览器访问一下,确实变成HTTPS
了,地址栏的小锁点开看看,证书由Let’s Encrypt
确认,ok
2019/12/26 更新
sudo certbot certonly --standalone
似乎也可以,如果只需要证书的话
安装配置trojan
官方安装指南 给了各个系统的安装方法
有两个快速安装脚本
1 |
|
随便安一个,脚本显示如下
1 |
|
它说config.json
在这个路径:/usr/local/etc/trojan/config.json
nano /usr/local/etc/trojan/config.json
打开它,大概内容应该是这样:
1 |
|
更改如下
- 第5行,
127.0.0.1
换成你的域名,例如这样:"remote_addr": "996.icu",
- 第7行,设置
password
,我只用一个密码,就删了第8行,改password2
- 第13、14行,证书和key,分别改成之前生成的证书和key的路径
改好之后敲个trojan
命令,测试配置文件有没有问题,有错纠错
systemctl start trojan
启动trojan
日常使用命令:
1 |
|
终于,部署完成
使用
在项目的 releases 界面找对应系统的软件包,下载下来,改一下config.json
的remote_addr
、password
,和服务器的参数保持一致
双击.exe
,即可运行
完结撒花
(经过两天的使用,发现trojan
相较于v2ray
速度上并没有显著的提升(至少在我这里
2019/12/25 更新
reboot一下VPS,v2ray和trojan都炸了…
v2ray改了改配置文件,只保留最精简的配置,活过来了
trojan瞎折腾两小时,还是救不过来
macOS: [FATAL] fatal: config.json: cannot open file 里的./trojan config.json
命令也没有用
1 |
|
看文件权限都是755,是什么问题呢?
(trojna一周体验卡
(为什么搬瓦工的Snapshots
功能reboot一下就炸了两个服务呢?奇怪
半天后更新
又折腾了几个小时,在另一台VPS上装也失败了,卡在Certbot
那里
看来上面成功的那次纯粹是运气好
放着吧,以后有机会再研究这个trojan
2019/12/26 更新
又试了一下
把
config.json
改成777
,运行trojan
1
2
3Welcome to trojan 1.13.0
[2019-12-26 09:38:29] [FATAL] fatal: bind: Address already in use
[2019-12-26 09:38:29] [FATAL] exiting. . .关闭
nginx
,再次运行1
2
3Welcome to trojan 1.13.0
[2019-12-26 09:40:02] [FATAL] fatal: use_private_key_file: key values mismatch
[2019-12-26 09:40:02] [FATAL] exiting. . .上网查,不太懂,试着把
config.json
里的证书从fullchain.pem
改成cert.pem
,运行成功了…nginx
和trojan
冲突,只好不用nginx
了(所以之前是怎么一块用的呢?搞不懂把
config.json
里的证书从cert.pem
又改回fullchain.pem
,运行trojan
也成功了把
config.json
改成755
,也能运行(所以之前的
cannot open file
和key values mismatch
是什么鬼
就这样,能用了
搬瓦工这个
Snapshots
功能太搞心态了
本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0协议 。转载请注明出处~