v2fly / v2ray-core

A platform for building proxies to bypass network restrictions.
https://v2fly.org
MIT License
29.66k stars 4.67k forks source link

暂时失去网络连接时,内存泄露或者其他原因造成的内存占用不受限制的增长 #3167

Open StellarHS opened 2 months ago

StellarHS commented 2 months ago

你正在使用哪个版本的 V2Ray?

v5.16.1;同时v5.18.0版本可复现

你的使用场景是什么?

windows 10 21H2,暂时的无网络状态 20241011补充: 可稳定复现,无论尝试连接的是socks还是其他远程的trojan、vmess等服务

你看到的异常现象是什么?

v2ray core的内存占用不断加速增长(最高到约 12 GB / 16 GB),直至无法再获取内存,维持一段时间后核心崩溃 但暂未测试过在此时连接网络是否会使内存占用停止增长或者下降 补充: 重新测试在联网后,内存占用停止增长,并在约 2 分钟后下降 ,但最终占用仍比正常联网时多出至少 3 倍 (20241011补充: 可能是正常占用, 请忽略)

你期待看到的正常表现是怎样的?

内存占用不会增长或者适当增长后停止

请附上你的配置

服务端配置:

无网络,与服务端无关

客户端配置:

config.json ```javascript { "log": { "access": "", "error": "none", "loglevel": "info" }, "inbounds": [ { "port": 1080, "protocol": "socks", "listen": "0.0.0.0", "sniffing": { "enabled": false, "destOverride": [ "http", "tls" ], "metadataOnly": false }, "settings": { "auth": "noauth", "udp": true }, "streamSettings": null, "tag": "rule-socks" }, { "port": 1081, "protocol": "http", "listen": "0.0.0.0", "sniffing": { "enabled": false, "destOverride": [ "http", "tls" ], "metadataOnly": false }, "streamSettings": null, "tag": "rule-http" }, { "port": 52345, "protocol": "http", "listen": "127.0.0.1", "sniffing": { "enabled": false, "metadataOnly": false }, "streamSettings": null, "tag": "transparent" }, { "port": 58837, "protocol": "dokodemo-door", "listen": "127.0.0.1", "sniffing": { "enabled": false, "metadataOnly": false }, "settings": { "address": "127.0.0.1" }, "streamSettings": null, "tag": "api-in" } ], "outbounds": [ { "tag": "proxy", "protocol": "vmess", "settings": { "vnext": [ { "address": "*", "port": 16617, "users": [ { "id": "*", "security": "auto" } ] } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/", "headers": { "Host": "*" } }, "sockopt": { "mark": 128 } } }, { "tag": "direct", "protocol": "freedom", "settings": { "domainStrategy": "UseIP" }, "streamSettings": { "sockopt": { "mark": 128 } } }, { "tag": "block", "protocol": "blackhole", "settings": {} }, { "tag": "dns-out", "protocol": "dns", "settings": { "port": 53, "address": "*", "network": "udp" }, "streamSettings": { "sockopt": { "mark": 128 } } } ], "routing": { "domainStrategy": "IPOnDemand", "domainMatcher": "mph", "rules": [ { "type": "field", "outboundTag": "direct", "domain": [ "m.*.net" ], "port": "16617" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ], "domain": [ "doh.pub" ] }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ], "domain": [ "rubyfish.cn" ] }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ], "ip": [ "223.6.6.6" ], "port": "53" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ], "ip": [ "119.29.29.29" ], "port": "53" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ], "ip": [ "208.67.220.220" ], "port": "5353" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "dns" ] }, { "type": "field", "outboundTag": "dns-out", "port": "53" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "transparent" ], "ip": [ "ext:geoip-only-cn-private.dat:private", "10.2.0.1/27", "fe80::62b6:6c5e:8c27:a69/64", "169.254.67.35/16", "fe80::ff57:cd36:e1a8:9d87/64", "169.254.83.202/16", "240e:471:2270:8ec:53a1:76a:f04a:7106/64", "240e:471:2270:8ec:c19f:644:86ab:ac43/128", "fe80::6fb7:42dc:41bd:b6e3/64", "192.168.22.57/27", "fe80::fff3:762:b629:3aa9/64", "169.254.104.36/16", "::1/128", "127.0.0.1/8" ], "port": "53" }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "domain": [ "domain:push-apple.com.akadns.net", "domain:push.apple.com" ] }, { "type": "field", "outboundTag": "proxy", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "domain": [ "geosite:geolocation-!cn" ] }, { "type": "field", "outboundTag": "proxy", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "domain": [ "geosite:google" ] }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "domain": [ "geosite:cn" ] }, { "type": "field", "outboundTag": "proxy", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "ip": [ "geoip:hk", "geoip:mo" ] }, { "type": "field", "outboundTag": "direct", "inboundTag": [ "rule-http", "rule-socks", "transparent" ], "ip": [ "ext:geoip-only-cn-private.dat:private", "ext:geoip-only-cn-private.dat:cn", "10.2.0.1/27", "fe80::62b6:6c5e:8c27:a69/64", "169.254.67.35/16", "fe80::ff57:cd36:e1a8:9d87/64", "169.254.83.202/16", "240e:471:2270:8ec:53a1:76a:f04a:7106/64", "240e:471:2270:8ec:c19f:644:86ab:ac43/128", "fe80::6fb7:42dc:41bd:b6e3/64", "192.168.22.57/27", "fe80::fff3:762:b629:3aa9/64", "169.254.104.36/16", "::1/128", "127.0.0.1/8" ] }, { "type": "field", "outboundTag": "api-out", "inboundTag": [ "api-in" ] }, { "type": "field", "outboundTag": "proxy", "port": "0-65535" } ] }, "dns": { "hosts": { "courier.push.apple.com": [ "1-courier.push.apple.com" ] }, "servers": [ "https://doh.pub/dns-query", "https://rubyfish.cn/dns-query", { "address": "223.6.6.6", "port": 53, "domains": [ "geosite:cn" ] }, { "address": "119.29.29.29", "port": 53, "domains": [ "geosite:cn" ] }, { "address": "tcp://208.67.220.220:5353", "domains": [ "*", "doh.pub", "rubyfish.cn" ] }, { "address": "tcp://119.29.29.29:53", "domains": [ "*", "doh.pub", "rubyfish.cn" ] } ], "tag": "dns" }, "api": { "tag": "api-out", "services": [ "LoggerService" ] } } ```

