Skip to content

Multiple Geoip/GeoSite datasets in ACL rules #1486

@ReturnFI

Description

@ReturnFI

Is your feature request related to a problem? Please describe.
Currently, Hysteria 2 does not support using multiple geoip and geosite databases simultaneously within the ACL configuration. This limitation makes it impossible to combine multiple regional rule sets.
For example, it is not possible to load different geo databases (e.g., default, RU-specific, CN-specific) and use them together inside the same ACL block. This restricts more advanced filtering scenarios where different regions need dedicated rule files.

Describe the solution you'd like
I would like Hysteria 2 to allow defining multiple geoip/geosite datasets and referencing them independently in ACL rules.
The goal is to support configurations similar to the following, where rules from several geoip/geosite sources can be applied together:

"acl": {
  "inline": [
    "reject(geosite:category-ads-all)",
    "reject(geoip:private)",
    "reject(geoip:phishing)",
    "reject(geoip:malware)",
    "reject(geosite:malware)",
    "reject(geosite:phishing)",
    "reject(geosite:cryptominers)",
    "reject(10.0.0.0/8)",
    "reject(172.16.0.0/12)",
    "reject(192.168.0.0/16)",
    "reject(fc00::/7)",
    "warps(geosite:ir)",
    "warps(geoip:ir)",
    "warps(geosite_ru:ru-available-only-inside)",
    "warps(geoip_ru:ru)",
    "warps(geosite_cn:cn)",
    "warps(geoip_cn:cn)"
  ],
  "geoip": "/etc/hysteria/geoip.dat",
  "geosite": "/etc/hysteria/geosite.dat",
  "geoip_ru": "/etc/hysteria/geoip_ru.dat",
  "geosite_ru": "/etc/hysteria/geosite_ru.dat",
  "geoip_cn": "/etc/hysteria/geoip_cn.dat",
  "geosite_cn": "/etc/hysteria/geosite_cn.dat"
}

Additional context
Support for multiple geo datasets would significantly improve flexibility for users who rely on custom or region-specific rule files. It would also simplify advanced filtering setups and reduce the need for manual file merging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions