Trojan-Go套用CDN、隐藏VPS真实IP、开启websocket、多路复用提升网页打开速度!Trojan-Go安装脚本(可救被墙的VPS)
Trojan-Go的官方说明:
使用Go实现的完整Trojan代理,与Trojan协议以及Trojan-GFW版本的配置文件格式兼容。安全,高效,轻巧,易用。
支持使用多路复用提升并发性能,使用路由模块实现国内直连。
支持CDN流量中转(基于WebSocket over TLS/SSL)。
支持基于ACME协议从Let’s Encrypt自动申请和更新HTTPS证书,只需提供域名和邮箱。
Trojan-Go GitHub项目地址:点击访问
准备工作
1、VPS一台重置主流的系统
2、崭新的二级域名一个并托管cloudflare
3、可申请为期一年的证书(可选操作)
注意事项:若是需要Trojan套用CDN,也就是必须开启 websocket ,若是开启 websocket ,就需要客户端支持,目前支持的客户端有:
Windows/MacOS平台 :Trojan-Qt5
Android 安卓平台: Igniter-Go
IOS 苹果手机:暂时不支持
搭建Trojan-Go
1、连接VPS并安装必要组件
PS:自行关闭防火墙,放行80/443端口
CentOS 运行如下命令
yum update -y
yum install unzip -y
yum install wget -y
yum install nginx -y
DeBian / Ubuntu 运行如下命令
apt update -y
apt install unzip -y
apt install wget -y
apt install nginx -y
2、检查 NGINX 是否安装成功
在浏览器输入绑定到VPS的域名验证 图片省略 下同
PS:在申请到证书之前,请保持域名 未开启CDN
3、部署官方Trojan-Go程序
输入如下命令下载官方trojan-go程序。
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.5.1/trojan-go-linux-amd64.zip
解压刚才下载的程序包至 /etc 目录
unzip trojan-go-linux-amd64.zip -d /etc/trojan-go
4、申请证书或放置证书
cd /etc/trojan-go
进入 /etc/trojan-go 目录, 用Trojan-Go申请证书,或是自行放置证书
./trojan-go -autocert request
分别输入:y/你的域名/你的邮箱(不需要验证)/y ,申请完毕如下图(请比对文件夹里面的文件)
PS:若是域名输入错误,需要再次运行则需删除 /etc/trojan-go/domain_info.json
文件。
5、配置Trojan-Go
1、修改服务器配置文件和增加自启动文件
cp /etc/trojan-go/example/server.json /etc/trojan-go
2、复制 trojan-go.service 到 /etc/systemd/system
cp /etc/trojan-go/example/trojan-go.service /etc/systemd/system
3、找到 /etc/systemd/system/trojan-go.service 文件,修改里面的代码和参数为:
[Unit]
Description=Trojan-Go - An unidentifiable mechanism that helps you bypass GFW
Documentation=https://github.com/p4gefau1t/trojan-go
After=network.target nss-lookup.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/etc/trojan-go/trojan-go -config /etc/trojan-go/server.json
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target
4、修改 /etc/trojan-go/server.json 服务器配置文件,如下为范本,里面有多处地方需要修改(最基本的五处汉字必须修改)
官方完整服务器配置文件:点击访问
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"log_level": 1,
"log_file": "/etc/trojan-go/test.log",
"password": [
"你的密码"
],
"buffer_size": 32,
"dns": [],
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "/etc/trojan-go/server.crt",
"key": "/etc/trojan-go/server.key",
"key_password": "",
"cipher": "",
"cipher_tls13": "",
"curves": "",
"prefer_server_cipher": false,
"sni": "你绑定的域名",
"alpn": [
"http/1.1"
],
"session_ticket": true,
"reuse_session": true,
"plain_http_response": "",
"fallback_port": 1234,
"fingerprint": "firefox",
"serve_plain_text": false
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"prefer_ipv4": false,
"fast_open": false,
"fast_open_qlen": 20
},
"mux": {
"enabled": true,
"concurrency": 8,
"idle_timeout": 60
},
"router": {
"enabled": false,
"bypass": [],
"proxy": [],
"block": [],
"default_policy": "proxy",
"domain_strategy": "as_is",
"geoip": "/etc/trojan-go/geoip.dat",
"geosite": "/etc/trojan-go/geosite.dat"
},
"websocket": {
"enabled": true,
"path": "/你的路径",
"hostname": "你绑定的域名",
"obfuscation_password": "",
"double_tls": true,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "/etc/trojan-go/server.crt",
"key": "/etc/trojan-go/server.key",
"key_password": "",
"prefer_server_cipher": false,
"sni": "你绑定的域名",
"session_ticket": true,
"reuse_session": true,
"plain_http_response": ""
}
}
}
5、以上参数的简单说明:
"websocket"` 默认开启,关闭请 `"enabled": false,
若是不关闭,则只能使用包含 Trojan-GO 协议的客户端。但是关闭则无法套用CDN
"obfuscation_password": ""
, 为 websocket 混淆密码,填写会稍稍影响性能,默认为空
"mux"` 为多路复用,默认开启,关闭请 `"enabled": false,
"double_tls":` 为多重TLS,默认开启,关闭请 `"double_tls": false,
6、开启CDN,并设置CDN
1、点亮小云朵,开启CDN
2、点击页面中的 SSL/TLS 进入如下界面并设置(重要)
7、设置Trojan-Go开机启动
首先 systemctl daemon-reload
,然后 systemctl enable trojan-go
设置为开机自启,在然后 systemctl start trojan-go
启动 Trojan-Go。systemctl status trojan-go
可以查看 Trojan-Go 状态
8、验证Trojan-Go是否正常
以下引用官方文档:
当一个客户端试图连接Trojan-Go的监听端口时,会发生下面的事情:
- 如果TLS握手成功,检测到TLS的内容非Trojan协议(有可能是HTTP请求,或者来自GFW的主动探测)。Trojan-Go将TLS连接代理到本地127.0.0.1:80上的HTTP服务。这时在远端看来,Trojan-Go服务就是一个HTTPS网站。
- 如果TLS握手成功,并且被确认是Trojan协议头部,并且其中的密码正确,那么服务器将解析来自客户端的请求并进行代理,否则和上一步的处理方法相同。
- 如果TLS握手失败,说明对方使用的不是TLS协议进行连接。此时Trojan-Go将这个TCP连接代理到本地127.0.0.1:1234上运行的HTTPS服务,返回一个展示400 Bad Reqeust的HTTP页面。
fallback_port
是一个可选选项,如果没有填写,Trojan-Go会直接终止连接。虽然是可选的,但是还是强烈建议填写。
你可以通过使用浏览器访问你的域名https://your-domain-name.com
来验证。如果工作正常,你的浏览器会显示一个正常的HTTPS保护的Web页面,页面内容与服务器本机80端口上的页面一致。
9、连接Trojan-Go
trojan-qt5
10、设置伪装站点
PS:等部署完毕,确定没问题了在进行站点伪装
找到VPS文件 /etc/nginx/nginx.conf
打开,并贴入一下代码,其中文字部分需替换 (一处替换)
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
'\$status \$body_bytes_sent "\$http_referer" '
'"\$http_user_agent" "\$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 120;
client_max_body_size 20m;
#gzip on;
server {
listen 80;
server_name 你的域名;
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
}
然后找到网站根目录 /usr/share/nginx/html
,下载并解压源码。
cd /usr/share/nginx/html
wget https://github.com/V2RaySSR/Trojan/raw/master/web.zip
unzip web.zip
systemctl restart nginx
伪装站点千篇一律?以下模板下载地址:点击访问
11、自行安装BBR加速
BBR加速四合一脚本:点击直达
12、证书更新
命令为:./trojan-go -autocert renew
引用官方说明:
- server.key 服务器私钥
- server.crt 经过Let’s Encrypt签名的服务器证书
- user.key 用户Email对应的私钥
- domain_info.json 域名和用户Email信息
进行证书更新。更新之前请确保同目录下有上述的四个文件。如果你没有指定ACME challenge使用的端口,Trojan-Go将默认使用443和80端口,请确保这两个端口没有被Trojan-Go或者其他程序(nginx, caddy等等)占用。
简单来说,就是 systemctl stop nginx
、 systemctl stop trojan-go
、./trojan-go -autocert renew
、更新成功以后 systemctl start trojan-go
、 systemctl start nginx
13、如何关闭 websocket ,用其他客户端连接。
修改 /etc/trojan-go/server.json 服务器配置文件
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"你的密码"
],
"ssl": {
"cert": "/etc/trojan-go/server.crt",
"key": "/etc/trojan-go/server.key",
"sni": "你的域名",
"fallback_port": 1234
}
}
systemctl restart trojan-go
重启 Trojan-Go。systemctl status trojan-go
可以查看 Trojan-Go 状态
https://www.v2rayssr.com/trojan-go.html 原文链接 大陆禁访问