Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
StellarHS opened this issue Sep 25, 2024 · 1 comment

Comments

@StellarHS
Copy link

StellarHS commented Sep 25, 2024

你正在使用哪个版本的 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
{
  "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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants