最近發現clash(mihomo)核心的內存使用率有明顯問題,用幾天這玩意就能吃200M以上的內存了,再後面就不得不重啟。
並且這個核心的DNS性能也存在部分問題,我不得不使用chinadns-ng來代替clash內部的dns.
以上兩點,我在這幾天嘗試遷移到了全新的代理平臺核心,可能有聽過這個的名字,沒錯它就是sing-box
很早的時候我就考慮過遷移到sing-box,只不過哪個時候sing-box的生態還存在一些問題。
我去評價一個代理軟件,有幾個很重要的點。
- 機場兼容:一是我不會自建節點,二我也懶得手動把其他軟件的配置轉成sing-box的,所以提供機場的原生訂閱或者訂閱轉換這個很重要。
- 分流功能:這個不用多說了,你也不想局域網內的設備偷跑流量吧。
- 實用面板:這個基本上得靠社區用愛發電.
之前1和3在sing-box上做的並不好,大部分情況下使用起來還是沒有流行的核心像clash那麼順手。
不過現在sing-box有了訂閱轉換,面板的話官方支持了clashAPI,所以直接用clash的面板也沒問題。
你以為現在就能愉快的使用sing-box了嗎?FALSE**!**
sing-box其實上還有一些問題,在配置面上。
目前sing-box的開發處於高速迭代的狀態,核心的配置經常會發生變更。並且sing-box的官方文檔,不能說是爛,只能說是屎。
非常的混亂,裡面有大量的版本特性標籤以及棄用標籤,你自己都不知道這些配置裡,那些配置能在你的核心上用。
拋開混亂的官方文檔不談,只淡sing-box的配置文件,實際上也相比clash的配置更加的複雜。
相比clash的簡單設置代理端口以及機場,sing-box需要你設置inbound和outbound口,並且DNS也算是bound的一部分。
不過熟悉了sing-box的配置後還是能感受到它的設計非常的符合直覺。
這個功能之間的模塊化相比clash更加先進。
打個比方,你可以把sing-box配置成一個DNS分流工具,就像mosdns一樣。
具體還是建議自己上手玩一下。
講了這麼多,我花了2天已經是完全把配置遷移過來了,clash的性能問題在sing-box上完全沒有。
並且內存佔用對比clash也有所降低,對我這種小內存設備來說簡直福音。
不過sing-box的核心是不敢更新的…
目前我用的是1.12版本,這裡貼一個我的配置文件吧:
1{
2 "log": { "level": "debug", "timestamp": true },
3 "dns": {
4 "servers": [
5 {
6 "tag": "dns_local",
7 "type": "local"
8 },
9 {
10 "tag": "dns_proxy",
11 "type": "tls",
12 "server": "8.8.4.4",
13 "detour": "♻️ 自動選擇"
14 },
15 {
16 "tag": "dns_ali",
17 "type": "h3",
18 "server": "dns.alidns.com",
19 "domain_resolver": "dns_resolver"
20 },
21 {
22 "tag": "dns_nextdns",
23 "type": "tls",
24 "server": "",
25 "domain_resolver": "dns_resolver"
26 },
27 {
28 "tag": "dns_resolver",
29 "type": "tls",
30 "server": "223.6.6.6"
31 },
32 {
33 "tag": "dns_fakeip",
34 "type": "fakeip",
35 "inet4_range": "198.18.0.0/15",
36 "inet6_range": "fc00::/18"
37 }
38 ],
39 "rules": [
40 {
41 "query_type": ["HTTPS"],
42 "action": "reject",
43 "disable_cache": true
44 },
45 {
46 "domain_suffix": ["lan"],
47 "server": "dns_local",
48 "disable_cache": true
49 },
50 {
51 "rule_set": [
52 "geosite-geolocation-cn",
53 "geosite-apple",
54 "geosite-microsoft"
55 ],
56 "strategy": "prefer_ipv6",
57 "server": "dns_ali"
58 },
59 {
60 "rule_set": ["geosite-apple"],
61 "server": "dns_ali"
62 },
63 {
64 "rule_set": [
65 "geosite-google",
66 "geosite-category-porn",
67 "geosite-twitter",
68 "geosite-reddit",
69 "geosite-telegram",
70 "geosite-pixiv",
71 "geosite-category-social-media-!cn",
72 "geosite-category-ai-!cn",
73 "geosite-gfw"
74 ],
75 "query_type": ["A", "AAAA"],
76 "server": "dns_fakeip",
77 "disable_cache": true
78 },
79 {
80 "rule_set": ["geosite-geolocation-!cn"],
81 "server": "dns_nextdns"
82 }
83 ],
84 "final": "dns_ali",
85 "strategy": "prefer_ipv6",
86 "reverse_mapping": true,
87 "independent_cache": true
88 },
89 "ntp": {
90 "enabled": true,
91 "server": "time.windows.com",
92 "server_port": 123,
93 "interval": "30m",
94 "detour": "DIRECT"
95 },
96 "inbounds": [
97 {
98 "type": "direct",
99 "tag": "dns-in",
100 "listen": "::",
101 "listen_port": 1053
102 },
103 {
104 "type": "tun",
105 "tag": "tun-in",
106 "interface_name": "singtun",
107 "stack": "gvisor",
108 "address": ["172.18.0.1/30", "fdfe:dcba:9876::1/126"],
109 "mtu": 9000,
110 "auto_route": true,
111 "strict_route": true,
112 "route_address": ["198.18.0.0/15", "0.0.0.0/0", "fc00::/18", "::/0"]
113 }
114 ],
115 "outbounds": [],
116 "route": {
117 "default_domain_resolver": {
118 "server": "dns_ali",
119 "strategy": "prefer_ipv6"
120 },
121 "rule_set": [
122 {
123 "tag": "geoip-cn",
124 "type": "local",
125 "format": "binary",
126 "path": "geoip-cn.srs"
127 },
128 {
129 "tag": "geosite-gfw",
130 "type": "local",
131 "format": "binary",
132 "path": "geosite-gfw.srs"
133 },
134 {
135 "tag": "geosite-category-porn",
136 "type": "local",
137 "format": "binary",
138 "path": "geosite-category-porn.srs"
139 },
140 {
141 "tag": "geosite-google",
142 "type": "local",
143 "format": "binary",
144 "path": "geosite-google.srs"
145 },
146 {
147 "tag": "geosite-twitter",
148 "type": "local",
149 "format": "binary",
150 "path": "geosite-twitter.srs"
151 },
152 {
153 "tag": "geosite-reddit",
154 "type": "local",
155 "format": "binary",
156 "path": "geosite-reddit.srs"
157 },
158 {
159 "tag": "geosite-telegram",
160 "type": "local",
161 "format": "binary",
162 "path": "geosite-telegram.srs"
163 },
164 {
165 "tag": "geosite-geolocation-cn",
166 "type": "local",
167 "format": "binary",
168 "path": "geosite-geolocation-cn.srs"
169 },
170 {
171 "tag": "geosite-geolocation-!cn",
172 "type": "local",
173 "format": "binary",
174 "path": "geosite-geolocation-!cn.srs"
175 },
176 {
177 "tag": "geosite-apple",
178 "type": "local",
179 "format": "binary",
180 "path": "geosite-apple.srs"
181 },
182 {
183 "tag": "geosite-microsoft",
184 "type": "local",
185 "format": "binary",
186 "path": "geosite-microsoft.srs"
187 },
188 {
189 "tag": "geosite-pixiv",
190 "type": "local",
191 "format": "binary",
192 "path": "geosite-pixiv.srs"
193 },
194 {
195 "tag": "geosite-category-social-media-!cn",
196 "type": "local",
197 "format": "binary",
198 "path": "geosite-category-social-media-!cn.srs"
199 },
200 {
201 "tag": "geosite-category-ai-!cn",
202 "type": "local",
203 "format": "binary",
204 "path": "geosite-category-ai-!cn.srs"
205 },
206 {
207 "tag": "geosite-category-ads",
208 "type": "local",
209 "format": "binary",
210 "path": "geosite-category-ads.srs"
211 }
212 ],
213 "rules": [
214 { "inbound": "dns-in", "action": "hijack-dns" },
215 {
216 "action": "sniff",
217 "sniffer": ["dns", "bittorrent"],
218 "timeout": "500ms"
219 },
220 { "protocol": "dns", "action": "hijack-dns" },
221 { "protocol": "bittorrent", "outbound": "DIRECT" },
222 {
223 "domain_keyword": ["sing-box"],
224 "outbound": "🚀 節點選擇"
225 },
226 {
227 "rule_set": [
228 "geosite-google",
229 "geosite-category-porn",
230 "geosite-twitter",
231 "geosite-reddit",
232 "geosite-pixiv",
233 "geosite-category-social-media-!cn",
234 "geosite-category-ai-!cn",
235 "geosite-gfw"
236 ],
237 "outbound": "🌍 國外媒體"
238 },
239 {
240 "rule_set": ["geosite-telegram"],
241 "outbound": "📲 電報信息"
242 },
243 {
244 "rule_set": ["geosite-category-ads"],
245 "outbound": "🍃 應用淨化"
246 },
247 {
248 "rule_set": ["geoip-cn"],
249 "outbound": "🎯 全球直連"
250 }
251 ],
252 "auto_detect_interface": true,
253 "final": "🐟 漏網之魚"
254 },
255 "experimental": {
256 "cache_file": {
257 "enabled": true,
258 "store_fakeip": true
259 },
260 "clash_api": {
261 "external_controller": "0.0.0.0:9999",
262 "external_ui": "ui",
263 "secret": "",
264 "default_mode": "Rule"
265 }
266 }
267}