Skip to content

Commit d118646

Browse files
committed
feat: supports custom geo data
1 parent aad28ff commit d118646

File tree

3 files changed

+49
-24
lines changed

3 files changed

+49
-24
lines changed

src-go/go.mod

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ require (
2828
github.com/coreos/go-iptables v0.8.0 // indirect
2929
github.com/dlclark/regexp2 v1.11.5 // indirect
3030
github.com/dmitryikh/leaves v0.0.0-20230708180554-25d19a787328 // indirect
31+
github.com/dunglas/httpsfv v1.0.2 // indirect
3132
github.com/enfein/mieru/v3 v3.26.2 // indirect
3233
github.com/ericlagergren/aegis v0.0.0-20250325060835-cd0defd64358 // indirect
3334
github.com/ericlagergren/polyval v0.0.0-20230805202542-18692a1b76f9 // indirect
@@ -55,6 +56,7 @@ require (
5556
github.com/metacubex/bart v0.26.0 // indirect
5657
github.com/metacubex/blake3 v0.1.0 // indirect
5758
github.com/metacubex/chacha v0.1.5 // indirect
59+
github.com/metacubex/connect-ip-go v0.0.0-20260128031117-1cad62060727 // indirect
5860
github.com/metacubex/cpu v0.1.0 // indirect
5961
github.com/metacubex/fswatch v0.1.1 // indirect
6062
github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 // indirect
@@ -65,21 +67,21 @@ require (
6567
github.com/metacubex/mlkem v0.1.0 // indirect
6668
github.com/metacubex/nftables v0.0.0-20250708020511-be959b9e8902 // indirect
6769
github.com/metacubex/qpack v0.6.0 // indirect
68-
github.com/metacubex/quic-go v0.59.1-0.20260112033758-aa29579f2001 // indirect
70+
github.com/metacubex/quic-go v0.59.1-0.20260128071132-0f3233b973af // indirect
6971
github.com/metacubex/randv2 v0.2.0 // indirect
7072
github.com/metacubex/restls-client-go v0.1.7 // indirect
71-
github.com/metacubex/sing v0.5.6 // indirect
72-
github.com/metacubex/sing-mux v0.3.4 // indirect
73+
github.com/metacubex/sing v0.5.7 // indirect
74+
github.com/metacubex/sing-mux v0.3.5 // indirect
7375
github.com/metacubex/sing-quic v0.0.0-20260112044712-65d17608159e // indirect
7476
github.com/metacubex/sing-shadowsocks v0.2.12 // indirect
7577
github.com/metacubex/sing-shadowsocks2 v0.2.7 // indirect
7678
github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 // indirect
77-
github.com/metacubex/sing-tun v0.4.11 // indirect
78-
github.com/metacubex/sing-vmess v0.2.4 // indirect
79+
github.com/metacubex/sing-tun v0.4.15 // indirect
80+
github.com/metacubex/sing-vmess v0.2.5 // indirect
7981
github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f // indirect
8082
github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141 // indirect
8183
github.com/metacubex/tfo-go v0.0.0-20251204144243-738de9e3cd15 // indirect
82-
github.com/metacubex/tls v0.1.1 // indirect
84+
github.com/metacubex/tls v0.1.3 // indirect
8385
github.com/metacubex/utls v1.8.4 // indirect
8486
github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f // indirect
8587
github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49 // indirect
@@ -100,6 +102,7 @@ require (
100102
github.com/vishvananda/netns v0.0.5 // indirect
101103
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
102104
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
105+
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
103106
gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7 // indirect
104107
gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec // indirect
105108
go.uber.org/atomic v1.11.0 // indirect
@@ -115,4 +118,4 @@ require (
115118
google.golang.org/protobuf v1.36.11 // indirect
116119
)
117120

118-
replace github.com/metacubex/mihomo => github.com/snakem982/mihomo v1.1.16-moshen
121+
replace github.com/metacubex/mihomo => github.com/snakem982/mihomo v1.1.17-moshen

src-go/go.sum

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZ
2323
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
2424
github.com/dmitryikh/leaves v0.0.0-20230708180554-25d19a787328 h1:ht/zhLOAy9iiEKTKGkXvpw92Z7O6NK0bIVZVREy0kIE=
2525
github.com/dmitryikh/leaves v0.0.0-20230708180554-25d19a787328/go.mod h1:wzMig9tMIJB8HsxXHppa9yRPo8BpO0eBM/Z4xnaohCQ=
26+
github.com/dunglas/httpsfv v1.0.2 h1:iERDp/YAfnojSDJ7PW3dj1AReJz4MrwbECSSE59JWL0=
27+
github.com/dunglas/httpsfv v1.0.2/go.mod h1:zID2mqw9mFsnt7YC3vYQ9/cjq30q41W+1AnDwH8TiMg=
2628
github.com/enfein/mieru/v3 v3.26.2 h1:U/2XJc+3vrJD9r815FoFdwToQFEcqSOzzzWIPPhjfEU=
2729
github.com/enfein/mieru/v3 v3.26.2/go.mod h1:zJBUCsi5rxyvHM8fjFf+GLaEl4OEjjBXr1s5F6Qd3hM=
2830
github.com/ericlagergren/aegis v0.0.0-20250325060835-cd0defd64358 h1:kXYqH/sL8dS/FdoFjr12ePjnLPorPo2FsnrHNuXSDyo=
@@ -104,6 +106,8 @@ github.com/metacubex/chacha v0.1.5 h1:fKWMb/5c7ZrY8Uoqi79PPFxl+qwR7X/q0OrsAubyX2
104106
github.com/metacubex/chacha v0.1.5/go.mod h1:Djn9bPZxLTXbJFSeyo0/qzEzQI+gUSSzttuzZM75GH8=
105107
github.com/metacubex/chi v0.1.0 h1:rjNDyDj50nRpicG43CNkIw4ssiCbmDL8d7wJXKlUCsg=
106108
github.com/metacubex/chi v0.1.0/go.mod h1:zM5u5oMQt8b2DjvDHvzadKrP6B2ztmasL1YHRMbVV+g=
109+
github.com/metacubex/connect-ip-go v0.0.0-20260128031117-1cad62060727 h1:qbZQ0sO0bDBKPvTd/qNQK6513300WJ5GRsHnw3PO4Ho=
110+
github.com/metacubex/connect-ip-go v0.0.0-20260128031117-1cad62060727/go.mod h1:xYC8Ik7/rN6no+vTRuWMEziGwm3brA0wNM/zZP9qhOQ=
107111
github.com/metacubex/cpu v0.1.0 h1:8PeTdV9j6UKbN1K5Jvtbi/Jock7dknvzyYuLb8Conmk=
108112
github.com/metacubex/cpu v0.1.0/go.mod h1:09VEt4dSRLR+bOA8l4w4NDuzGZ8n5dkMv7e8axgEeTU=
109113
github.com/metacubex/fswatch v0.1.1 h1:jqU7C/v+g0qc2RUFgmAOPoVvfl2BXXUXEumn6oQuxhU=
@@ -126,16 +130,16 @@ github.com/metacubex/nftables v0.0.0-20250708020511-be959b9e8902 h1:+OzINlacUggg
126130
github.com/metacubex/nftables v0.0.0-20250708020511-be959b9e8902/go.mod h1:Hw5GBK4x+A1fhll+OQdPpbsS0YGHqxFZFxr17PFd2zg=
127131
github.com/metacubex/qpack v0.6.0 h1:YqClGIMOpiRYLjV1qOs483Od08MdPgRnHjt90FuaAKw=
128132
github.com/metacubex/qpack v0.6.0/go.mod h1:lKGSi7Xk94IMvHGOmxS9eIei3bvIqpOAImEBsaOwTkA=
129-
github.com/metacubex/quic-go v0.59.1-0.20260112033758-aa29579f2001 h1:RlT3bFCIDM/NR9GWaDbFCrweOwpHRfgaT9c0zuRlPhY=
130-
github.com/metacubex/quic-go v0.59.1-0.20260112033758-aa29579f2001/go.mod h1:oNzMrmylS897M3zSMuapIdwSwfq6F2qW01Z3NhVRJhk=
133+
github.com/metacubex/quic-go v0.59.1-0.20260128071132-0f3233b973af h1:do5o1rzn64NEN5oGswo7VruDkbz2055fhVT3rXehA8E=
134+
github.com/metacubex/quic-go v0.59.1-0.20260128071132-0f3233b973af/go.mod h1:oNzMrmylS897M3zSMuapIdwSwfq6F2qW01Z3NhVRJhk=
131135
github.com/metacubex/randv2 v0.2.0 h1:uP38uBvV2SxYfLj53kuvAjbND4RUDfFJjwr4UigMiLs=
132136
github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFqSPyj2cxY=
133137
github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k=
134138
github.com/metacubex/restls-client-go v0.1.7/go.mod h1:BN/U52vPw7j8VTSh2vleD/MnmVKCov84mS5VcjVHH4g=
135-
github.com/metacubex/sing v0.5.6 h1:mEPDCadsCj3DB8gn+t/EtposlYuALEkExa/LUguw6/c=
136-
github.com/metacubex/sing v0.5.6/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w=
137-
github.com/metacubex/sing-mux v0.3.4 h1:tf4r27CIkzaxq9kBlAXQkgMXq2HPp5Mta60Kb4RCZF0=
138-
github.com/metacubex/sing-mux v0.3.4/go.mod h1:SEJfAuykNj/ozbPqngEYqyggwSr81+L7Nu09NRD5mh4=
139+
github.com/metacubex/sing v0.5.7 h1:8OC+fhKFSv/l9ehEhJRaZZAOuthfZo68SteBVLe8QqM=
140+
github.com/metacubex/sing v0.5.7/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w=
141+
github.com/metacubex/sing-mux v0.3.5 h1:UqVN+o62SR8kJaC9/3VfOc5UiVqgVY/ef9WwfGYYkk0=
142+
github.com/metacubex/sing-mux v0.3.5/go.mod h1:8bT7ZKT3clRrJjYc/x5CRYibC1TX/bK73a3r3+2E+Fc=
139143
github.com/metacubex/sing-quic v0.0.0-20260112044712-65d17608159e h1:MLxp42z9Jd6LtY2suyawnl24oNzIsFxWc15bNeDIGxA=
140144
github.com/metacubex/sing-quic v0.0.0-20260112044712-65d17608159e/go.mod h1:+lgKTd52xAarGtqugALISShyw4KxnoEpYe2u0zJh26w=
141145
github.com/metacubex/sing-shadowsocks v0.2.12 h1:Wqzo8bYXrK5aWqxu/TjlTnYZzAKtKsaFQBdr6IHFaBE=
@@ -144,18 +148,18 @@ github.com/metacubex/sing-shadowsocks2 v0.2.7 h1:hSuuc0YpsfiqYqt1o+fP4m34BQz4e6w
144148
github.com/metacubex/sing-shadowsocks2 v0.2.7/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE=
145149
github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2 h1:gXU+MYPm7Wme3/OAY2FFzVq9d9GxPHOqu5AQfg/ddhI=
146150
github.com/metacubex/sing-shadowtls v0.0.0-20250503063515-5d9f966d17a2/go.mod h1:mbfboaXauKJNIHJYxQRa+NJs4JU9NZfkA+I33dS2+9E=
147-
github.com/metacubex/sing-tun v0.4.11 h1:NG5zpvYPbBXf+9GSUmDaGCDwl3hZXV677tbRAw0QtCM=
148-
github.com/metacubex/sing-tun v0.4.11/go.mod h1:L/TjQY5JEGy8nvsuYmy/XgMFMCPiF0+AWSFCYfS6r9w=
149-
github.com/metacubex/sing-vmess v0.2.4 h1:Tx6AGgCiEf400E/xyDuYyafsel6sGbR8oF7RkAaus6I=
150-
github.com/metacubex/sing-vmess v0.2.4/go.mod h1:21R5R1u90uUvBQF0owoooEu96/SAYYD56nDrwm6nFaM=
151+
github.com/metacubex/sing-tun v0.4.15 h1:0uOO8kCpodgs4Op8L7sn+C4J6a/lQagmeRTrzHxn+mo=
152+
github.com/metacubex/sing-tun v0.4.15/go.mod h1:L/TjQY5JEGy8nvsuYmy/XgMFMCPiF0+AWSFCYfS6r9w=
153+
github.com/metacubex/sing-vmess v0.2.5 h1:m9Zt5I27lB9fmLMZfism9sH2LcnAfShZfwSkf6/KJoE=
154+
github.com/metacubex/sing-vmess v0.2.5/go.mod h1:AwtlzUgf8COe9tRYAKqWZ+leDH7p5U98a0ZUpYehl8Q=
151155
github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f h1:Sr/DYKYofKHKc4GF3qkRGNuj6XA6c0eqPgEDN+VAsYU=
152156
github.com/metacubex/sing-wireguard v0.0.0-20250503063753-2dc62acc626f/go.mod h1:jpAkVLPnCpGSfNyVmj6Cq4YbuZsFepm/Dc+9BAOcR80=
153157
github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141 h1:DK2l6m2Fc85H2BhiAPgbJygiWhesPlfGmF+9Vw6ARdk=
154158
github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141/go.mod h1:/yI4OiGOSn0SURhZdJF3CbtPg3nwK700bG8TZLMBvAg=
155159
github.com/metacubex/tfo-go v0.0.0-20251204144243-738de9e3cd15 h1:XKUOMjFYUGOU5sLwbSbGgGI0oOcTrrs1gLCoUB0Kg4M=
156160
github.com/metacubex/tfo-go v0.0.0-20251204144243-738de9e3cd15/go.mod h1:l9oLnLoEXyGZ5RVLsh7QCC5XsouTUyKk4F2nLm2DHLw=
157-
github.com/metacubex/tls v0.1.1 h1:BEcZrsPTTfNf4sKZ02EbZodv4UIj7fgHWa1Eqo12Bc0=
158-
github.com/metacubex/tls v0.1.1/go.mod h1:0XeVdL0cBw+8i5Hqy3lVeP9IyD/LFTq02ExvHM6rzEM=
161+
github.com/metacubex/tls v0.1.3 h1:nyjA8GNYGaLVSNRSqWoNNdXSCCFiQABTyrPJmkuSL20=
162+
github.com/metacubex/tls v0.1.3/go.mod h1:0XeVdL0cBw+8i5Hqy3lVeP9IyD/LFTq02ExvHM6rzEM=
159163
github.com/metacubex/utls v1.8.4 h1:HmL9nUApDdWSkgUyodfwF6hSjtiwCGGdyhaSpEejKpg=
160164
github.com/metacubex/utls v1.8.4/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko=
161165
github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f h1:FGBPRb1zUabhPhDrlKEjQ9lgIwQ6cHL4x8M9lrERhbk=
@@ -202,8 +206,8 @@ github.com/sina-ghaderi/rabbitio v0.0.0-20220730151941-9ce26f4f872e h1:ur8uMsPIF
202206
github.com/sina-ghaderi/rabbitio v0.0.0-20220730151941-9ce26f4f872e/go.mod h1:+e5fBW3bpPyo+3uLo513gIUblc03egGjMM0+5GKbzK8=
203207
github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
204208
github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
205-
github.com/snakem982/mihomo v1.1.16-moshen h1:0J3attRFBn74P8Wc47sYuEGaXBWuwo6vnVX9FT/ow78=
206-
github.com/snakem982/mihomo v1.1.16-moshen/go.mod h1:ClUMBx2Ch6nJjPLeMOA7UzyQ+WKSiwyU5vSim2XGXRQ=
209+
github.com/snakem982/mihomo v1.1.17-moshen h1:ibhJmwHiXgdPbBvLTEBfMLEmIb649n+YXpV4Yf6AACk=
210+
github.com/snakem982/mihomo v1.1.17-moshen/go.mod h1:RGwFOv9gh4LoU/L1cndcmKiyTLIystF1Vb1oZe2Se8c=
207211
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
208212
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
209213
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -232,6 +236,8 @@ github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae h1:J0GxkO96kL4WF+A
232236
github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE=
233237
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
234238
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
239+
github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4=
240+
github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4=
235241
gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7 h1:UNrDfkQqiEYzdMlNsVvBYOAJWZjdktqFE9tQh5BT2+4=
236242
gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7/go.mod h1:E+rxHvJG9H6PUdzq9NRG6csuLN3XUx98BfGOVWNYnXs=
237243
gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec h1:FpfFs4EhNehiVfzQttTuxanPIT43FtkkCFypIod8LHo=

src-go/internal/meta.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ func Init() {
6565
log.Infoln("[Permission] is ok")
6666

6767
// 释放资源文件
68-
_, _ = utils.SaveFile(utils.GetUserHomeDir("geoip.metadb"), GeoIp)
69-
_, _ = utils.SaveFile(utils.GetUserHomeDir("GeoSite.dat"), GeoSite)
70-
_, _ = utils.SaveFile(utils.GetUserHomeDir("ASN.mmdb"), ASN)
68+
releaseGeoData()
7169

7270
// 释放大模型
7371
bin := utils.GetUserHomeDir("Model.bin")
@@ -298,3 +296,21 @@ func SwitchProfile(reload bool) {
298296

299297
startCore(profile, reload)
300298
}
299+
300+
// 释放GEO数据
301+
func releaseGeoData() {
302+
GeoIpPath := utils.GetUserHomeDir("geoip.metadb")
303+
if !utils.FileExists(GeoIpPath) {
304+
_, _ = utils.SaveFile(GeoIpPath, GeoIp)
305+
}
306+
307+
GeoSitePath := utils.GetUserHomeDir("GeoSite.dat")
308+
if !utils.FileExists(GeoSitePath) {
309+
_, _ = utils.SaveFile(GeoSitePath, GeoSite)
310+
}
311+
312+
ASNPath := utils.GetUserHomeDir("ASN.mmdb")
313+
if !utils.FileExists(ASNPath) {
314+
_, _ = utils.SaveFile(ASNPath, ASN)
315+
}
316+
}

0 commit comments

Comments
 (0)