在VPS上安装使用x-ui、Trojan、Trojan-go

准备工作

一台 vps

海外VPS,这里推荐搬瓦工的CN2 GIA线路,或者有针对大陆网络优化的线路。

一个域名并做好解析

  • freenom 免费域名
  • Namesilo
  • gandi.net
  • GoDaddy

选一个顺眼又便宜的即可

域名证书

使用acme.sh脚本来生成免费证书,

安装 nginx

1
apt install nginx

安装 acme:

1
curl https://get.acme.sh | sh

添加软链接:

1
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh

切换 CA 机构:

1
acme.sh --set-default-ca --server letsencrypt

申请证书:

1
acme.sh --issue -d 你的域名 -k ec-256 --webroot /var/www/html

安装证书:

1
acme.sh --install-cert -d 你的域名 --ecc --key-file       /etc/x-ui/server.key  --fullchain-file /etc/x-ui/server.crt --reloadcmd "systemctl force-reload nginx"

由于我使用的Gandi,所以我生成证书的方式如下:

1
export GANDI_LIVEDNS_KEY="fdmlfsdklmfdkmqsdfk"
1
2
./acme.sh --issue --dns dns_gandi_livedns -d example.com -d www.example.com

如果遇到申请证书失败的情况可能是.bashrc文件跟~/.acme.sh/account.conf中的GANDI_LIVEDNS_KEY不匹配造成,需要同步修改。

安装 x-ui 面板

1
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

安装 Trojan

官方脚本

推荐使用官方脚本安装,免去挖矿风险

1
2
apt install sudo  #debian
yum install sudo #contos
1
2
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

官方脚本需要自己设置服务器配置,包括密码、证书等,设置路径为: /usr/local/etc/trojan.config.json

Trojan 面板脚本

安装

1
source <(curl -sL https://git.io/trojan-install)

卸载

1
source <(curl -sL https://git.io/trojan-install) --remove

安装 Trojan-go

项目地址:trojan-go,首先从这里找到对应系统版本的链接,比如ubuntu对应trojan-go-linux-amd64.zip

下载:

1
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip

安装:

1
unzip -o trojan-go-linux-amd64.zip -d /usr/local/bin/trojan-go

删除安装包:

1
rm trojan-go-linux-amd64.zip

设置一个service

1
vim /etc/systemd/system/trojan-go.service

添加如下内容:

原本的配置文件地址是/usr/local/etc/trojan-go/config.json,为了方便把它修改成/etc/trojan-go/config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Trojan-Go
After=network.target nss-lookup.target
Wants=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/trojan-go/trojan-go -config /etc/trojan-go/config.json
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

创建配置文件

1
mkdir -p /etc/trojan-go
1
vim /etc/trojan-go/config.json

输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": ["fuckgfw"],
"ssl": {
"cert": "/etc/ssl/certs/example.com.cer",
"key": "/etc/ssl/certs/example.com.key",
"sni": "example.com"
},
"router": {
"enabled": true,
"block": ["geoip:private"]
}
}

启动服务

1
2
systemctl enable trojan-go
systemctl start trojan-go

一键安装最新内核并开启 BBR 脚本

这个要不要开仁者见仁,这里用的秋水逸冰[2]的脚本

1
wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
1
chmod 755 /opt/bbr.sh
1
/opt/bbr.sh

查看内核

1
uname -r

查看内核版本,显示为新版内核就表示 OK 了。然后经过下面几步验证一下

step1

1
2
3
4
5
6
7
# 输入
sysctl net.ipv4.tcp_available_congestion_control

# 返回值
net.ipv4.tcp_available_congestion_control = bbr cubic reno
# 或者
net.ipv4.tcp_available_congestion_control = reno cubic bbr

step2

1
2
3
4
5
# 输入
sysctl net.ipv4.tcp_congestion_control

# 返回值
net.ipv4.tcp_congestion_control = bbr

step3

1
2
3
4
5
# 输入
sysctl net.core.default_qdisc

# 返回值
net.core.default_qdisc = fq

step4

1
2
3
4
5
# 输入
lsmod | grep bbr

# 返回值
tcp_bbr 20480 3

参考


Trojan一键安装脚本
http://example.com/2022/09/08/trojan-go/
作者
toshiba
发布于
2022年9月8日
许可协议