学习勿用于生产环境的Trojan-r 作者: Hogwarts 发布于: 2021-02-21 更新于: 2021-12-15 分类: 红杏出墙 Trojan-R:高性能的 Trojan 代理,使用 Rust 实现。为嵌入式设备或低性能机器设计。R 意为 Rust / Rapid。 Trojan-R 目前为实验性项目,仍处于重度开发中,协议、接口和配置文件格式均可能改变,请勿用于任何生产环境。 以上内容是抄的,参见`https://github.com/p4gefau1t/trojan-r` # 一、搭建Rust语言环境 https://winamp.top/87.html # 二、编译Trojan-R ##2.1 amd64版本 apt update && apt upgrade apt install wget git vim unzip #以上两条是vps开荒命令,防止翻车。 git clone https://github.com/p4gefau1t/trojan-r.git cd trojan-r cargo build --release #编译 strip ./target/release/trojan-r #去除调试符号表以减少文件体积 ##2.2 arm64版本 git clone https://github.com/p4gefau1t/trojan-r.git cd trojan-r rustup target add aarch64-unknown-linux-gnu cargo build --target=aarch64-unknown-linux-gnu --release 编译完成后,在/root/trojan-r/target/aarch64-unknown-linux-gnu/release文件夹中可以看到trojan-r,大约7.5M大小,拷贝出来放入arm64的机器中的root目录下。 apt install binutils strip ./trojan-r #大约4M的文件 #官方推荐:交叉编译基于 cross 完成,编译前请确认已经安装 cross (cargo install cross)。此种方法以前需要Docker的支持,需安装Docker,编译成功过。这次参照编译ss-rust用上述命令编译成功。 #目前未测试运行,等以后再开坑。亦或许一次过呢。 # 三、Trojan-R搭建SS隧道 vim forward.toml #输入以下内容 mode = "forward" log_level = "debug" # optional [dokodemo] target_addr = "127.0.0.1:ssPort" #转到vps端ss监听的端口 listen_addr = "0.0.0.0:NatPort" #NAT监听端口 [trojan] password = "trojan-passwd" #vps的trojan服务密码 [tls] addr = "服务端域名:443" #指向VPS的域名和端口 sni = "服务端域名" #指向VPS的域名 # 四、试运行 chmod +x ./target/release/trojan-r ./target/release/trojan-r -c forward.toml 没有问题的话,拷贝到运行目录,并加入开机运行。 # 五、转移到运行目录并加入开机启动 ## 5.1 转移到运行目录 cp ./target/release/trojan-r /usr/bin/ mkdir /etc/trojan-r cp forward.toml /etc/trojan-r/ ## 5.2 加入开机启动 vim /etc/systemd/system/trojan-r.service #输入以下内容 [Unit] Description=Trojan-r Documentation=https://p4gefau1t.github.io/trojan-r/ After=network.target nss-lookup.target [Service] User=nobody ExecStart=/usr/bin/trojan-r -c /etc/trojan-r/forward.toml Restart=on-failure RestartSec=10s [Install] WantedBy=multi-user.target ## 5.3 给予可执行权限 chown -R nobody:root /etc/trojan-r/ #给nobody用户权限 systemctl daemon-reload systemctl start trojan-r systemctl status trojan-r --no-pager -l systemctl enable trojan-r #开机启动 # 六、服务端Trojan-Go或Trojan-R和SS的搭建 ## 6.1 服务端搭建Trojan-Go服务 https://winamp.top/73.html ## 6.2 服务端搭建Trojan-R服务 可参考NAT教程及server.toml搭建trojan-r服务端。 Trojan-R版参考toml文件如下 https://github.com/p4gefau1t/trojan-r/tree/main/config ###需注意的问题 ####6.2.1 证书问题 Trojan-r作为服务端,配置server.toml时,ECC证书有可能报错:`failed to launch proxy: tls: no valid key found`(本人踩过的坑)。 ####6.2.2 R服务端目前不大稳定 内存管理差,运行时间长的话可能会占用过多。 仅作为开发者测试用,待完善,勿用于生产环境。 ## 6.3 服务端搭建Shadowscoks服务 Go版、Rust版和Libev版皆可,注意的是Go版最好使用aes-128-gcm加密,Libev版最好使用aes-256-gcm加密。监听`127.0.0.1:ssPort`。Shadowscoks安装参考(二选一) https://winamp.top/87.html https://winamp.top/22.html # 七、经群中大佬指点本人编译版本 [Trojan-r本人编译下载地址](https://dl.winamp.top/trojan-r/ "Linux-amd64下载") # 八、强调一下 **Trojan-R 目前为实验性项目,仍处于重度开发中,协议、接口和配置文件格式均可能改变,请勿用于任何生产环境。** 标签: shadowsocks, trojan-r, shadowsocks-rust, go-shadowsocks2, rust, shadowsocks-libev