Trojan
Trojan 是一个代理服务器、客户端和协议,旨在通过模仿 HTTPS 绕过中国的防火长城。Trojan 声称是无法识别的。
安装
对于官方的 C++ Trojan 实现,请安装 trojan 软件包或 trojan-gitAUR 以获取开发版本。然而,官方的开发工作早已停滞。目前存在各种替代实现。对于具有多路复用、AEAD 和基于目标 IP 的路由等功能的 Go 实现,请安装 trojan-go-binAUR 或 trojan-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 中所示生成自签名证书。然后,在配置文件中相应地设置 cert
、key
和 key_password
(不一定需要)字段。请注意,如果您生成自签名证书,则应通过在客户端上设置 cert
来固定证书。此外,请确保服务器上的 trojan 具有足够的权限来访问证书和密钥文件。
TCP 快速打开
为了使服务器上的 TCP 快速打开 工作,您需要在您的操作系统中启用它
# echo 3 > /proc/sys/net/ipv4/tcp_fastopen
伪装
Trojan 服务器可以伪装成 TLS 上的其他服务,以防止主动探测。例如,可以通过使用 nginx 运行 web 服务器,并将 remote_addr
和 remote_port
字段指向服务器地址和端口来完成此操作。
运行
Systemd 服务
Trojan 可以通过 trojan.service
和 trojan@.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,因此如果您想保留日志,则必须将其重定向到文件。