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

[Bug] 使用hysteria/hysteria2协议会导致内存泄漏 #1649

Open
9 tasks done
huxim opened this issue Nov 10, 2024 · 2 comments
Open
9 tasks done

[Bug] 使用hysteria/hysteria2协议会导致内存泄漏 #1649

huxim opened this issue Nov 10, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@huxim
Copy link

huxim commented Nov 10, 2024

验证步骤

  • 我已经阅读了 文档,了解所有我编写的配置文件项的含义,而不是大量堆砌看似有用的选项或默认值。
  • 我仔细看过 文档 并未解决问题
  • 我已在 Issue Tracker 中寻找过我要提出的问题,并且没有找到
  • 我是中文用户,而非其他语言用户
  • 我已经使用最新的 Alpha 分支版本测试过,问题依旧存在
  • 我提供了可以在本地重现该问题的服务器、客户端配置文件与流程,而不是一个脱敏的复杂客户端配置文件。
  • 我提供了可用于重现我报告的错误的最简配置,而不是依赖远程服务器或者堆砌大量对于复现无用的配置等。
  • 我提供了完整的日志,而不是出于对自身智力的自信而仅提供了部分认为有用的部分。
  • 我直接使用 Mihomo 命令行程序重现了错误,而不是使用其他工具或脚本。

操作系统

Windows

系统版本

Windows10 22H2 19045.5011 (Linux下似乎也有同样的问题)

Mihomo 版本

1.18.10

配置文件

# 机场订阅,名称不能重复
proxy-providers:
  
# 用于下载订阅时指定UA
global-ua: clash.meta
    
# 全局配置
port: 7893
socks-port: 7891
redir-port: 7892
mixed-port: 7890
tproxy-port: 7894
log-level: debug
ipv6: false
allow-lan: true
unified-delay: true
tcp-concurrent: true
  
geodata-mode: false
geodata-loader: standard
geo-auto-update: true
geo-update-interval: 48
geox-url:
  geoip: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat"
  geosite: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat"
  mmdb: "https://testingcf.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/country.mmdb"
  asn: "https://github.com/xishang0128/geoip/releases/download/latest/GeoLite2-ASN.mmdb"
  
# 控制面板
external-controller: 0.0.0.0:9090
secret: ""
#external-ui: ui
#external-ui-url: "https://ghp.ci/https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"

# 匹配进程 always/strict/off
find-process-mode: off
global-client-fingerprint: chrome
keep-alive-idle: 600
keep-alive-interval: 30

# 策略组选择和fakeip缓存
profile:
  store-selected: true
  store-fake-ip: true
  
# 流量嗅探
sniffer:
  enable: false
  sniff:
    HTTP:
      ports: [80, 8080-8880]
      override-destination: true
    TLS:
      ports: [443, 8443]
    QUIC:
      ports: [443, 8443]
  force-domain:
    - +.v2ex.com
  skip-domain:
    - "Mijia Cloud"
    - "dlg.io.mi.com"
    - "+.push.apple.com"
    - "+.apple.com"
    
# 代理模式
tun:
  enable: false
  stack: mixed
  mtu: 9000
  dns-hijack:
    - "any:53"
    - "tcp://any:53"
  auto-route: true
  auto-redirect: true
  auto-detect-interface: true
  
# DNS模块
dns:
  enable: false
  listen: 0.0.0.0:1053
  ipv6: false
  respect-rules: true
  # 模式切换 redir-host / fake-ip
  enhanced-mode: fake-ip
  fake-ip-range: 28.0.0.1/8
  # 模式切换 whitelist/blacklist 
  # 黑名单模式表示如果匹配成功则不返回 Fake-IP, 白名单模式时只有匹配成功才返回 Fake-IP
  fake-ip-filter-mode: blacklist
  fake-ip-filter:
    - "+.lan"
    - "+.local"
    - geosite:private
    - geosite:cn
  default-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  proxy-server-nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver:
    - 223.5.5.5
    - 119.29.29.29
  nameserver-policy:
    "rule-set:private_domain,cn_domain":
    - 223.5.5.5
    - 119.29.29.29
    "rule-set:geolocation-!cn":
      - "https://dns.cloudflare.com/dns-query"
      - "https://dns.google/dns-query"
 
   
proxies:
- name: "🟢 直连"
  type: direct
  udp: true
 
