使用openclash连接trojan grpc不定期断开连接
使用openclash(clash core 1.10.0)连接 xray的trojan grpc时会不定期断开连接。一般在长时间连接时出现,一部电影的时间几乎必定会出现一到两次。断流以后立即重启openclash可以立即恢复。
查看xray的error日志有如下记录。
2022/04/09 01:53:30 [Warning] [2354333527] app/proxyman/inbound: connection ends > proxy/vless/inbound: connection ends > proxy/vless/inbound: failed to write A response payload > transport/internet/grpc/encoding: failed to send data over gRPC tunnel > rpc error: code = Unavailable desc = transport is closing
server配置为nginx转发xray。
xray配置为
{
"port": 1001,
"listen": "127.0.0.1",
"protocol": "trojan",
"settings": {
"clients": [
{
"password": "XXX",
"level": 0
}
]
},
"streamSettings": {
"network": "grpc",
"grpcSettings": {
"serviceName": "abc"
}
}
},
nginx配置为
server {
listen 8080 ssl http2 so_keepalive=on;
listen [::]:8080 ssl http2 so_keepalive=on;
server_name www;
index index.html;
root /var/www/html;
ssl_certificate /etc/letsencrypt/live/www.pem;
ssl_certificate_key /etc/letsencrypt/live/www.pem;
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 /cestbon {
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 grpc://127.0.0.1:1001;
}
}
clash配置为
name: "XXXXX"
server: www
port: 8000
type: trojan
password: xxx
network: grpc
alpn:
- h2
udp: true
skip-cert-verify: false
sni: www
grpc-opts:
grpc-service-name: abc
我在用vless + grpc时,增加timeout配置能很大程度改善断流,当然我还同时有好几个线路一般的vps一起urltest测速使用
grpc-opts:
multiMode: true
idle_timeout: 13
grpc-service-name: gfwkillfbx
我在用vless + grpc时,增加timeout配置能很大程度改善断流,当然我还同时有好几个线路一般的vps一起urltest测速使用
grpc-opts: multiMode: true idle_timeout: 13 grpc-service-name: gfwkillfbx
multimode和idle_timeout在clash中有代码实现吗?我看所有的clash文档里都没提到这两个参数。
我在用vless + grpc时,增加timeout配置能很大程度改善断流,当然我还同时有好几个线路一般的vps一起urltest测速使用
grpc-opts: multiMode: true idle_timeout: 13 grpc-service-name: gfwkillfbxmultimode和idle_timeout在clash中有代码实现吗?我看所有的clash文档里都没提到这两个参数。
你去看下clash.meta内核文档了
我在用vless + grpc时,增加timeout配置能很大程度改善断流,当然我还同时有好几个线路一般的vps一起urltest测速使用
grpc-opts: multiMode: true idle_timeout: 13 grpc-service-name: gfwkillfbxmultimode和idle_timeout在clash中有代码实现吗?我看所有的clash文档里都没提到这两个参数。
你去看下clash.meta内核文档了
确实没看到啊,trojan-grpc这些配置里都只有一个servicename选项 https://wiki.metacubex.one/config/proxies/trojan/#trojan-grpc
不过我试了一下加上这个参数好像clash也能正常运行,我在想这是不是grpc-go的一个通用实现,正在看这部分的东西。 好像确实是grpc-go本身的实现: https://github.com/grpc/grpc-go/pull/6263
我不用clash。
我刚在 https://github.com/MetaCubeX/mihomo/blob/Alpha/docs/config.yaml 搜了下,也没看到类似Xray里健康检查的参数。
建议你去meta的tg群问问。
另外grpc要好线路vps这点你知道吧?
vps线路好也架不住公司网络差,哈哈哈。反正我先加上这个参数跑一段时间看看,目前好像感觉是有点改善。
你至少要懂 vps到你 之间线路好,才用grpc。
不然建议你去用sing-box中的tcp brutal比这还爽些。