环境
系统:CentOS7
WEB Server:Nginx
域名:namecheap(付费域名)
CND:Cloudflare
域名托管
将域名托管给Cloudflare,更改namecheap中的nameserver为Cloudflare
在Cloudflare中配置域名并绑定IP
等待一段时间等到域名生效,Cloudflare变成为Active状态,且能ping通方可进行下一步。
Trojan
1.SSH远程连接
新建ssh文件,或者直接ssh root@IP -p 22连接
1 2 3 4 5 6 7 8
| spawn ssh root@IP -p 22
expect "password:"
send "PWD"
interact
|
用expect ssh文件路径执行脚本文件.
2.安装前置命令
1 2 3
| yum install -y wget yum install -y tar
|
3.安装acme.sh
安装acme工具,用来申请SSL/TLS证书
1 2
| curl https://get.acme.sh | sh
|
如果安装时提示发行证书过期,更新CA证书即可
1 2
| sudo yum update ca-certificates
|
4.安装trojan步骤
1 2
| wget -N --no-check-certificate -q -O trojan_install.sh "https://raw.githubusercontent.com/xyz690/Trojan/master/trojan_install.sh" && chmod +x trojan_install.sh && bash trojan_install.sh
|
输入www域名,自动申请证书,注意申请后的ssl证书等级
等待安装成功
5.检测服务安装是否成功
检查服务端
1 2
| systemctl status trojan
|
查看端口
注意这里智能查看是否开放,ssl导致的服务无法使用端口依然是不能用的.
检查ssl
1 2
| openssl s_client -connect IP:443 -showcerts
|
浏览器访问
浏览器输入https://域名:443,看网页是否能够被访问
Trojan命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| systemctl status trojan.service
systemctl start trojan
systemctl restart trojan
systemctl stop trojan
systemctl status trojan
journalctl -u trojan -f
journalctl -e -u trojan.service
systemctl enable trojan
systemctl disable trojan
cat /usr/src/trojan-macos/trojan/config.json
|
Trojan客户端
安卓&windows: V2rayN客户端
IOS&MAC: shadowrocket
添加trojan服务器,输入IP、端口、密码即可
验证ssl证书
1
| openssl s_client -connect yourserver:port -showcerts
|
手动安装证书
自动安装证书失败时,需要手动安装证书
经过手动安装证书和安装trojan2.sh等其他脚本误打误撞证书安装成功。安装证书成功后需要卸载重装。
1 2 3 4 5 6 7 8
| curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d $your_domain --nginx
~/.acme.sh/acme.sh --installcert -d $your_domain --key-file /usr/local/etc/trojan/private.key --fullchain-file /usr/local/etc/trojan/cert.crt
~/.acme.sh/acme.sh --upgrade --auto-upgrade
|
一键安装bbr加速
1
| wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
|
安装问题
ssh远程连接密钥问题
当出现这个问题时,说明之前的密钥相冲突,vi ~/.ssh/know_hosts,将第四行(服务器IP开头)删掉.然后再次ssh连接,用密码连接即可
curl https://get.acme.sh | sh执行时报错,无tar命令.
测试443端口sslv3 alert certificate unknown
通过浏览器的https://IP:443访问时无法打开网页,日志journalctl -u trojan -f输出如下内容
说是tls版本不对,在cloudflare中吧tls版本调成1.3
运行异常
运行中突然code=exited, status=1/FAILURE
然后使用 journalctl -e -u trojan.service 命令查看错误
1 2 3 4 5 6 7 8 9 10 11 12
| 5月 27 02:21:04 famous-drums-2.localdomain trojan[15795]: Welcome to trojan 1.16.0 5月 27 02:21:04 famous-drums-2.localdomain trojan[15795]: [2024-05-27 02:21:04] [FATAL] fatal: config.json: cannot open file 5月 27 02:21:04 famous-drums-2.localdomain trojan[15795]: [2024-05-27 02:21:04] [FATAL] exiting. . . 5月 27 02:21:04 famous-drums-2.localdomain systemd[1]: trojan.service: control process exited, code=exited status=1 5月 27 02:21:04 famous-drums-2.localdomain trojan[5926]: [2024-05-27 02:21:04] [WARN] got signal: 15 5月 27 02:21:04 famous-drums-2.localdomain trojan[5926]: [2024-05-27 02:21:04] [WARN] trojan service stopped 5月 27 02:21:04 famous-drums-2.localdomain systemd[1]: Stopped trojan. 5月 27 02:21:04 famous-drums-2.localdomain systemd[1]: Unit trojan.service entered failed state. 5月 27 02:21:04 famous-drums-2.localdomain systemd[1]: trojan.service failed. 5月 27 02:21:04 famous-drums-2.localdomain systemd[1]: Started trojan. 5月 27 02:21:04 famous-drums-2.localdomain trojan[15801]: Welcome to trojan 1.16.0 5月 27 02:21:04 famous-drums-2.localdomain trojan[15801]: [2024-05-27 02:21:04] [WARN] trojan service (server) started at 0.0.0.0:443
|
持续输出日志,然后分别执行stop和start命令,发现stop时config.json: cannot open file导致的问题
1 2
| journalctl -u trojan -f
|
重启几次服务器后失败,遂直接重装
账号无法登陆
谷歌能上去,但是登陆chatgpt等一些账号登不进去.
解决办法: 关闭SSL/TLS中的自动HTTPS重写.
证书过期SSL handshake failed: sslv3 alert certificate unknown
1 2 3 4 5 6
| systemctl status trojan.service
journalctl -e -u trojan.service
openssl s_client -connect www.***.com:443 -showcerts
|
查看证书显示Verify return code: 10 (certificate has expired)
1 2 3 4
| ./trojan_install.sh
www.***.com
|