trojan教程

trojan简介

trojan是近两年兴起的网络工具,与强调加密和混淆的SS/SSR等工具不同,trojan将通信流量伪装成互联网上最常见的https流量,从而有效防止流量被检测和干扰。在敏感时期,基本上只有trojan和 v2ray伪装 能提供稳如狗的体验。trojan官方项目地址是 https://github.com/trojan-gfw,文档官网:https://trojan-gfw.github.io/trojan

v2ray相比,trojan有如下特点:

  1. v2ray是一个网络框架,功能齐全;trojan只是一个绕过防火墙的工具,功能简单;
  2. v2ray和trojan都能实现https流量伪装;
  3. v2ray内核用go语言开发,trojan是c++实现,理论上trojan比v2ray性能更好
  4. v2ray名气大,使用的人多,客户端很好用;trojan关注和使用的人少,客户端简陋。

本教程先介绍trojan服务端的安装部署,然后以windows系统为例讲解客户端使用。下载客户端请访问:trojan客户端下载

trojan教程

准备事项

按照本教程安装trojan需要如下前提条件:

1. 有一台运行Linux的境外vps;购买vps可参考:一些VPS商家整理

2. 有一个域名;购买域名可参考:Namesilo购买域名详细教程

3. 为域名申请一个证书;可参考:使用Let’s Encrypt的免费证书

4. 通过终端连接到vps;Windows系统请参考 Bitvise连接Linux服务器教程,mac用户请参考 Mac电脑连接Linux教程

注意:根据trojan的原理,理论上可以无需域名,对ip自签发证书也能配置和使用(v2ray同理)。这种情况下相当于对流量做了TLS加密,不如有域名的稳(虽然也能用)。

安装trojan服务端

本教程服务端系统是CentOS 7,其他系统的命令基本类似,请自行转换。

连到VPS后,终端输入如下命令安装trojan:

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

该命令会下载最新版的trojan并安装。安装完毕后,trojan配置文件路径是 /usr/local/etc/trojan/config.json,其初始内容为:

{     "run_type": "server",     "local_addr": "0.0.0.0",     "local_port": 443,     "remote_addr": "127.0.0.1",     "remote_port": 80,     "password": [         "password1",         "password2"     ],     "log_level": 1,     "ssl": {         "cert": "/path/to/certificate.crt",         "key": "/path/to/private.key",         "key_password": "",         "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",         "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",         "prefer_server_cipher": true,         "alpn": [             "http/1.1"         ],         "reuse_session": true,         "session_ticket": false,         "session_timeout": 600,         "plain_http_response": "",         "curves": "",         "dhparam": ""     },     "tcp": {         "prefer_ipv4": false,         "no_delay": true,         "keep_alive": true,         "reuse_port": false,         "fast_open": false,         "fast_open_qlen": 20     },     "mysql": {         "enabled": false,         "server_addr": "127.0.0.1",         "server_port": 3306,         "database": "trojan",         "username": "trojan",         "password": ""     } }

请重点关注配置文件中的如下参数:

  1.  local_port:监听的端口,默认是443,除非端口被墙,不建议改成其他端口;
  2.  remote_addrremote_port:非trojan协议时,将请求转发处理的地址和端口。可以是任意有效的ip/域名和端口号,默认是本机和80端口;
  3. password:密码。需要几个密码就填几行,最后一行结尾不能有逗号;
  4. certkey:域名的证书和密钥,Let’s Encrypt申请的证书可用 certbot certificates 查看证书路径;
  5. key_password:默认没有密码(如果证书文件有密码就要填上);
  6. alpn:建议填两行:http/1.1和h2,保持默认也没有问题。

其他参数基本保持默认即可。

修改好配置文件并保存,然后设置开机启动:systemctl enable trojan,并启动trojan: systemctl start trojan

检查trojan是否在运行:ss -lp | grep trojan,如果输出为空,可能的原因包括:

  1. config.json文件有语法错误:请注意是否少了逗号,有特殊字符等;
  2. 开启了selinux: setenforce 0关闭再启动 trojan。

软件运行没问题的话,最后一步是防火墙放行端口(如果开了防火墙的话):

