Trojan

出自 ArchWiki

Trojan 是一个代理服务器、客户端和协议,旨在通过模仿 HTTPS 绕过中国的防火长城。Trojan 声称是无法识别的。

警告: Trojan 尚未经过适当程度的安全审计。请谨慎使用!

安装

对于官方的 C++ Trojan 实现,请安装 trojan 软件包或 trojan-gitAUR 以获取开发版本。然而,官方的开发工作早已停滞。目前存在各种替代实现。对于具有多路复用、AEAD 和基于目标 IP 的路由等功能的 Go 实现,请安装 trojan-go-binAURtrojan-go-gitAUR。对于强调高性能和低内存使用率的 Rust 实现,请安装 trojan-r-gitAUR

配置

Trojan 在没有正确配置的情况下无法运行。它使用 JSON 作为其配置文件格式。所有配置工作都在 /etc/trojan/ 中完成。有关配置文件的每个字段的详细说明,请访问 GitHub 仓库

配置文件的示例位于 /usr/share/doc/trojan/examples/

TLS 证书

您需要为 Trojan 服务器提供 TLS 证书和私钥才能使其工作。您可以从 Let's Encrypt 使用像 Acme.sh 这样的自动化工具申请免费证书,或者按照 OpenSSL#Generate a self-signed certificate 中所示生成自签名证书。然后,在配置文件中相应地设置 certkeykey_password(不一定需要)字段。请注意,如果您生成自签名证书,则应通过在客户端上设置 cert 来固定证书。此外,请确保服务器上的 trojan 具有足够的权限来访问证书和密钥文件。

TCP 快速打开

为了使服务器上的 TCP 快速打开 工作,您需要在您的操作系统中启用它

# echo 3 > /proc/sys/net/ipv4/tcp_fastopen

伪装

Trojan 服务器可以伪装成 TLS 上的其他服务,以防止主动探测。例如,可以通过使用 nginx 运行 web 服务器,并将 remote_addrremote_port 字段指向服务器地址和端口来完成此操作。

运行

Systemd 服务

Trojan 可以通过 trojan.servicetrojan@.service 进行控制。例如,启动/启用 trojan@conf.service 实例以使用 /etc/trojan/conf.json 配置文件运行 Trojan。Trojan 也可以通过启动/启用 trojan.service 并使用 /etc/trojan/config.json 类似地运行。

手动

Trojan 也可以在 shell 中启动,通过运行

$ trojan /etc/trojan/config.json

您可以将 /etc/trojan/config.json 替换为任何其他配置文件。请注意,Trojan 将其日志输出到 stderr,因此如果您想保留日志,则必须将其重定向到文件。

参见

GitHub 项目