最近发现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}