请附上出错时软件输出的错误日志

服务器端错误日志:

客户端错误日志:

2024/09/25 21:12:28 [Warning] V2Ray 5.18.0 started
2024/09/25 21:12:31 [Warning] [2451329000] app/proxyman/outbound: failed to process outbound traffic > proxy/vmess/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (ws://m.*.net:16617/):  > dial tcp: lookup m.*.net: no such host] > common/retry: all retry attempts failed
2024/09/25 21:12:33 [Warning] [4026878660] app/proxyman/outbound: failed to process outbound traffic > proxy/vmess/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (ws://m.*.net:16617/):  > dial tcp: lookup m.*.net: no such host] > common/retry: all retry attempts failed
2024/09/25 21:12:50 [Warning] [650864645] app/proxyman/outbound: failed to process outbound traffic > proxy/vmess/outbound: failed to find an available destination > common/retry: [transport/internet/websocket: failed to dial WebSocket > transport/internet/websocket: failed to dial to (ws://m.*.net:16617/):  > dial tcp: lookup m.*.net: no such host] > common/retry: all retry attempts failed
......
2024/09/25 21:15:12 [Error] app/dns: failed to read response length > io: read/write on closed pipe
2024/09/25 21:15:12 [Error] app/dns: failed to read response length > io: read/write on closed pipe
2024/09/25 21:15:12 [Error] app/dns: failed to read response length > io: read/write on closed pipe
2024/09/25 21:15:12 [Error] app/dns: failed to read response length > io: read/write on closed pipe
2024/09/25 21:15:12 [Error] app/dns: failed to read response length > io: read/write on closed pipe
2024/09/25 21:15:16 [Error] app/dns: failed to read response length > io: read/write on closed pipe
......
2024/09/25 21:15:23 [Error] app/dns: failed to retrieve response > Post "https://doh.pub/dns-query": context deadline exceeded
2024/09/25 21:15:23 [Error] app/dns: failed to retrieve response > Post "https://doh.pub/dns-query": context deadline exceeded
2024/09/25 21:15:23 [Error] app/dns: failed to retrieve response > Post "https://rubyfish.cn/dns-query": context deadline exceeded
2024/09/25 21:15:23 [Error] app/dns: failed to retrieve response > Post "https://rubyfish.cn/dns-query": context deadline exceeded
......
// 很多,截取一部分,其余主要是后两部分的重复

请附上访问日志

其它相关的配置文件(如 Nginx)和相关日志

如果 V2Ray 无法启动,请附上 --test 命令的输出

如果 V2Ray 服务运行异常,请附上 journal 日志

1265578519 commented 1 month ago

Q)9K$VUQ%XOJH}QL T1RYAT 最近有频繁复现,不知道什么原因,触发oom,显示进程占用5个G内存