Skip to content

Sing-box partially ignore rules from rule-set #2764

Description

@dKenGuru

Operating system

Windows

System version

24H2 26120.3576

Installation type

Third-party graphical clients that advertise themselves as using sing-box (Windows)

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

Gui for Sing-box 1.9.5

Version

1.11.5 / 1.12.0-18

Description

I have several route rules via rule sets. Some of them contain domain's, some IP's. If I add before them own local rules set via json file with process_name or/and domain, domain_suffix, Sing-box partially ignore rules from this json rule-set file. Some connections for .EXE goes in route by json file, some by next rule-set with domains and IP's.
But if I create rule inside config, not use external rule-set json file, Sing-box start route all connections for .EXE as is set.

Reproduction

This will work correctly in config file.

{
        "action": "route",
        "process_name": [
          "Spotify.exe",
          "qbittorrent.exe",
          "steam.exe"
        ],
        "outbound": "Direct"
      },

This is not

{
        "action": "route",
        "rule_set": [
          "Direct"
        ],
        "outbound": "Direct"
      },
      {
        "action": "route",
        "rule_set": [
          "Re:filter w/ ECH"
        ],
        "outbound": "Direct"
      },
      {
        "action": "route",
        "rule_set": [
          "Re:filter w/o ECH"
        ],
        "outbound": "Proxy"
      },
      {
        "action": "route",
        "rule_set": [
          "Re:filter IP's"
        ],
        "outbound": "Proxy"
      }
    ],
    "rule_set": [
      {
        "tag": "Direct",
        "type": "local",
        "path": "../rulesets/direct.json",
        "format": "source"
      },
      {
        "tag": "Re:filter w/ ECH",
        "type": "local",
        "path": "../rulesets/domains_ech.srs",
        "format": "binary"
      },
      {
        "tag": "Re:filter w/o ECH",
        "type": "local",
        "path": "../rulesets/domains_noech.srs",
        "format": "binary"
      },
      {
        "tag": "Re:filter IP's",
        "type": "local",
        "path": "../rulesets/ruleset-ip-refilter_ipsum.srs",
        "format": "binary"
      }
    ],

Logs

Supporter

Integrity requirements

  • I confirm that I have read the documentation, understand the meaning of all the configuration items I wrote, and did not pile up seemingly useful options or default values.
  • I confirm that I have provided the server and client configuration files and process that can be reproduced locally, instead of a complicated client configuration file that has been stripped of sensitive data.
  • I confirm that I have provided the simplest configuration that can be used to reproduce the error I reported, instead of depending on remote servers, TUN, graphical interface clients, or other closed-source software.
  • I confirm that I have provided the complete configuration files and logs, rather than just providing parts I think are useful out of confidence in my own intelligence.

Metadata

Metadata

Assignees

No one assigned

    Labels

    from end userAn end user is asking a developer to fix their problem for freenot following templateNecessary information is not provided or is incomplete

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions