Trojan搭建服务器

环境

系统:CentOS7

WEB Server:Nginx

域名:namecheap(付费域名)

CND:Cloudflare

域名托管

将域名托管给Cloudflare,更改namecheap中的nameserver为Cloudflare

image-20240203181801819

在Cloudflare中配置域名并绑定IP

image-20240203182346573

等待一段时间等到域名生效,Cloudflare变成为Active状态,且能ping通方可进行下一步。

image-20240203182047797

image-20240203142152383

Trojan

1.SSH远程连接

新建ssh文件,或者直接ssh root@IP -p 22连接

1
2
3
4
5
6
7
8
# 启动一个子进程
spawn ssh root@IP -p 22
# 当出现password:字样时
expect "password:"
# 像子进程发送密码
send "PWD"
# 控制权交还给用户
interact

用expect ssh文件路径执行脚本文件.

2.安装前置命令

1
2
3
# 1.安装wget和tar命令
yum install -y wget
yum install -y tar

3.安装acme.sh

安装acme工具,用来申请SSL/TLS证书

1
2
# 2.安装acme工具,用来申请SSL/TLS证书
curl https://get.acme.sh | sh

image-20240527205557468

如果安装时提示发行证书过期,更新CA证书即可

1
2
#centos更新CA证书
sudo yum update ca-certificates

image-20240527214846969

4.安装trojan步骤

1
2
# 3.一键安装
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

image-20240203183852476

输入www域名,自动申请证书,注意申请后的ssl证书等级

image-20240203184250178

等待安装成功

image-20240203201307049

5.检测服务安装是否成功

检查服务端

1
2
#状态查询,确保服务正常运行
systemctl status trojan

查看端口

注意这里智能查看是否开放,ssl导致的服务无法使用端口依然是不能用的.

1
tcping google.com 443

检查ssl

1
2
#查看证书等级
openssl s_client -connect IP:443 -showcerts

浏览器访问

浏览器输入https://域名:443,看网页是否能够被访问

image-20240528091551839

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

#状态查询(如果有显示绿色active(running),就表示正常运行中)
systemctl status trojan

#持续查看输出日志
journalctl -u trojan -f

#错误查询
journalctl -e -u trojan.service

#开机自动启动
systemctl enable trojan

#禁止开机自动启动
systemctl disable trojan

# 查看配置文件,重点看remote_addr、remote_port、password
cat /usr/src/trojan-macos/trojan/config.json

image-20240203201825046

Trojan客户端

安卓&windows: V2rayN客户端

IOS&MAC: shadowrocket

添加trojan服务器,输入IP、端口、密码即可

image-20240203204600537

验证ssl证书

1
openssl s_client -connect yourserver:port -showcerts

image-20240528090230080

手动安装证书

自动安装证书失败时,需要手动安装证书

image-20240203184526143

经过手动安装证书和安装trojan2.sh等其他脚本误打误撞证书安装成功。安装证书成功后需要卸载重装。

1
2
3
4
5
6
7
8
# 下载acme
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连接,用密码连接即可

image-20240527204609769

curl https://get.acme.sh | sh执行时报错,无tar命令.

image-20240527204927554

测试443端口sslv3 alert certificate unknown

通过浏览器的https://IP:443访问时无法打开网页,日志journalctl -u trojan -f输出如下内容

image-20240528085446842

说是tls版本不对,在cloudflare中吧tls版本调成1.3

image-20240528090420697

运行异常

运行中突然code=exited, status=1/FAILURE

image-20240527143229374

然后使用 journalctl -e -u trojan.service 命令查看错误

1
2
3
4
5
6
7
8
9
10
11
12
527 02:21:04 famous-drums-2.localdomain trojan[15795]: Welcome to trojan 1.16.0
527 02:21:04 famous-drums-2.localdomain trojan[15795]: [2024-05-27 02:21:04] [FATAL] fatal: config.json: cannot open file
527 02:21:04 famous-drums-2.localdomain trojan[15795]: [2024-05-27 02:21:04] [FATAL] exiting. . .
527 02:21:04 famous-drums-2.localdomain systemd[1]: trojan.service: control process exited, code=exited status=1
527 02:21:04 famous-drums-2.localdomain trojan[5926]: [2024-05-27 02:21:04] [WARN] got signal: 15
527 02:21:04 famous-drums-2.localdomain trojan[5926]: [2024-05-27 02:21:04] [WARN] trojan service stopped
527 02:21:04 famous-drums-2.localdomain systemd[1]: Stopped trojan.
527 02:21:04 famous-drums-2.localdomain systemd[1]: Unit trojan.service entered failed state.
527 02:21:04 famous-drums-2.localdomain systemd[1]: trojan.service failed.
527 02:21:04 famous-drums-2.localdomain systemd[1]: Started trojan.
527 02:21:04 famous-drums-2.localdomain trojan[15801]: Welcome to trojan 1.16.0
527 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

image-20240527142946349

持续输出日志,然后分别执行stop和start命令,发现stop时config.json: cannot open file导致的问题

1
2
#持续查看输出日志
journalctl -u trojan -f

image-20240527153723286

重启几次服务器后失败,遂直接重装

账号无法登陆

谷歌能上去,但是登陆chatgpt等一些账号登不进去.

解决办法: 关闭SSL/TLS中的自动HTTPS重写.image-20240528111714133

证书过期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)

image-20241217093329623

1
2
3
4
#修复证书
./trojan_install.sh
#输入之前绑定的域名
www.***.com

image-20241217095603207


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!