firewall-cmd --permanent --add-service=https # 端口是443 firewall-cmd --permanent --add-port=端口号/tcp # 其他端口号 firewall-cmd --reload # 重新加载防火墙

trojan服务端注意事项

以下是一些注意事项:

1. 为了让伪装更正常,配置文件中的 remote_addrremote_port 请认真填写。如果使用默认的 127.0.0.1 和 80,请运行以下命令安装Nginx并放行80端口:

yum install -y epel-release && yum install -y nginx systemctl enable nginx; systemctl start nginx firewall-cmd --permanent --add-service=http firewall-cmd --reload

完成后打开浏览器输入域名,应该出现Nginx欢迎页。更换伪装网站页面只需上传文件到 /usr/share/nginx/html 目录即可。

2. remote_addrremote_port也可以填其他ip/域名和端口。例如将所有请求转发到本站,remote_addr 填 tlanyan.me,remote_port 填443。做大死的行为是remote_addr填 facebook/google/twitter等敏感域名,GFW过来一看可能就直接把你的ip安排得明明白白。

3. 如果vps网页后台有防火墙(阿里云/谷歌云/aws买的服务器),请记得放行相应端口。

到此服务端应该已经安装好并运行正常,接下来是配置客户端使用。

trojan windows客户端使用教程

本节以windows系统为例,讲解trojan客户端的配置和使用。

首先 下载trojan客户端,解压压缩包,进入trojan文件夹。用记事本打开 config.json 文件,做如下修改:

trojan教程

trojan客户端配置文件

改好后保存并关闭文件,双击文件夹内的 trojan.exe 文件,trojan程序运行,出现如下黑窗口:

trojan教程

trojan运行窗口

接着我们以火狐浏览器为例,配置浏览器使用代理:右上角打开火狐菜单,点击“选项”,找到代理,按照下图设置socks5代理:

trojan教程

火狐配置代理

然后点击保存,配置无误的话接下来能打开google,youtube等网站。打开百度,输入ip,出来的是服务器的ip地址:

trojan教程

百度查询ip

可以看到,不管访问什么网站,都是通过了服务器中转。我们希望仅访问外网时才走代理,国内网站直连就好了,因为速度更快。此外,我们还希望其他浏览器不要重复设置。要达到这个目的,需要其他软件的辅助,本人推荐使用v2rayN(不想再安装软件,解决方案请点 这里)。

首先从 v2ray客户端 下载v2rayN,然后解压进入v2rayN-Core文件夹。双击文件夹内的 v2rayN.exe 启动,在桌面右下角找到v2rayN的图标(logo是V),双击打开配置界面,按下图添加socks5服务器:

trojan教程

v2rayN添加socks服务器

在弹出来的配置界面分别填入 127.0.0.1 和设置的端口,别名随便填一个,比如 trojan,然后点击保存:

trojan教程

v2rayN设置服务器信息

接着点击“参数设置”,Http代理选择“开启PAC,并自动设置PAC(PAC模式)”,然后点击确定:

trojan教程

v2rayN设置PAC模式

接下来,所有的浏览器应该都可以上外网,并且通过百度查ip,会变成你的真实ip,这达到了我们想要的效果。

其他事项

1. 浏览器只用chrome的话,可以用SwitchOmega等插件达到v2rayN的效果;

2. v2rayN界面的服务器列表栏点右键可以测试延迟,设置活动服务器等;

3. 如果你不想安装v2rayN,可以这样操作达到同样效果:打开windows设置 -> 网络和Internet -> 代理,关闭“自动检测设置” 和 “使用代理服务器”,打开“设置脚本”,在“脚本地址”栏填入这个地址:https://tlanyan.me/trojan-pac.php?p=端口号(端口号改成trojan配置文件中的local_port,例如1080),然后点击保存:

trojan教程

windows设置pac

本教程到此结束,如有问题请留言。

参考

1. trojan – An unidentifiable mechanism that helps you bypass GFW.

2. Trojan-GFW

2. 网络上的HTTPS加密

3 thoughts on “trojan教程

留言评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注