Surge配置全解析:从入门到精通

目录

  1. 什么是Surge配置
  2. Surge配置文件结构
  3. 常用Surge配置项
  4. Surge脚本编写
  5. Surge配置优化技巧
  6. Surge配置备份与迁移
  7. FAQ

什么是Surge配置

Surge是一款功能强大的网络工具,可以帮助用户实现网络代理、流量监控、DNS管理等功能。Surge的强大之处在于其灵活的配置系统,用户可以通过编辑配置文件来自定义Surge的各项功能。

Surge配置文件是一个纯文本文件,用户可以根据自己的需求对其进行编辑和修改。配置文件中包含了Surge的各项设置,如代理服务器信息、分组策略、规则匹配、脚本功能等。通过合理地配置这些设置,用户可以充分发挥Surge的潜力,实现个性化的网络管理。

Surge配置文件结构

Surge配置文件主要由以下几个模块组成:

General模块

General模块用于配置Surge的基础设置,如配置文件版本、HTTP代理设置、SOCKS代理设置等。

[General] loglevel = notify interface = 0.0.0.0 socks-interface = 0.0.0.0 http-interface = 0.0.0.0 socks-port = 7891 http-port = 7890

Proxy模块

Proxy模块用于配置代理服务器信息,包括服务器地址、端口、协议类型、加密方式等。

[Proxy] Proxy1 = ss, 1.2.3.4, 8388, aes-256-cfb, password Proxy2 = vmess, 4.5.6.7, 443, username, 23ad6b7568c4f02e8858a7c18844b7fd

Proxy Group模块

Proxy Group模块用于配置代理分组,可以根据不同的规则将代理服务器划分为不同的分组。

[Proxy Group] Proxy = select, Proxy1, Proxy2 AdProxy = select, DIRECT, Proxy

Rule模块

Rule模块用于配置流量匹配规则,根据不同的规则将流量导向不同的代理分组或直连。

[Rule]

DOMAIN-SUFFIX,local,DIRECT

DOMAIN-KEYWORD,google,AdProxy GEOIP,CN,DIRECT FINAL,Proxy

Script模块

Script模块用于配置Surge的脚本功能,可以编写自定义的脚本来实现各种网络管理功能。

[Script]

traffic = type=http-response,pattern=^https?://(www.)?example.com,script-path=https://example.com/traffic.js

通过合理地配置这些模块,用户可以实现Surge的各种高级功能,满足不同的网络管理需求。

常用Surge配置项

代理服务器设置

在Proxy模块中,用户可以配置各种类型的代理服务器信息,如SS、VMess、Trojan等。每个代理服务器配置项包含以下信息:

  • 服务器地址
  • 服务器端口
  • 加密方式
  • 密码或密钥

通过合理地配置这些信息,用户可以连接到不同的代理服务器,实现网络代理功能。

分组策略设置

在Proxy Group模块中,用户可以配置不同的代理分组。分组策略包括:

  • select: 手动选择分组
  • url-test: 根据延迟测试选择分组
  • fallback: 根据可用性选择分组
  • load-balance: 根据负载均衡选择分组

用户可以根据自己的需求,配置不同的分组策略,实现更灵活的代理切换。

规则匹配设置

在Rule模块中,用户可以配置各种流量匹配规则,如域名、关键词、地理位置等。根据不同的规则,将流量导向不同的代理分组或直连。

规则匹配支持以下几种类型:

  • DOMAIN: 域名匹配
  • DOMAIN-SUFFIX: 域名后缀匹配
  • DOMAIN-KEYWORD: 域名关键词匹配
  • IP-CIDR: IP地址段匹配
  • GEOIP: 地理位置匹配
  • USER-AGENT: 用户代理匹配

用户可以根据自己的需求,灵活配置各种规则,实现精细化的流量管理。

脚本功能设置

在Script模块中,用户可以配置各种自定义脚本,实现Surge的高级功能。脚本可以用于流量监控、网页重写、DNS管理等场景。

脚本配置包含以下信息:

  • type: 脚本类型,如http-request、http-response等
  • pattern: 匹配模式,如URL、请求头等
  • script-path: 脚本路径,可以是本地文件或远程URL

通过编写灵活的脚本,用户可以大幅扩展Surge的功能,满足各种个性化需求。

Surge脚本编写

脚本语法介绍

Surge脚本使用JavaScript语言编写,支持各种常见的JS语法和API。脚本可以访问HTTP请求/响应的各种属性,如URL、头部、Body等,并进行相应的处理和修改。

脚本中可以使用的常用API包括:

  • $request: 获取HTTP请求对象
  • $response: 获取HTTP响应对象
  • $done(): 完成脚本执行并返回修改后的请求/响应

通过灵活运用这些API,用户可以编写出各种功能强大的Surge脚本。

常用脚本示例

以下是一些常用的Surge脚本示例:

  1. 流量监控脚本: javascript var traffic = 0;

$httpClient.get(‘http://example.com/api/traffic’, function(error, response, data){ if (error == null) { traffic = JSON.parse(data).total; $done({ response: { status: response.status, headers: response.headers, body: JSON.stringify({ total: traffic }) } }); } else { $done({}); } });

  1. 网页重写脚本: javascript var body = $response.body; var obj = JSON.parse(body);

obj.data.vip = true; obj.data.expire_time = 1735669200;

$done({body: JSON.stringify(obj)});

  1. DNS管理脚本: javascript var dns = $configuration.dns; var hosts = { “example.com”: “1.2.3.4”, “google.com”: “5.6.7.8
正文完