SagerNet / sing-box

The universal proxy platform
https://sing-box.sagernet.org/
Other
20.03k stars 2.38k forks source link

iOS客户端无法加载稍大的geosite.db(约8MiB) #1240

Closed jfox7852 closed 11 months ago

jfox7852 commented 11 months ago

Operating system

iOS

System version

iOS15.7

Installation type

sing-box for iOS Graphical Client

If you are using a graphical client, please provide the version of the client.

1.7.5

Version

No response

Description

sing-box IOS客户端,xtls-rprx-vision协议,在使用默认的geosite.db时可正常启动,由于官方数据库无法屏蔽一些网站的广告,在尝试采用以下地址的规则 (https://github.com/soffchen/sing-geosite/releases/latest/download/geosite.db) 时,在iOS端会导致tun无法启动,且无相关错误日志生成,在加载geosite数据库后就自动关闭了tun服务,启动失败。不知是不是iOS端有数据库大小的限制,禁用内存限制不起作用。 同样规则在Android客户端以及Windows端,Windows基于Sing-box的第三方图形客户端都可以正常加载使用,所以可能不是第三方规则数据库错误的原因。 我了解1.8.0版本移除了geofile,不过基于现在发布的版本,还是希望得到一些指点。谢谢!

Reproduction

{ "log":{ "disabled":false, "level":"debug", "output":"sing-box.log", "timestamp":true }, "dns":{ "servers":[ { "tag":"dnsdirect", "address":"https://1.12.12.12/dns-query", "strategy":"ipv4_only", "detour":"direct" }, { "tag":"dnsremote", "address":"https://8.8.4.4/dns-query", "strategy":"ipv4_only", "detour":"proxy" }, { "tag":"dnslocal", "address":"local", "detour":"direct" }, { "tag":"dnsblock", "address":"rcode://success" } ], "rules":[ { "geosite":"private", "query_type":[ "A", "AAAA" ], "server":"dnslocal" }, { "geosite":[ "category-ads-all" ], "server":"dnsblock", "disable_cache":true }, { "geosite":[ "cn" ], "server":"dnsdirect", "disable_cache":false } ], "final":"dnsremote", "strategy":"", "disable_cache":false, "disable_expire":false }, "inbounds":[ { "tag":"tun-in", "type":"tun", "interface_name":"utun", "inet4_address":"172.19.0.1/30", "auto_route":true, "strict_route":true, "stack":"mixed", "mtu":9000, "sniff":true, "sniff_timeout":"300ms", "domain_strategy":"", "udp_timeout":300 } ], "outbounds":[ { "tag":"proxy", "type":"vless", "server":"", "server_port":, "uuid":"", "flow":"xtls-rprx-vision", "network":"tcp", "packet_encoding":"xudp", "tls":{ "enabled":true, "server_name":"", "utls":{ "enabled":true, "fingerprint":"chrome" }, "reality":{ "enabled":true, "public_key":"", "short_id":"" } } }, { "type":"direct", "tag":"direct" }, { "type":"block", "tag":"block" }, { "type":"dns", "tag":"dns-out" } ], "route":{ "geoip":{ "path":"geoip.db", "download_url":"https://github.com/soffchen/sing-geoip/releases/latest/download/geoip.db", "download_detour":"proxy" }, "geosite":{ "path":"geosite.db", "download_url":"https://github.com/soffchen/sing-geosite/releases/latest/download/geosite.db", "download_detour":"proxy" }, "rules":[ { "protocol":"dns", "outbound":"dns-out" }, { "geosite":[ "category-ads-all" ], "outbound":"block" }, { "geosite":[ "google", "bing" ], "outbound":"proxy" }, { "geosite":[ "cn", "private" ], "geoip":[ "cn", "private" ], "outbound":"direct" } ], "auto_detect_interface":true, "final":"proxy" }, "experimental":{} }

Logs

No response

KevinMX commented 11 months ago

iOS 下的 Network Extension 存在内存限制。

如您所见,GeoIP/Geosite 已废弃/在未来可能被移除。建议迁移至 规则集 / Rule Set

jfox7852 commented 10 months ago

今天更新了ios端的1.8.0版本,把分流规则迁移了新的rule set方案,但是"geosite-category-ads-all"依然和迁移前一样无法屏蔽广告,是官方的规则做了精简吗?