github.com/sagernet/sing-box@v1.9.0-rc.20/docs/migration.md (about) 1 --- 2 icon: material/arrange-bring-forward 3 --- 4 5 ## 1.9.0 6 7 !!! warning "Unstable" 8 9 This version is still under development, and the following migration guide may be changed in the future. 10 11 ### `domain_suffix` behavior update 12 13 For historical reasons, sing-box's `domain_suffix` rule matches literal prefixes instead of the same as other projects. 14 15 sing-box 1.9.0 modifies the behavior of `domain_suffix`: If the rule value is prefixed with `.`, 16 the behavior is unchanged, otherwise it matches `(domain|.+\.domain)` instead. 17 18 ### `process_path` format update on Windows 19 20 The `process_path` rule of sing-box is inherited from Clash, 21 the original code uses the local system's path format (e.g. `\Device\HarddiskVolume1\folder\program.exe`), 22 but when the device has multiple disks, the HarddiskVolume serial number is not stable. 23 24 sing-box 1.9.0 make QueryFullProcessImageNameW output a Win32 path (such as `C:\folder\program.exe`), 25 which will disrupt the existing `process_path` use cases in Windows. 26 27 ## 1.8.0 28 29 ### :material-close-box: Migrate cache file from Clash API to independent options 30 31 !!! info "References" 32 33 [Clash API](/configuration/experimental/clash-api/) / 34 [Cache File](/configuration/experimental/cache-file/) 35 36 === ":material-card-remove: Deprecated" 37 38 ```json 39 { 40 "experimental": { 41 "clash_api": { 42 "cache_file": "cache.db", // default value 43 "cahce_id": "my_profile2", 44 "store_mode": true, 45 "store_selected": true, 46 "store_fakeip": true 47 } 48 } 49 } 50 ``` 51 52 === ":material-card-multiple: New" 53 54 ```json 55 { 56 "experimental" : { 57 "cache_file": { 58 "enabled": true, 59 "path": "cache.db", // default value 60 "cache_id": "my_profile2", 61 "store_fakeip": true 62 } 63 } 64 } 65 ``` 66 67 ### :material-checkbox-intermediate: Migrate GeoIP to rule sets 68 69 !!! info "References" 70 71 [GeoIP](/configuration/route/geoip/) / 72 [Route](/configuration/route/) / 73 [Route Rule](/configuration/route/rule/) / 74 [DNS Rule](/configuration/dns/rule/) / 75 [Rule Set](/configuration/rule-set/) 76 77 !!! tip 78 79 `sing-box geoip` commands can help you convert custom GeoIP into rule sets. 80 81 === ":material-card-remove: Deprecated" 82 83 ```json 84 { 85 "route": { 86 "rules": [ 87 { 88 "geoip": "private", 89 "outbound": "direct" 90 }, 91 { 92 "geoip": "cn", 93 "outbound": "direct" 94 }, 95 { 96 "source_geoip": "cn", 97 "outbound": "block" 98 } 99 ], 100 "geoip": { 101 "download_detour": "proxy" 102 } 103 } 104 } 105 ``` 106 107 === ":material-card-multiple: New" 108 109 ```json 110 { 111 "route": { 112 "rules": [ 113 { 114 "ip_is_private": true, 115 "outbound": "direct" 116 }, 117 { 118 "rule_set": "geoip-cn", 119 "outbound": "direct" 120 }, 121 { 122 "rule_set": "geoip-us", 123 "rule_set_ipcidr_match_source": true, 124 "outbound": "block" 125 } 126 ], 127 "rule_set": [ 128 { 129 "tag": "geoip-cn", 130 "type": "remote", 131 "format": "binary", 132 "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs", 133 "download_detour": "proxy" 134 }, 135 { 136 "tag": "geoip-us", 137 "type": "remote", 138 "format": "binary", 139 "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-us.srs", 140 "download_detour": "proxy" 141 } 142 ] 143 }, 144 "experimental": { 145 "cache_file": { 146 "enabled": true // required to save Rule Set cache 147 } 148 } 149 } 150 ``` 151 152 ### :material-checkbox-intermediate: Migrate Geosite to rule sets 153 154 !!! info "References" 155 156 [Geosite](/configuration/route/geosite/) / 157 [Route](/configuration/route/) / 158 [Route Rule](/configuration/route/rule/) / 159 [DNS Rule](/configuration/dns/rule/) / 160 [Rule Set](/configuration/rule-set/) 161 162 !!! tip 163 164 `sing-box geosite` commands can help you convert custom Geosite into rule sets. 165 166 === ":material-card-remove: Deprecated" 167 168 ```json 169 { 170 "route": { 171 "rules": [ 172 { 173 "geosite": "cn", 174 "outbound": "direct" 175 } 176 ], 177 "geosite": { 178 "download_detour": "proxy" 179 } 180 } 181 } 182 ``` 183 184 === ":material-card-multiple: New" 185 186 ```json 187 { 188 "route": { 189 "rules": [ 190 { 191 "rule_set": "geosite-cn", 192 "outbound": "direct" 193 } 194 ], 195 "rule_set": [ 196 { 197 "tag": "geosite-cn", 198 "type": "remote", 199 "format": "binary", 200 "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-cn.srs", 201 "download_detour": "proxy" 202 } 203 ] 204 }, 205 "experimental": { 206 "cache_file": { 207 "enabled": true // required to save Rule Set cache 208 } 209 } 210 } 211 ```