Add: gRPC

Co-Authored-By: EIKULG <34759969+EIKULG@users.noreply.github.com>
This commit is contained in:
JimhHan 2021-03-27 22:28:52 +08:00
parent 466abebfd9
commit 804c2e7cba
No known key found for this signature in database
GPG key ID: 48D5D7CF95157AC5
4 changed files with 145 additions and 0 deletions

9
VLESS-GRPC/Caddyfile Normal file
View file

@ -0,0 +1,9 @@
xx.com {
@grpc {
protocol grpc
path # 填写你的 ServiceName
}
reverse_proxy /h2 h2c://127.0.0.1:2003
root * /var/www
file_server
}

20
VLESS-GRPC/README.md Normal file
View file

@ -0,0 +1,20 @@
# VLESS-GRPC
## 原理图 (Caddy)
Xray client <--- gRPC(TLS) ---> Caddy2 <--- gRPC(cleartext) ---> Xray server
## Nginx:
同时,您也可以选择使用 Nginx。示例配置片段如下来自 @xiaoQzhuren
```conf
# 填写你的 ServiceName
location / {
if ($request_method != "POST") {
return 404;
}
client_max_body_size 0;
grpc_read_timeout 1071906480m;
grpc_pass grpc://127.0.0.1:2002;
}
```

66
VLESS-GRPC/client.json Normal file
View file

@ -0,0 +1,66 @@
{
"log": {},
"inbounds": [
{
"port": "1080",
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
}
},
{
"port": "1081",
"protocol": "http",
"settings": {}
}
],
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "xx.com",
"port": 443,
"users": [
{
"id": "", // UUID
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "grpc",
"security": "tls",
"grpcSettings": {
"serviceName": "" // ServiceName
}
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "blocked",
"protocol": "blackhole",
"settings": {}
}
],
"routing": {
"domainStrategy": "IPOnDemand",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "direct"
}
]
}
}

50
VLESS-GRPC/server.json Normal file
View file

@ -0,0 +1,50 @@
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 2002,
"listen": "127.0.0.1",
"protocol": "vless",
"settings": {
"clients": [
{
"id": "" // UUID
}
],
"decryption": "none"
},
"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"
}
]
}
}