add Trojan-gRPC-Caddy2/Nginx

Fork https://github.com/XTLS/Xray-examples/tree/main/VLESS-GRPC
This commit is contained in:
xqzr 2022-09-09 16:17:38 +08:00 committed by GitHub
parent c325bfdd49
commit f87d87beb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 153 additions and 0 deletions

View 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
}

View file

@ -0,0 +1,34 @@
# Trojan-gRPC-Caddy2Nginx
## 原理图 (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;
}
}
```

View 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"
}
]
}
}

View 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"
}
]
}
}