mirror of
https://github.com/XTLS/Xray-examples.git
synced 2024-11-25 18:11:28 +00:00
add Trojan-gRPC-Caddy2/Nginx
Fork https://github.com/XTLS/Xray-examples/tree/main/VLESS-GRPC
This commit is contained in:
parent
c325bfdd49
commit
f87d87beb8
9
Trojan-gRPC-Caddy2/Nginx/Caddyfile
Normal file
9
Trojan-gRPC-Caddy2/Nginx/Caddyfile
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
example.com {
|
||||||
|
@grpc {
|
||||||
|
protocol grpc
|
||||||
|
path # 填写 /你的 ServiceName/*
|
||||||
|
}
|
||||||
|
reverse_proxy @grpc unix//dev/shm/Xray-Trojan-gRPC.socket
|
||||||
|
root * /var/www
|
||||||
|
file_server
|
||||||
|
}
|
34
Trojan-gRPC-Caddy2/Nginx/README.md
Normal file
34
Trojan-gRPC-Caddy2/Nginx/README.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# Trojan-gRPC-Caddy2/Nginx
|
||||||
|
## 原理图 (Caddy) :
|
||||||
|
Xray client <--- gRPC(TLS) ---> Caddy2 <--- gRPC(cleartext) ---> Xray server
|
||||||
|
## Nginx:
|
||||||
|
同时,您也可以选择使用 Nginx。示例配置片段如下(部分来自 [@xqzr](https://github.com/xqzr)):
|
||||||
|
```conf
|
||||||
|
server {
|
||||||
|
listen 443 ssl http2 so_keepalive=on;
|
||||||
|
server_name example.com;
|
||||||
|
|
||||||
|
index index.html;
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
ssl_certificate /path/to/example.cer;
|
||||||
|
ssl_certificate_key /path/to/example.key;
|
||||||
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
|
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
|
||||||
|
|
||||||
|
client_header_timeout 52w;
|
||||||
|
keepalive_timeout 52w;
|
||||||
|
# 在 location 后填写 /你的 ServiceName
|
||||||
|
location /你的 ServiceName {
|
||||||
|
if ($content_type !~ "application/grpc") {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
client_max_body_size 0;
|
||||||
|
client_body_buffer_size 512k;
|
||||||
|
grpc_set_header X-Real-IP $remote_addr;
|
||||||
|
client_body_timeout 52w;
|
||||||
|
grpc_read_timeout 52w;
|
||||||
|
grpc_pass unix:/dev/shm/Xray-Trojan-gRPC.socket;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
62
Trojan-gRPC-Caddy2/Nginx/client.json
Normal file
62
Trojan-gRPC-Caddy2/Nginx/client.json
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
"log": {},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"port": "1080",
|
||||||
|
"protocol": "socks",
|
||||||
|
"settings": {
|
||||||
|
"auth": "noauth",
|
||||||
|
"udp": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"port": "1081",
|
||||||
|
"protocol": "http",
|
||||||
|
"settings": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"protocol": "trojan",
|
||||||
|
"settings": {
|
||||||
|
"servers": [
|
||||||
|
{
|
||||||
|
"address": "example.com",
|
||||||
|
"port": 443,
|
||||||
|
"password": "" //填写你的 password
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "grpc",
|
||||||
|
"security": "tls",
|
||||||
|
"grpcSettings": {
|
||||||
|
"serviceName": "", //填写你的 ServiceName
|
||||||
|
//"initial_windows_size": 524288 //通过 Cloudflare CDN 时,防止 Cloudflare CDN 发送意外的 h2 GOAWAY 帧以关闭现有连接。
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "direct",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "blocked",
|
||||||
|
"protocol": "blackhole",
|
||||||
|
"settings": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "IPOnDemand",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"ip": [
|
||||||
|
"geoip:private"
|
||||||
|
],
|
||||||
|
"outboundTag": "direct"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
48
Trojan-gRPC-Caddy2/Nginx/server.json
Normal file
48
Trojan-gRPC-Caddy2/Nginx/server.json
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
"log": {
|
||||||
|
"loglevel": "warning"
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"listen": "/dev/shm/Xray-Trojan-gRPC.socket,0666",
|
||||||
|
"protocol": "trojan",
|
||||||
|
"settings": {
|
||||||
|
"clients": [
|
||||||
|
{
|
||||||
|
"password": "" // 填写你的 password
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "grpc",
|
||||||
|
"grpcSettings": {
|
||||||
|
"serviceName": "" // 填写你的 ServiceName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"tag": "direct",
|
||||||
|
"protocol": "freedom",
|
||||||
|
"settings": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "blocked",
|
||||||
|
"protocol": "blackhole",
|
||||||
|
"settings": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "AsIs",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"ip": [
|
||||||
|
"geoip:private"
|
||||||
|
],
|
||||||
|
"outboundTag": "blocked"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue