准备工作
一台 vps
海外VPS
,这里推荐搬瓦工的CN2 GIA
线路,或者有针对大陆网络优化的线路。
一个域名并做好解析
- freenom 免费域名
- Namesilo
- gandi.net
- GoDaddy
选一个顺眼又便宜的即可
域名证书
使用acme.sh脚本来生成免费证书,
安装 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 yum install sudo
|
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
| 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 脚本
这个要不要开仁者见仁,这里用的秋水逸冰的脚本
1
| wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
|
查看内核
查看内核版本,显示为新版内核就表示 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
|
参考