Install TGFW and Running with V2Ray

前言

Trojan是比较新的魔法手段,也是用申请域名、TLS的方式,Goole了一下,发现是可以和V2ray并存的。改动一下Nginx的配置就可以实现了。安装Nginx、申请证书可以参考这篇 Nginx和letsencrypt

参考:

安装Trojan

  1. 一句命令搞定
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
  1. 修改配置文件

    提前找好网站证书密钥的位置,配置文件路径:/usr/local/etc/trojan/config.json ,对于简单使用的我来说,只要改passwordssl里的certkey两个地方:

    • cert对应的是fullchain.pem

    • key对应的是privkey.pem

    • example.com是申请的域名(一般是在这个目录下面)

1
2
3
4
5
6
7
8
9
"password": [
"这是第一个password",
"这是第二个password"
],
"log_level": 1,
"ssl": {
"cert": "/etc/letsencrypt/live/example.com/fullchain.pem",
"key": "/etc/letsencrypt/live/example.com/privkey.pem",
......

运行Trojan

  1. 启动
1
systemctl start trojan
  1. 看状态
1
systemctl status trojan
  1. 加入开机启动
1
systemctl enable trojan
  1. 看日志
1
journalctl -fu trojan

更新Trojan

  1. 执行第一条命令(记得不要覆盖自己的配置文件)
  2. 执行sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/trojan 赋予Trojan 重新赋予Trojan监听443端口的能力(未测试)
  3. 重启Trojan和Nginx

配置Nginx

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
30
31
32
33
34
35
36
37
38
39
40
nano /etc/nginx/conf.d/proxy.conf

## 第一个server接收通过http域名访问的Trojan流量
server {
listen 127.0.0.1:80 default_server;

server_name example.com;

location / {
##proxy_pass随便指向一个没有敏感信息的网站都可以,这就是要反向代理的网站
proxy_pass https://www.ietf.org;
}

## V2Ray 的Path和Port
location /notebook/ {
proxy_pass http://127.0.0.1:17008;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

}
## 第二个server,接收通过IP访问的Trojan流量
server {
listen 127.0.0.1:80;
server_name <REAL IP>;

return 301 https://example.com$request_uri;
}
## 第二个server,接收除127.0.0.1:80外的所有80端口的流量并重定向到443端口
server {
listen 0.0.0.0:80;
listen [::]:80;

server_name _;
return 301 https://$host$request_uri;
}