Surge:必备的网络调试工具(Mac 版更新支持 SOCKS 代理,Mail.app 终于有救了)

目录 iOS App

2016-04-12 Mac 版 Surge 客户端更新,支持 SOCKS 代理

对于习惯使用 Mail.app 收发 Gmail 以及 Dropbox 的 Mac 粉来说,Surge for Mac 本次更新必将成为经典,新版的 Surge for Mac 已经支持 SOCKS 代理,现在只需到“系统网络设置-代理”下勾选“SOCKS 代理”,然后在 SOCKS 代理服务器中填入 127.0.0.1,端口填写 6153,就能自动支持 Mail.app 收发 Gmail,无需更改.surge.conf 文件,由 Surge 直接进行 SOCKS 代理服务。

2016-04-05 更新 Mac 版使用教程

在 Surge(iOS) 更新到 1.2 版本后突然发现 More 标签频道出现了 Surge Mac Beta 的入口,这才知道 Mac 版已面向所有 Surge 用户开放使用,遂赶紧搬出 Mac,折腾!大义凛然的卸载了 GoAgentX,按照 App 里的地址下载客户端(http://surge.run/Surge-Mac.zip),然后在 Mac 上准备了一个 surge.conf 配置文件,由于系统差别,Mac 上不准配置多个 Conf 文件,这里推荐 @scomper 老师自制的 conf 文件,非常全面,可以从这里下载。

但 Surge 要求 conf 文件必须以 “.”开头,而且要把文件放在用户根目录(~/),打开终端,输入进入 “~/” 的命令(即:ls ~/),然后执行“mv surge.conf .surge.conf”,即可将 surge.conf 文件更名为“.surge.conf”。OS X 系统对“.”开头的文件是默认隐藏的,因为都是系统文件咯,如果想查看或者编辑,可执行“defaults write com.apple.finder AppleShowAllFiles -bool true”。

完成后上述步骤后,在 Mac 与 iOS 两端打开蓝牙(4.0),然后在 Mac 上启动 Surge,接着在 iOS 上的 Surge Mac Beta 页面里点击“Tap to Activate”激活 Mac 版 Surge。

最后一步,也是很关键的,需要你在 OS X 上设置代理。打开设置-网络,进入“高级”,找到“代理”标签页,勾选“ Web 代理”和“安全 Web 代理”,并在“Web 代理服务器”中输入“127.0.0.1”,端口号 6152,然后在 Bypass(忽略这些主机与域的代理设置)中填入:“127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local”。

做完上述工作还不够,需要反过来对 “.surge.conf” 进行编辑,其中首先要在[Proxy]一栏加入你的服务器地址、端口号、用户名和密码,Scomper 提供的这个 surge.conf 文件里可不送你服务器资源的,首先是 DIRECT = direct,这样确保国内网站可直接访问(或者你不想用代理的网站),然后根据你服务器的地点也插入多条服务器节点信息,一般我们以国籍简称命名,前面最好加上个 Emoji 国旗图标看上去更美观。

Mac 版支持 Proxy Group,许多用户是不止拥有一套代理服务的,根据工作学习需求,你可以定义多组服务器轮流为你服务,在[Proxy Group]里你可以设置 N 个组,这些组均在 Menubar 上显示,注意[Proxy Group] 组命名和 [Rule] 规则是一样的。

此外,Scomper 的这份 conf 文件也包含了许多实用的过滤规则,比如:

屏蔽国内外的网络广告显示:(部分规则)

# AD Block DOMAIN-KEYWORD,2345,REJECT DOMAIN-KEYWORD,admarvel,REJECT DOMAIN-KEYWORD,admaster,REJECT DOMAIN-KEYWORD,adsage,REJECT DOMAIN-KEYWORD,adsmogo,REJECT DOMAIN-KEYWORD,adsrvmedia,REJECT

屏蔽新浪的广告:

# sina DOMAIN-SUFFIX,ad.sina.com.cn,REJECT DOMAIN-SUFFIX,adm.leju.sina.com.cn,REJECT DOMAIN-SUFFIX,atm.sina.com,REJECT DOMAIN-SUFFIX,beacon.sina.com.cn,REJECT DOMAIN-SUFFIX,dcads.sina.com.cn,REJECT DOMAIN-SUFFIX,sax.sina.cn,REJECT DOMAIN-SUFFIX,sax.sina.com.cn,REJECT DOMAIN-SUFFIX,tjs.sjs.sinajs.cn,REJECT

屏蔽视频网站内的广告(很实用,部分规则):

# Ads in Video apps DOMAIN-SUFFIX,actives.youku.com,REJECT DOMAIN-SUFFIX,ad.api.3g.tudou.com,REJECT DOMAIN-SUFFIX,ad.api.3g.youku.com,REJECT DOMAIN-SUFFIX,ad.m.iqiyi.com,REJECT DOMAIN-SUFFIX,adcontrol.tudou.com,REJECT DOMAIN-SUFFIX,adplay.tudou.com,REJECT DOMAIN-SUFFIX,afp.qiyi.com,REJECT DOMAIN-SUFFIX,agn.aty.sohu.com,REJECT

以及最新的 URL Rewrite:(可将搜索引擎自动跳转到 Google)

# 搜索 URL 替换 ^http://www.google.cn http://www.google.com.hk ^http://m.baidu.com/s\?from=1099b&word= http://google.com/search\?q= ^http://www.baidu.com/s\?wd= http://google.com/search\?q=

点击“Reload Configuration”可自动修改后的 .surge.conf 文件进行重新加载,点击“Recent Request”可查看网络访问的情况,Surge for Mac 的日志保存在 “~/Library/Logs/Surge/” 目录下,通过 OS X 自带的控制台可查看错误消息和排错定位。

本次操作参考了 Scomper 的《Surge for Mac 简明指南》教程

今天是每个人的 Blue Monday,但却是基友们的  Happy Mondays,因为今天万众瞩目的 Surge.app 正式上架 App Store(售价 68 元),它是干嘛的我就不在这多语了,有需求的人都懂,这里主要与大家介绍下 Surge 的主要特点,欢迎大家在评论中补充自己的使用体会。

大家在 iPhone 上用普通的 APN/VPN 时,由于不是与 iOS 底层系统进行通信,经常会遇到频繁短线,网速慢等常见现象,而 Surge 则利用了最新的 iOS 9 新特性 Network Extension,利用 Packet Tunnel Provider 为系统蒙上一层代理,可以从 iOS 9 Device 的任何 App 中搜集 HTTP / HTTPS/ TCP 流量,然后转发到 HTTP、HTTPS、SSL,SOCKS、SS 等代理服务器上;自动走国内流量 Direct 连接国内网站,遇到被 fucked 的国外网站走 Proxy,遇到不喜欢的站内/App自带广告还可以强制 REJECT;另外对于 Mail.app 这类不尊重系统代理的应用程序强制性的走系统 tun 设备(force-remote-dns),下面是某推著名网络大牛贴出的 Rule 参考编制模板,对代理技术熟悉的同学可以看看。(原文地址

[General] # warning, notify, info, verbose loglevel = notify [Proxy] # http, https, socks5 # SSLedge 使用 https,老式 APNp 用 http Proxy = https, server, port, username, password, ciphers [Rule] # 域名关键字,干掉不想要的请求 DOMAIN-KEYWORD,umeng.co,REJECT … # 常用网站优先匹配,加快速度。使用代理转发,完全没有 CDN 被干扰的问题~ DOMAIN-SUFFIX,cn,DIRECT DOMAIN-SUFFIX,qq.com,DIRECT DOMAIN-SUFFIX,ls.apple.com,DIRECT DOMAIN-SUFFIX,apple.com,Proxy … # 强制这些不尊重系统代理的请求走 packet-tunnel-provider,解决 Twitter.app 和 Mail.app 收发邮件问题 DOMAIN-KEYWORD,twitter,Proxy,force-remote-dns DOMAIN-KEYWORD,gmail,Proxy,force-remote-dns # instagram.app 也没问题 DOMAIN-KEYWORD,instagram,Proxy,force-remote-dns # Telegram.app 也没问题 IP-CIDR,91.108.56.0/22,Proxy,force-remote-dns … # LAN IP-CIDR,192.168.0.0/16,DIRECT … # 其余的请求使用 GEOIP 判断服务器所在地,如果是国内的,走直连,搞定 GEOIP,CN,DIRECT # 最后 Matchall,丢给代理 FINAL,Proxy

添加配置文件

如果你对配置文件的设计非常熟悉可以自行一步一步添加配置信息,如果你想立刻体验 Surge 的代理速度,可以尝试从本文末推荐的几个 Conf 文件里直接在线下载,然后编辑一下自己购买或搭建的代理服务器信息(地址,账户信息等)即可使用,此外还能通过 iCloud、iTunes 文件分享来将配置文件导入到 Surge App 里。

Surge 的工作原理:

Surge 包含两个主要的工作模块,一个是 Surge proxy server,还有一个是 Surge TUN interface,对于普通的 HTTP 访问请求来讲,Surge proxy server 完全可以搞定,而对于像 Mail.app 这种不会遵守系统代理规定的应用程序,由于他们需要使用Raw TCP Socket,所以必须经过 Surge TUN interface,但目前这个 TUN 接口仅仅支持 TCP 协议,UDP、ICMP 协议包将被自动遗弃。

以下是 Surge 配置中 Rule,也就是分流规则中 DIRECT 列表网址和需要走代理(Proxy)的国外网址,由于 Surge 不能在线更新 Rules,所以需要你自己经常去维护这个 Rule。

Surge 的功能非常强大,像支持 3D Touch (真正的快速开关代理功能)和 Widget 开关代理(官方目前提高的是一个伪开关,每次操作会自动跳转到 App 主页面,不过能与 Launcher 配合做快捷开关,语法是:surge:///toggle)这都是小儿科,人家专注的还有网络流量分析和日志记录。

你可以在 Statistics 里查看在线时长,通过 WiFi 和 Cellular 各走了多少流量以及直连(DIRECT)与代理(PROXY)分别走了多少流量,这也算是能及时提示用户注意购买的代理服务流量是否超标。

对于仅仅有代理上网的用户来说,日志记录功能从来不会去看,但对于开发者来说,他们可以利用流量日志分析自己 App 的用户访问使用习惯,从而更好的优化自己的作品。

以下是我的 Surge 网速测试结果:

使用这款 App 需要用户自行建立或购买相关代理产品,这里我们推荐使用 SSBstrillTech Runo 等。对于技术不是太过关的同学我们推荐以下几位网络基友们推出的个性化配置文件,其中包括了直连的主流国内网站和常见的 fucked 美帝网站,基本上能满足大家的需求:

Surge 下载与购买地址请点击文章左下方的下载按钮,或直接在 iDevice App Store 上搜索 Surge 这个关键词。

注:本文采用了 @Paveo 关于 《Surge, the missing tool for iOS》一文中的 3D Touch 截图以及 Surge 官方说明书中的产品工作原理图。

良品精选

20 条评论

  • Neo
    2016-09-03

    终于可以用系统的mail收gmail了,但是没法发出邮件啊。诊断服务器,google的IMAP可以连接,STMP无法连接,是账户设置问题吗?

  • a
    2016-08-25

    请教一下,surge 启动后,如何设置使 Dropbox 客户端正常连接。

  • a
    2016-08-25

    请教一下,surge 启动后,如何设置使 Dropbox 客户端正常连接。

  • since2004
    2016-08-18

    期待mac版本破解版

  • 宝宝猪
    2016-06-29

    这玩意都成硬通货了,太贵了。吾等屌丝还是用oneDNS,感觉广告过滤也不错。

  • yumemor
    2016-06-01

    现在这货已经涨价到 600大洋了

    • bourne
      2016-06-05

      淘宝买

    • yumemor
      2016-06-06

      已入手

  • Dvel
    2016-04-28

    不知道有没有给新手看的,让新手可以编写规则的教程。。。

  • NightreX
    2016-04-22

    按照步骤都搞定了 但是在Mac端启动surge 弹出如下错误:Configuration must start with section header.求解

    • Frank
      2016-04-22

      .surge.conf 里面书写有无,检查 [Proxy] 这类字段。

  • qwerty
    2016-04-19

    还是用ss客户端面了。。 自己搭梯子

  • 自由无界
    2016-04-10

    楼主教程做的很好~推荐appsocks.net出售的ss账号,搭配surge刷youtube秒开~

  • since2004
    2016-04-07

    用上这个规则后暂时可以屏蔽优酷广告,但过会就不行了,另外,百度 无法打开了

    • Frank
      2016-04-07

      Conf 里把 baidu 主页屏蔽了,可以把那条规则去掉。

  • playmakerx
    2016-04-06

    我装了surge,下载了推荐的配置文件并按照文中说明操作,通过ios上的app激活,但是还不好用。求解怎么删除surge的配置文件,我找了半天也找不到,运行那个命令也没用。

    • Frank
      2016-04-06

      打开 “~/” 目录,在终端里输入命令:“defaults write com.apple.finder AppleShowAllFiles -bool true”,然后再执行 killall finder,此时可看到隐藏的 .surge.conf 文件,删之。

    • playmakerx
      2016-04-06

      原来是没有killall finder,谢了

  • fuwu1245
    2015-10-27

    😛

    • 萌胖只
      2016-03-18

      真心买不起,买了个shadowrocket。

发表评论

电子邮件地址不会被公开。 必填项已用*标注