From 804c2e7cbaad03917c91f02bfb5523b4957147ca Mon Sep 17 00:00:00 2001 From: JimhHan <50871214+JimhHan@users.noreply.github.com> Date: Sat, 27 Mar 2021 22:28:52 +0800 Subject: [PATCH] Add: gRPC Co-Authored-By: EIKULG <34759969+EIKULG@users.noreply.github.com> --- VLESS-GRPC/Caddyfile | 9 ++++++ VLESS-GRPC/README.md | 20 +++++++++++++ VLESS-GRPC/client.json | 66 ++++++++++++++++++++++++++++++++++++++++++ VLESS-GRPC/server.json | 50 ++++++++++++++++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 VLESS-GRPC/Caddyfile create mode 100644 VLESS-GRPC/README.md create mode 100644 VLESS-GRPC/client.json create mode 100644 VLESS-GRPC/server.json diff --git a/VLESS-GRPC/Caddyfile b/VLESS-GRPC/Caddyfile new file mode 100644 index 0000000..ed65a11 --- /dev/null +++ b/VLESS-GRPC/Caddyfile @@ -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 +} diff --git a/VLESS-GRPC/README.md b/VLESS-GRPC/README.md new file mode 100644 index 0000000..2c7c52c --- /dev/null +++ b/VLESS-GRPC/README.md @@ -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; +} + +``` \ No newline at end of file diff --git a/VLESS-GRPC/client.json b/VLESS-GRPC/client.json new file mode 100644 index 0000000..4f90e87 --- /dev/null +++ b/VLESS-GRPC/client.json @@ -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" + } + ] + } +} diff --git a/VLESS-GRPC/server.json b/VLESS-GRPC/server.json new file mode 100644 index 0000000..880642a --- /dev/null +++ b/VLESS-GRPC/server.json @@ -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" + } + ] + } +}