Surge 使用手册
  • 简介
  • 总览
    • 组件
    • 配置文件
  • 代理规则
    • 域名规则
    • IP 地址规则
    • HTTP 规则
    • 进程规则
    • 逻辑规则
    • 杂项规则
    • 规则集
    • Final 规则
  • 策略
    • 代理策略
    • 内置策略
    • 策略组
  • DNS
    • DNS 服务器
    • 本地 DNS 映射
  • HTTP 处理
    • HTTPS 解密
    • 重写 URL
    • 重写请求头
  • 脚本
    • 基础
    • HTTP 请求
    • HTTP 响应
    • 脚本规则
    • 事件
    • DNS
    • 计划任务
  • 其他
    • 杂项
    • 托管配置
    • 增强模式
    • 网关模式
    • SSID 挂起
    • URL Scheme
    • Snell 服务端
    • 模块
    • DNS over HTTPS
    • HTTP API
  • 更新日志
    • Surge Mac
由 GitBook 提供支持
在本页

这有帮助吗?

导出为 PDF
  1. 脚本

脚本规则

使用脚本进行规则判定,该类型下第二参数为规则名。

script = type=rule,script-path=rule.js

然后在 [Rule] 中加入规则:

SCRIPT,ssid-rule,DIRECT

脚本返回一个词典,字段 matched<Boolean> 表示是否匹配该规则。

传入参数有:

  • $request.hostname<String>

  • $request.destPort<Number>

  • $request.processPath<String>

  • $request.userAgent<String>

  • $request.url<String>

  • $request.sourceIP<String>

  • $request.listenPort<Number>

  • $request.dnsResult<Object>

默认情况下,SCRIPT 规则不会触发 DNS 解析,如果需要进行 DNS 解析,可使用 requires-resolve 修饰规则

SCRIPT,ssid-rule,DIRECT,requires-resolve

DNS 结果将出现在 $request.dnsResult 字段。

一个简单样例:

var hostnameMatched = ($request.hostname === 'home.com');
var ssidMatched = ($network.wifi.ssid === 'My Home');

$done({matched: (hostnameMatched && ssidMatched)});
上一页HTTP 响应下一页事件

最后更新于4年前

这有帮助吗?