Egress probe results (IP/country/region/city/isp) were cached using the
fetcher's cache_ttl (300s / 5min). After 5 minutes the cache expired and
the node list showed empty Egress IP/Country/Region fields again.
Add a dedicated egress_cache_ttl config (default 24h) so egress data
persists long enough to be useful when re-expanding the node list.
1. sslinks 403: Cloudflare blocks server IP. Add fetcher.proxy_url config
so subscription/flow requests can route through an HTTP proxy.
2. Egress probe: Docker image lacked sing-box. Install sing-box v1.11.4
in the Alpine runtime stage.
3. Collection rename: group by display baseName instead of internal
groupKey, format index as -N instead of %02d. Fixes double-suffix
issue where EnsureUniqueProxyNames appended -2/-3 onto existing 02.