在使用 Xray / Sing-box / V2Ray 进行分流时,geoip.datgeosite.dat 是核心的地理信息数据库文件:

  • geoip.dat:IP 地址 → 国家/地区映射
  • geosite.dat:域名 → 分类映射(流媒体、广告、社交等)

在小闪存设备(如 16MB Flash 路由器)上,这两个文件的体积可能接近 30MB。如果直接更新到可写的 Flash(overlayfs upper 层),会严重占用空间,甚至导致系统无法正常运行。

本文介绍一种方法:开机时将最新的 Geo 数据库下载到 /tmp(内存)并直接使用,从而保持规则最新、节省 Flash、减少磨损。


一、为什么要把规则放到 /tmp

  1. 节省 Flash 空间
    • 固件自带的文件在 lower 层(只读分区)
    • 更新文件会被写入 upper 层(可写 Flash 分区)
    • upper 层的大文件会迅速耗尽剩余空间
  2. 延长 Flash 寿命
    • 大文件频繁写入会增加磨损,影响使用寿命
  3. 保持规则最新
    • 每次重启都能用最新版本,避免手动更新

二、方法原理

  • /tmptmpfs(内存文件系统),读写不占 Flash
  • 重启后 /tmp 内容会丢失,因此每次开机都需要重新下载
  • Xray 配置文件可以直接指向 /tmp 中的 geoip.datgeosite.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 并在开机时自动获取最新版本,是小闪存路由器的一种高效方案。

Leave a Reply

Your email address will not be published. Required fields are marked *