Surge for Mac 是针对 Surge for iOS 用户的一项「福利」,这意味着你首先必须是 Surge for iOS 的用户才可以激活和使用 Mac 版,两者一脉相承,除了配置文件的命名和保存位置不同,在使用体验上非常一致。
Mac 版的下载地址和激活都需要通过 iOS 版来实现,打开 Surge for iOS,切换到「More」标签页,展开「Surge Mac Beta」就能看到具体的激活步骤。需要注意的是下载地址区分大小写:http://surge.run/Surge-Mac.zip。

Mac 版配置文件和 iOS 版配置文件(476之后)可以通用,具体内容和 iOS 版的 Main.conf 基本一致,配置文件可以参考这里https://gist.github.com/scomper/843577fe581c1d6df974。
- Mac 配置文件增加了 interface 和 port 两个字段,用来定义缺省的 IP 地址和端口,默认是 0.0.0.0 和 6152(不写入 0.0.0.0 的话会影响 Parallels Desktop 通过代理访问);
- 配置文件需要命名成 .surge.conf 放在「个人」目录下(也可以通过前往文件夹~/ 定位);
- 启用 Surge 前,需要在「系统偏好设置 — 网络」中将 HTTP 和 HTTPS 的代理设置设置为 127.0.0.1:6152 ,SOCKS 代理中设置为 127.0.0.1:6153。


忽略这些主机与域的代理设置中(Proxy Bypass),至少要包含以下内容:127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local
设置 SOCKS 代理可以有效的解决 Mail.app 应用收发 Gmail 邮件的问题。
配置文件命名成包含 . 前缀的文件 .surge.conf 会被视为隐藏的系统文件,所以要复制和修改它首先需要 Finder 显示系统文件。Alfred 用户安装上 Finder Settings 的 Workflows,可以很简单的切换显示 Finder 的隐藏文件。

Surge Mac 1.0.2开始支持自动更新。Surge 运行过程中如果修改了配置文件可以点击「Reload Configuration」重新加载。

和 iOS 版一样,Recent Requests 窗口中可以直观的查看到网络访问的情况,点击具体的条目弹出详细内容窗口。另外状态栏图标包含流量显示,看起来又可以少装一个 iStat Menus 的应用了。Surge for Mac 的日志保存在 ~/Library/Logs/Surge/ 目录下,通过系统的「控制台」可以进行具体的查看和排错定位。
多个服务器配置(Proxy Group)
1.0.7 版本以后配置文件可以方便的定义多个可供选择的服务器。通过新增加的 [Proxy Group] 来显示 [Proxy] 中的多个服务器。

[Proxy Group] 配置群组命名应和 [Rule] 规则中调用的一致,如:图示中 A、B、C 三处的名称应一样。
Proxy Group 方式每个配置文件是相对独立的,可以包含各自的服务器地址和不同的规则。例如,按不同的规则的定义来命名区分成不同的配置文件,或者用不同的命名区分服务器提供商。
Proxy Group 配置对比范例
Surge 支持 Proxy Group、URL Rewrite 特性后新旧配置对比

单个群组和多个群组的对比,多分组的使用场景在于同一个配置中可以连接不同的服务器,另外就是全局直连和代理切换方便(主要是指 Mac 版)。

全局代理和直连切换,创建两个群组:Group 1(Proxy)、Group 2(nProxy),Rule 中 DIRECT 设置成 nProxy(LAN除外)。全走代理:Proxy、nProxy 都选代理服务器;全走直连:Proxy、nProxy 都选 Direct;正常情况(国内网站直连)下 Proxy 选代理,nProxy 选直连。
※ Mac 上的文本编辑器推荐 TextWrangler。
.surge.conf(多个群组)
[General] # warning, notify, info, verbose skip-proxy = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,localhost,*.local bypass-tun = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12 interface = 0.0.0.0 port = 6152 loglevel = notify
[Proxy] # 自行修改服务器地址、端口、用户名、密码 DIRECT = direct ??HK = https,1.2.3.4,443,username,password ??SG = custom,1.2.3.4,443,rc4-md5,password,http://custom/ss.module ??JP = https,1.2.3.4,443,username,password ??US = https,1.2.3.4,443,username,password
[Proxy Group] Proxy = select,DIRECT,??HK,??SG,??JP,??US
[Rule] # 规则部分请参照范例补充完善,此处仅示意 DOMAIN-KEYWORD,umeng.co,REJECT DOMAIN-KEYWORD,google,Proxy,force-remote-dns
GEOIP,CN,DIRECT FINAL,Proxy
[URL Rewrite] ^http://www.google.cn http://www.google.com.hk ^http://www.baidu.com/s\?wd= http://google.com/search\?q=
ShadowSocks 服务器地址的添加可以参照 SG 那一行,其中 custom 不可更改,ss.module 的地址必须有效。
[URL Rewrite]每行两个参数,以空格分隔,第一个是匹配用的正则表达式,第二个是替换的内容。正则的输入字符串是完整的 URL(包含 http://),输出的字符串也必须以 http:// 开头。该功能只对非 https 请求有效。
如果希望开机就自动加载 Surge,可以到「系统偏好设置-用户与群组」中将 Surge 添加到「登录项」。

※ 注意,登录项的设置中不要勾选 Surge 前的「隐藏」。
版本更新
- 1.0.2 +自动更新
- 1.0.4 +新特性:可以指定本地的出口 interface
- 1.0.5 +Proxy Group 和 URL Rewrite 特性
- 1.1.0 +SOCKS5 代理的支持,解决 Mail.app 等应用不走 HTTP 代理的问题
Surge Mac Beta 测试版最新动态请关注作者的 Twitter 账户:@Blankwonder,更多问答:https://trello.com/b/qy4sDvxg/surge