Surge Module使用指南

Surge Module之前一直忽视,我也安装过一些别人贡献的module,但没有仔细对比,体会作用。最近看了些资料,经过实践,觉得有些场景下非常适合使用,顿时觉得真香。

module介绍

关于module先介绍几点,方便了解。

  1. 用官方的话说module即给当前profile打patch补丁,因此可以是配置的一部分
    • 有限支持Rule,MitM等,具体看这里
  2. Module的配置优先级高于当前Profile,且多个Module按照顺序执行,即后覆盖前
  3. Module开启状态并不进行设备间同步,当然配置本身是会同步
  4. profile现在支持include profile片段了,比如可以将rule部分单独一个文件,然后在主profile包含即可。但要了解profile片段必须是完整的部分,不存在主profile/profile子文件都有rule的情况。这点与module还是不同

Module修改

  • Module中JS修改后,不需要重启

  • cron修改需要重启

调试

JS中可以使用console.log进行打印输出,日志文件支持查看

Mac下位置在这里

iPhone下位置在这里

我的使用情况

关于module的使用,当前我有以下几个实践

  1. 安装第三方module,比如招商银行/京东自动签到这种小羊毛,另外一个好处是也有利于我理解web安全,HTTP请求等
    • 需要注意第三方module一般是本地托管一个地址,surge负责自动更新,但module也有窃取个人信息的风险,这点注意,不要轻易安装不明来源的第三方module
    • 部分module需要解密MITM,如果开启太多,也会影响性能,因此按需安装/开启,不宜过多。
  2. 自行开发module,比如MitM all,很多时候为了抓取一个app下的请求需要HTTPS解密,但现在app 请求的服务端并非只有一个,发现一个配置一个的效率太低,于是可以直接模块形式配置解密所有网址/IP的,这样如果需要时,直接模块开启。平时关闭即可

已安装的module

  • v2ex-DailyBonus

    自动签到领取X铜币,长期混迹v2,问问题/回答都需要花费币,因此自动签到很需要

  • Mitm All

    临时开启对于所有站点的MitM

  • iQIYI Dailybonus社区

    爱奇艺自动签到

  • JD DailyBonus社区

    京东自动签到,获取京豆,虽然不多,但毕竟是钱,何必浪费

  • SS订阅详情

    显示ShadowSocks机场订阅详情,比如剩余流量

同时推荐下载第三方module地址,可以访问寻找社区贡献的module,如果满足不了自己的需求,可以自行开发实现:

注意

module配置修改后,需要重启Surge生效

举例JD DailyBonus

了解module实现,有助于更好的使用。以JD这个模块为例,并不是安装启用后就可以直接使用,阅读模块中的注释说明,了解模块具体使用

  1. 访问https://bean.m.jd.com
  2. 手机提示写入cookie成功,则可正常使用
  3. 签到执行实际会按照配置的cron规则执行

原理

当我们访问https://bean.m.jd.com时,surge会解密HTTPS请求信息,获取cookie,写入Surge的持久化存储中,这样自动JOB没到指定时间,即可以发起签到API请求。

Surge API

  • module如果想做开关,手动去点太过低效,好在Surge API开放了module操作,Mac端可以使用Alfred workflow实现

  • 如果是手机端,考虑捷径/shortcut解决,因为surge有run script支持。

常见问题

  1. invalid module

    注意配置中设备类型限制,比如#!system=Mac则iPhone导入会报错

  2. Error: The Profile file can’t be parsed: Failed to load detached section from: xxxxxxx.dconf

    iOS 端 Profile Sync 开启选 iCloud Drive

写在最后

Surge确实好用,但使用门槛并不低,正如官方介绍,其主要是面向开发者使用。

相关文档