说在最前面
这个问题大概率不是Surge的问题,可能是其中任何一方造成的,发在这里是因为只有surge可以复现问题,本人Linux水平堪忧,若有问题请指出,谢谢!
使用场景
MacOS version: 13.2.1 (22D68)
Mac version: Mac mini m2
Surge Mac: 5.2.0
Shadow-TLS: shadow-tls-x86_64-unknown-linux-musl@v0.2.23
Linux server: Debian 11
Telegram Desktop: version 4.8.3
问题场景
在使用Telegram下载文件时(约30+文件与2GB大小),在下载了约1G时服务器会变得不可用,检查发现服务器报错:
Accept failed: No file descriptors available ( OS error 24 )
进行实验发现,在下载的时候,Shadow-TLS进程的文件描述符占用很快超过1024,此时Shadow-TLS仍然会不断尝试获取,造成疯狂刷log,最终系统磁盘用尽。
对比发现如果使用 ShadowTLS client + shadowsocks-rust ,描述符占用维持在200左右。
而若使用sing-box作为服务端,看起来他会主动提高文件描述符限制,在全过程中最高达到了1800左右。
Workaround
尚不清楚为什么会造成这种现象。目前的做法是手动提高文件描述符限制或使用sing-box作为服务端。