# 锚点
pr: &pr {type: select, proxies: [🚀 节点选择, ♻️ 香港自动, ♻️ 日本自动, ♻️ 美国自动, ♻️ 自动选择, 🌐 全部节点, 🟢 直连]}
# 策略组
proxy-groups:
  - {name: 🚀 节点选择, type: select, proxies: [♻️ 自动选择, ♻️ 香港自动, ♻️ 日本自动, ♻️ 美国自动, 🌐 全部节点, 🟢 直连]}
  - {name: 🤖 ChatGPT,!!merge <<: *pr}
  - {name: 🎵 TikTok,!!merge <<: *pr}
  - {name: 📲 Telegram,!!merge <<: *pr}
  - {name: 🎥 NETFLIX,!!merge <<: *pr}
  - {name: ✈️ Speedtest,!!merge <<: *pr}
  - {name: 💶 PayPal,!!merge <<: *pr}
  - {name: 🍎 Apple, type: select, proxies: [🟢 直连, 🚀 节点选择]}
  - {name: 🎯 全球直连, type: select, proxies: [🟢 直连, 🚀 节点选择]}
  - {name: 🐟 漏网之鱼,!!merge <<: *pr}
  - {name: ♻️ 香港自动, type: url-test, include-all: true, tolerance: 100, interval: 60, filter: "(?=.*(港|HK|(?i)Hong))^((?!(台|日|韩|新|深|美|限速)).)*$"}
  - {name: ♻️ 日本自动, type: url-test, include-all: true, tolerance: 100, interval: 60, filter: "(?=.*(日|JP|(?i)Japan))^((?!(港|台|韩|新|美|限速)).)*$" }
  - {name: ♻️ 美国自动, type: url-test, include-all: true, tolerance: 100, interval: 60, filter: "(?=.*(美|US|(?i)States|America))^((?!(港|台|日|韩|新|限速)).)*$"}
  - {name: ♻️ 自动选择, type: url-test, include-all: true, tolerance: 100, interval: 60, filter: "^((?!(直连|限速)).)*$"}
  - {name: 🌐 全部节点, type: select, include-all: true}
rules:
  - RULE-SET,private_domain,🟢 直连
  - RULE-SET,apple_domain,🍎 Apple
  - RULE-SET,proxylite,🚀 节点选择
  - RULE-SET,ai,🤖 ChatGPT
  - RULE-SET,tiktok_domain,🎵 TikTok
  - RULE-SET,speedtest_domain,✈️ Speedtest
  - RULE-SET,telegram_domain,📲 Telegram
  - RULE-SET,netflix_domain,🎥 NETFLIX
  - RULE-SET,paypal_domain,💶 PayPal
  - RULE-SET,geolocation-!cn,🚀 节点选择
  - RULE-SET,cn_domain,🎯 全球直连
  - RULE-SET,netflix_ip,🎥 NETFLIX,no-resolve
  - RULE-SET,telegram_ip,📲 Telegram,no-resolve
  - RULE-SET,cn_ip,🎯 全球直连
  - MATCH,🐟 漏网之鱼
rule-anchor:
  ip: &ip {type: http, interval: 86400, behavior: ipcidr, format: mrs}
  domain: &domain {type: http, interval: 86400, behavior: domain, format: mrs}
  qcy: &qcy {type: http, interval: 86400, behavior: domain, format: text}
  class: &class {type: http, interval: 86400, behavior: classical, format: text}
rule-providers: 
  private_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/private.mrs"}
  proxylite: {!!merge <<: *class, url: "https://raw.githubusercontent.com/qichiyuhub/rule/refs/heads/master/ProxyLite.list"}
  ai: {!!merge <<: *class, url: "https://raw.githubusercontent.com/qichiyuhub/rule/refs/heads/master/AI.list"}
  telegram_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/telegram.mrs"}
  netflix_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/netflix.mrs"}
  paypal_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/paypal.mrs"}
  apple_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/apple-cn.mrs"}
  speedtest_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/ookla-speedtest.mrs"}
  tiktok_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/tiktok.mrs"}
  gfw_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/gfw.mrs"}
  geolocation-!cn: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/geolocation-!cn.mrs"}
  cn_domain: {!!merge <<: *domain, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/cn.mrs"}
  
  cn_ip: {!!merge <<: *ip, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/cn.mrs"}
  telegram_ip: {!!merge <<: *ip, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/telegram.mrs"}
  netflix_ip: {!!merge <<: *ip, url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geoip/netflix.mrs"}

描述

其他协议正常, 但使用hysteria/hysteria2协议会导致内存泄漏
image

日志及heap.zip

重现方式

使用hysteria/hysteria2协议, 持续运行几个小时, 观察内存占用

日志

日志见附件
@huxim huxim added the bug Something isn't working label Nov 10, 2024
@shenyanshu
Copy link

我的是有个机场100多个hy2的节点,只要加进来,立马内存占用飙升。直接把我linux的内存加SWAP撑爆了

@huxim
Copy link
Author

huxim commented Nov 23, 2024

我的是有个机场100多个hy2的节点,只要加进来,立马内存占用飙升。直接把我linux的内存加SWAP撑爆了

我暂时是用脚本定时重启

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants