Trojan 一个伪装成HTTPS的代理工具

  • 内容
  • 相关

这个trojan主要是可以伪装成HTTPS的正常流量绕过GFW的检测,实现爬梯功能。当然某些情况下也能帮助你解决QoS的问题。

本来我想着应该很好在CentOS上安装的吧,结果看了wiki半天,CentOS呢?怎么木有?各种各样的系统都支持唯独不支持CentOS?这波操作秀的秀的,没办法,自己那股倔劲上来了,我非要把这个装到CentOS上面去。

因为这个程序开发用到的很多依赖版本都很新,CentOS上面支持的版本都过于老旧,所以很遗憾几乎所有的软件都需要靠编译来安装。

好吧,然后就是下面的各种折腾了,这里记录一下过程。。。

首先,如果你也想和我一样把这个trojan装到CentOS7上面的话,你需要准备下面几样东西:

1.一个域名解析到你的VPSIP上(trojan连接需要使用域名)
2.一台内存大于1GB的VPS

然后


更新系统:

yum -y update

把系统自带的openssl/cmake卸载掉。

yum -y remove openssl openssl-devel cmake

安装EPEL源:

yum -y install epel-release

安装开发工具包:

yum -y groupinstall "Development Tools"

安装certbot用于签发SSL证书:

yum -y install certbot

安装编译openssl/cmake/boost所需的依赖:

yum -y install wget git libtool perl-core zlib-devel bzip2-devel python-devel

首先编译安装openssl:

cd
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz tar -xzvf openssl-1.1.1.tar.gz
cd openssl-1.1.1 ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make test
make install

完成之后新建一个动态连接库文件:

vi /etc/ld.so.conf.d/openssl-1.1.1.conf

写入:

/usr/local/openssl/lib

另其生效:

ldconfig -v

接着配置环境变量,新建一个配置文件:

vi /etc/profile.d/openssl.sh

写入:

pathmunge /usr/local/openssl/bin

这样openssl就安装完成了,使用如下命令查看一下版本号:

openssl version

如图所示是最新版本1.1.1:


1.png


接下来编译安装cmake,这个比较容易没什么坑:

cd
wget https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz tar -xzvf cmake-3.12.3.tar.gz
cd cmake-3.12.3 ./bootstrap
gmake
gmake install

最后来编译安装boost,这个玩意比较耗时间,机器性能好的话,30分钟左右吧:

cd
wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz tar -xzvf boost_1_68_0.tar.gz
cd boost_1_68_0 ./bootstrap.sh --prefix=/usr/local/include/boost ./b2 ./b2 install

现在终于可以编译安装trojan了:

cd
git clone https://github.com/trojan-gfw/trojan.git cd trojan
mkdir build && cd build/ cmake .. -DENABLE_MYSQL=OFF -DENABLE_SSL_KEYLOG=ON -DFORCE_TCP_FASTOPEN=ON -DSYSTEMD_SERVICE=AUTO -DOPENSSL_ROOT_DIR=/usr/local/openssl -DBOOST_INCLUDEDIR=/usr/local/include/boost/include
make

如果一切正常,那么你将看到类似下图的输出:

3.png

现在给你的域名申请一枚Let’s Encrypt的SSL证书(example.com替换成你的域名):

certbot certonly --standalone -d example.com

申请成功之后证书的路径如下:

/etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem

现在我们复制编译好的trojan二进制文件到usr/local/bin:

cp trojan /usr/local/bin/

接着复制trojan的systemd服务文件:

cp trojan.service /etc/systemd/system/

然后新建一个trojan配置文件存放目录:

mkdir -p /usr/local/etc/trojan

新建配置文件:

vi /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": [ "设置一个密码" ], "log_level": 1, "ssl": { "cert": "/etc/letsencrypt/live/example.com/fullchain.pem", "key": "/etc/letsencrypt/live/example.com/privkey.pem", "key_password": "", "cipher": "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256", "prefer_server_cipher": true, "alpn": [ "http/1.1" ], "reuse_session": true, "session_ticket": false, "session_timeout": 600, "plain_http_response": "", "curves": "", "dhparam": "" }, "tcp": { "no_delay": true, "keep_alive": true, "fast_open": true, "fast_open_qlen": 20 }, "mysql": { "enabled": false, "server_addr": "127.0.0.1", "server_port": 3306, "database": "trojan", "username": "trojan", "password": "" } }

OK,现在就可以尝试启动trojan了:

systemctl daemon-reload
systemctl start trojan.service

设置开机启动:

systemctl enable trojan.service

查看运行状态:

systemctl status trojan.service

如果一切正常,你将可以看到类似下图信息:

2.png

现在把系统的防火墙关闭:

systemctl stop firewalld.service
systemctl disable firewalld.service

服务端至此就部署完成了,接下来是客户端,Win客户端已经有现成的exe了,下载下来直接用即可,不过还是得先配置客户端文件:


{  "run_type": "client",  "local_addr": "127.0.0.1", "local_port": 10800, "remote_addr": "你的域名",  "remote_port": 443, "password": [ "你的密码" ], "append_payload": true, "log_level": 1,  "ssl": { "verify": true,  "verify_hostname": true, "cert": "", "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-SHA256:ECDHE-RSA-CHACHA20-POLY1305-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:RSA-AES128-GCM-SHA256:RSA-AES256-GCM-SHA384:RSA-AES128-SHA:RSA-AES256-SHA:RSA-3DES-EDE-SHA", "sni": "",  "alpn": [ "h2", "http/1.1" ],  "reuse_session": true,  "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true,  "keep_alive": true,  "fast_open": false,  "fast_open_qlen": 20 }  }


以上配置保存到软件根目录下的config.json内即可,不过需要你注意的是:

1.我为了避免这个和SSR的冲突,我把本地端口监听改成了10800,如果你不需要可以改成1080,反正这个随你自行发挥。

2.密码填写你服务端上password字段设置的密码而不是key_password,此外key_password这个字段也可以不设置留空。

3.域名直接填写你的域名地址,不要带什么http/www这些。

设置完成之后,打开你的CMD或者PowerShell,进入到软件的目录运行软件即可:

4.png


这样trojan就和服务端建立好连接了,现在你只需要把需要爬梯的软件代理设置成本地的地址即可,比如在Chrome的插件内这样设置:

5.png

测试速度:

6.png

powered by lala

本文标签:

版权声明:若无特殊注明,本文皆为《小鱼cc》原创,转载请保留文章出处。

本文链接:Trojan 一个伪装成HTTPS的代理工具 - https://www.qzylytt.top/post-122.html

发表评论

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

评论

3条评论
  1. avatar

    Jacob Chrome 75.0.3770.142 Chrome 75.0.3770.142 Windows Windows 回复

    国内的服务器能用吗?

    广东省茂名市 电信

    1. 小鱼cc Firefox 68.0 Firefox 68.0 Windows Windows 回复

      回复了Jacob:只能国外服务器食用 防止ip被墙的 。实质为一个木马程序
      lucky!

      四川省绵阳市 电信

    2. Jacob Chrome 75.0.3770.142 Chrome 75.0.3770.142 Windows Windows 回复

      回复了小鱼cc:好吧

      亚太地区

温馨提示:

上午好!今天你看上去好精神哦!!!
我知道了
写信给我
QQ联系
返回顶部