在使用 Xray / Sing-box / V2Ray 进行分流时,geoip.dat 和 geosite.dat 是核心的地理信息数据库文件:
- geoip.dat:IP 地址 → 国家/地区映射
- geosite.dat:域名 → 分类映射(流媒体、广告、社交等)
在小闪存设备(如 16MB Flash 路由器)上,这两个文件的体积可能接近 30MB。如果直接更新到可写的 Flash(overlayfs upper 层),会严重占用空间,甚至导致系统无法正常运行。
本文介绍一种方法:开机时将最新的 Geo 数据库下载到 /tmp(内存)并直接使用,从而保持规则最新、节省 Flash、减少磨损。
一、为什么要把规则放到 /tmp
- 节省 Flash 空间
- 固件自带的文件在 lower 层(只读分区)
- 更新文件会被写入 upper 层(可写 Flash 分区)
- upper 层的大文件会迅速耗尽剩余空间
- 延长 Flash 寿命
- 大文件频繁写入会增加磨损,影响使用寿命
- 保持规则最新
- 每次重启都能用最新版本,避免手动更新
二、方法原理
/tmp是 tmpfs(内存文件系统),读写不占 Flash- 重启后
/tmp内容会丢失,因此每次开机都需要重新下载 - Xray 配置文件可以直接指向
/tmp中的geoip.dat和geosite.dat
三、配置调整
在 Web 管理界面或配置文件中,将地理数据库路径改为:
/tmp/xray/geoip.dat
/tmp/xray/geosite.dat
这样,每次启动时,只要 /tmp/xray/ 里存在这些文件,Xray 就会直接加载它们。
四、优势与注意事项
优势:
- 最新规则:每次重启都能获取最新 IP/域名分类
- 省空间:不再在 upper 层占用 20MB+ 空间
- 保护 Flash:减少大文件写入次数
注意事项:
- 必须联网:开机时要能访问规则下载源,否则
/tmp为空,Xray 会找不到规则文件 - 建议加回退机制:下载失败时从
/rom/usr/share/v2ray/拷贝固件版本到/tmp - 内存占用:
/tmp用的是 RAM,需确保路由器内存足够
性能方面:由于地理数据库已放在内存中,访问速度本身就很快,无需额外启用 “Geo Data Parsing”,否则只会增加启动时间和额外内存占用。
五、可选优化
- 软链接方案
如果不想改配置文件路径,可以用软链接:rm -f /usr/share/v2ray/geoip.dat rm -f /usr/share/v2ray/geosite.dat ln -s /tmp/xray/geoip.dat /usr/share/v2ray/geoip.dat ln -s /tmp/xray/geosite.dat /usr/share/v2ray/geosite.dat这样/usr/share/v2ray永远指向/tmp/xray,配置不用动。
六、总结
将 GeoIP/Geosite 数据库放到 /tmp 并在开机时自动获取最新版本,是小闪存路由器的一种高效方案。