Debian8手动安装配置trojan服务端

现在网上能找到的一键脚本基本都要求debian9或以上版本才行,由于某些原因我并不打算升级debian,却想用上trojan,在一番折腾后发现debian8也是可以的。但是8以下的版本没有试过。

本文不包括nginx配置。

trojan工作原理简述

trojan先从正常网站(监听http 80端口)吸取流量,然后将流量作为伪装成加密的正常网站(https 443端口)释放给客户端(用户)。

安装trojan

  • 使用以下命令,会直接从github下载并安装最新版的服务端。如果不是root用户,请用sudo命令切换到root运行。(以下全部省略sudo)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

然后会得到几个重要的路径

1,配置文件路径

/usr/local/etc/trojan/config.json

2,启动文件路径

/etc/systemd/system/trojan.service

修改配置文件

输入以下命令

vi /usr/local/etc/trojan/config.json

修改config

这里需要修改的一般只有cert:和key:两行。分辨填入ssl证书和密钥文件的路径。

至于如何获得ssl证书和密钥可以参考另外一篇文章:freessl申请免费ssl证书

额外提几点:

1,修改“local_port”也是可以的,但是这样就没法伪装成常用的https流量。(常用https端口为443),这就违背了trojan最大的意图–伪装。

2,检查443端口有没有被其他进程占用,使用以下命令

 lsof -i:443

如果有发现443端口被占用,上述命令可以显示进程的PID,然后用kill+pid数字关掉进程。但这只是一时的,下次启动这个进程可能还是会继续占用443端口,最好的办法就是让那个进程使用其他端口。这里就不展开说了。

修改启动文件

输入以下命令

vi /etc/systemd/system/trojan.service

此图像的alt属性为空;文件名为微信截图_20200301211723.png

这就是debian8和debian9以上的区别!

将 

ExecStart=”/usr/local/bin/trojan” “/usr/local/etc/trojan/config.json”

替换成

ExecStart=/usr/local/bin/trojan -c “/usr/local/etc/trojan/config.json”

修改完后重新加载一下

systemctl daemon-reload

一些常用命令

启动

systemctl start trojan

重启

systemctl restart trojan

状态查询(如果有显示绿色active(running),就表示正常运行中)

systemctl status trojan

错误查询

journalctl -e -u trojan.service

开机自动启动

systemctl enable trojan

鸣谢

本文研究主要参考文章:

  1. https://trojan-tutor.github.io/2019/04/10/p41.html
  2. https://betterme.xin/posts/2019-12/trojan/
  3. https://www.v2rayssr.com/trojan-1.html
  4. https://github.com/trojan-gfw/trojan/issues/283

freessl申请免费ssl证书

以前在Let’s Encrypt申请的ssl证书都是三个月,操作也稍微有点麻烦。今天介绍另一个ssl证书申请的方法–freessl。

申请前准备

  1. 当然是必须要有个自己的域名!
  2. 下载“keymanager”,一个ssl证书管理工具。这里提供本文发布时最新的版本,如果之后有更新版本请百度即可。下载链接,(访问密码 :46ikx7)

操作步骤

1, 登录freessl.cn,无需注册,直接输入自己需要申请证书的域名。

2, 输入自己的邮箱,这样在证书快要到期的时候会发邮件提醒你。证书品牌是TrustAsia。验证类型可以选DNS或者文件验证,我个人觉得DNS快一点。

然后点击创建。

3, 会自动跳出让你打开先前安装的Keymanager。

4,在keymanager里自动生成公钥,返回浏览器继续操作。

5, DNS验证,需要你转到自己的域名解析商那里去添加一条TXT记录。

6, 这里以阿里云为例,其他都是差不多的。类型选TXT,其他照着我的抄(不是完全照搬,是把你显示的值填进去)。

7, 解析记录添加完回到freessl,但是别急着点击验证。先测试一下。

8, 检测结果只要有一个匹配即可。

9, 现在可以点击验证了。需要一些时间的。

10, 验证完了就会给你证书,保存到keymanager。

11, 在keymanager里选择需要保存的证书类型,nginx apache都有。然后就倒是导出,会下载到一个压缩包。

12, 以nginx为例,解压后会得到一个.crt文件(证书),一个.key文件(密钥)