跳转至

迁移指南

1.10.0

TUN 地址字段已合并

inet4_addressinet6_address 已合并为 addressinet4_route_addressinet6_route_address 已合并为 route_addressinet4_route_exclude_addressinet6_route_exclude_address 已合并为 route_exclude_address

旧字段已废弃,且将在 sing-box 1.11.0 中移除。

参考

TUN

{
  "inbounds": [
    {
      "type": "tun",
      "inet4_address": "172.19.0.1/30",
      "inet6_address": "fdfe:dcba:9876::1/126",
      "inet4_route_address": [
        "0.0.0.0/1",
        "128.0.0.0/1"
      ],
      "inet6_route_address": [
        "::/1",
        "8000::/1"
      ],
      "inet4_route_exclude_address": [
        "192.168.0.0/16"
      ],
      "inet6_route_exclude_address": [
        "fc00::/7"
      ]
    }
  ]
}
{
  "inbounds": [
    {
      "type": "tun",
      "address": [
        "172.19.0.1/30",
        "fdfe:dcba:9876::1/126"
      ],
      "route_address": [
        "0.0.0.0/1",
        "128.0.0.0/1",
        "::/1",
        "8000::/1"
      ],
      "route_exclude_address": [
        "192.168.0.0/16",
        "fc00::/7"
      ]
    }
  ]
}

1.9.0

domain_suffix 行为更新

由于历史原因,sing-box 的 domain_suffix 规则匹配字面前缀,而不与其他项目相同。

sing-box 1.9.0 修改了 domain_suffix 的行为:如果规则值以 . 为前缀则行为不变,否则改为匹配 (domain|.+\.domain)

对 Windows 上 process_path 格式的更新

sing-box 的 process_path 规则继承自Clash, 原始代码使用本地系统的路径格式(例如 \Device\HarddiskVolume1\folder\program.exe), 但是当设备有多个硬盘时,该 HarddiskVolume 系列号并不稳定。

sing-box 1.9.0 使 QueryFullProcessImageNameW 输出 Win32 路径(如 C:\folder\program.exe), 这将会破坏现有的 Windows process_path 用例。

1.8.0

将缓存文件从 Clash API 迁移到独立选项

{
  "experimental": {
    "clash_api": {
      "cache_file": "cache.db", // 默认值
      "cahce_id": "my_profile2",
      "store_mode": true,
      "store_selected": true,
      "store_fakeip": true
    }
  }
}
{
  "experimental"  : {
    "cache_file": {
      "enabled": true,
      "path": "cache.db", // 默认值
      "cache_id": "my_profile2",
      "store_fakeip": true
    }
  }
}

迁移 GeoIP 到规则集

Tip

sing-box geoip 命令可以帮助您将自定义 GeoIP 转换为规则集。

{
  "route": {
    "rules": [
      {
        "geoip": "private",
        "outbound": "direct"
      },
      {
        "geoip": "cn",
        "outbound": "direct"
      },
      {
        "source_geoip": "cn",
        "outbound": "block"
      }
    ],
    "geoip": {
      "download_detour": "proxy"
    }
  }
}
{
  "route": {
    "rules": [
      {
        "ip_is_private": true,
        "outbound": "direct"
      },
      {
        "rule_set": "geoip-cn",
        "outbound": "direct"
      },
      {
        "rule_set": "geoip-us",
        "rule_set_ipcidr_match_source": true,
        "outbound": "block"
      }
    ],
    "rule_set": [
      {
        "tag": "geoip-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs",
        "download_detour": "proxy"
      },
      {
        "tag": "geoip-us",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-us.srs",
        "download_detour": "proxy"
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true // required to save rule-set cache
    }
  }
}

迁移 Geosite 到规则集

Tip

sing-box geosite 命令可以帮助您将自定义 Geosite 转换为规则集。

{
  "route": {
    "rules": [
      {
        "geosite": "cn",
        "outbound": "direct"
      }
    ],
    "geosite": {
      "download_detour": "proxy"
    }
  }
}
{
  "route": {
    "rules": [
      {
        "rule_set": "geosite-cn",
        "outbound": "direct"
      }
    ],
    "rule_set": [
      {
        "tag": "geosite-cn",
        "type": "remote",
        "format": "binary",
        "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs",
        "download_detour": "proxy"
      }
    ]
  },
  "experimental": {
    "cache_file": {
      "enabled": true // required to save rule-set cache
    }
  }
}