介绍

  • Trojan是一个代理软件,它分为Trojan服务端和Trojan客户端,本文介绍使用Trojan客户端,其服务端需要提前准备好,并且服务端不在本文讨论范畴
  • 本文整理Linux下和Win下的Trojan客户端,也就是代理服务端的配置
  • 本文内容需要搭配socks5代理客户端进行使用,以便于达到最终代理目的
  • 搭建Trojan客户端需要提前准备好Trojan服务端,需要如下信息
    • Trojan服务端的域名或者IP
    • Trojan服务配置的端口
    • Trojan服务配置的密码
  • 本文使用的Linux环境是Ubuntu

这里有必要说明一个概念:
假设这样一个场景,当前需要代理去访问Google网站,那么如果使用Trojan来做解决方案,则需要三个内容
第一个是Trojan服务端,真正提供代理网络服务的
第二个是Trojan客户端,它是Trojan客户端,但是是代理服务端,这里说明的就是这个概念,可能不太好理解,慢慢来
第三个是代理客户端,这是让设备可以代理的客户端软件,它连接Trojan客户端
整个模型是:你的浏览器 –> 代理客户端 –> Trojan客户端 –> Trojan服务端

Linux环境搭建Trojan客户端

软件链接:github trojan

下载并解压

根据对应Linux的架构下载对应编译好的包,或者可以自行下载源码进行编译,我这里用x86_64架构举例

  • 首先获取对应的压缩包,要么浏览器下载上传,要么用wget获取,例如
    wget https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz
  • 解压
    tar -xf trojan-1.16.0-linux-amd64.tar.xz
    解压出的文件夹放到你环境软件安装的目录,我这里放在/usr/local/share/目录下
    mv trojan /usr/local/share/

配置

  • 因为这里需要用的是Trojan的客户端,所以复制一份客户端的配置模板
    1
    2
    cd /usr/local/share/trojan
    cp examples/client.json-example client.json
  • 然后修改client.json进行配置,这里不配置ssl,所以只需要修改以下几个参数即可,其他默认不动
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     {
    "run_type": "client",
    "local_addr": "127.0.0.1", //这里是本地监听的ip,127.0.0.1代表本地所有
    "local_port": 1080, //本地监听端口
    "remote_addr": "example.com", //这是远端Trojan服务器的地址或者域名
    "remote_port": 443, //这是远端Trojan服务器的端口
    "password": [
    "password1" //这是远端Trojan服务链接的密码
    ],
    "ssl": { //因为不用ssl证书,所以这里两个选项均改成false
    "verify": false,
    "verify_hostname": false,
    ...
    }
    }

使用

通过二进制直接拉起并且使用上面改好的配置文件
./trojan -c ./client.json
不出意外一般没有什么问题,有问题会打印对应日志

使用systemd管理

上述手动拉起是一个方式,这里可以通过systemd进行管理,编写服务文件trojan.service,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=trojan
Documentation=man:trojan(1) https://trojan-gfw.github.io/trojan/config https://trojan-gfw.github.io/trojan/
After=network.target syslog.target

[Service]
Type=simple
StandardError=journal
User=nobody
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/local/share/trojan/trojan -c /usr/local/share/trojan/client.json
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

然后将其放入/usr/lib/systemd/system/目录下并且执行如下命令进行启动即可

1
2
3
systemctl daemon-reload
systemctl enable trojan
systemctl start trojan

通过systemd管理的日志可以通过这个命令查看
journalctl -u trojan

灵活使用
到这里算是Linux上部署了Trojan的客户端,也就是代理服务端,然后需要搭配代理客户端进行代理使用,可以参考这一篇socks5代理客户端
如果该Linux是作为服务器使用的,那么只要其他设备能够连接到该服务器,就可以实现任何设备通过对应的代理客户端进行代理访问!
尤其是局域网内,可以实现多个设备连接这里监听的IP和端口!

Windows环境搭建Trojan客户端

软件链接:github trojan
因为是相同的软件,所以配置文件是一样的,区别就是下载对应的Windows版本
trojan-1.16.0-win.zip
解压后操作

  • 双击VC_redist.x64进行安装
  • 修改配置文件,这部分参考上面Linux的配置,但是有个区别就是,复制出来的名字必须是config.json
    也就是将目录下的进行覆盖掉,因为双击打开的时候默认使用的是config.json作为配置文件
  • 双击打开trojan.exe程序即可,没有问题的话可以直接使用

Mac环境搭建Trojan客户端

软件链接:github trojan
使用的相同软件,搭建方式大同小异,本人没有mac,这里不讨论!

参考