使用小火箭很久了,很多朋友都说,小火箭 Shadowrocket 不稳定,老自己掉后台,这次我就来说说我是怎么使用它的。

以前 iOS 不支持这类 VPN 应用,每次在 iOS 上翻墙,都是一件让人煞费苦心的事情。后来 Surge 出现了……我第一时间就买了,当然,再后来中区下架 Surge,我也彻底换了美区的 Apple ID,就没有再买另外一份 Surge,转而买了相对便宜的 Shadowrocket (俗称小火箭,其实中区我也买了的,不过也下架了不是?)。

总之,要想让小火箭用的好,是需要一番配置的,它是专门用来翻墙的,所以在功能上更偏向这边,相对与 Surge,Shadowrocket 也能支持更多协议。

修改测速模式

在 Shadowrocket 的 Setting 里,你可以设置它的 Ping Method,可选 ICMP 和 TCP,我们选择后者,这样测速出来的结果更贴近实际效果而不仅仅是检测服务器是否在线可达。(当然代价是测速需要的时间更长了一点点,如果你添加的服务器比较多,那可能就需要多等一小会才能全部出结果。)

添加自动测速

Surge 有个很不错的功能就是能够给多个线路定期自动测速并切换到最快的线路上,这样可以避免在服务器挂了后我们还得手动跑去测速并切换另一条线路。其实 Shadowrocket 也是有的,在 Home 页面,Global Routing 功能里即可发现。

设置 Shadowrocket 自动测速并切换代理
  • 首先在 Speed Test 中添加一个测速组,在组里增加几条平时测速比较快的线路,然后开启测速服务;
  • 接下来创建一个 Scene,由于这里我们只是要进行自动测速,所以 Scene 选择 Default,Routing 选择 Config,Type 自然是选择 Group,然后在下方的 Config 选择你正在使用的配置即可,最后给 Scene 一个名字,保存并选中之;
  • 最后,在 Global Routing 中,选择 Scene。

这样,你的 Shadowrocket 就能每隔 600 秒(默认配置)进行一次测速并选择最快的线路了。

崩溃自动重启

比起 Surge,Shadowrocket 支持一个让人意外的功能—— On Demand。这其实是 VPN 的一个有意思的功能,它可以让 iOS 系统级监听你正在请求的域名,当遇到特定的域名时,就先启动 VPN,再请求这个域名。

通过 On Demand 功能让 Shadowrocket 自动重启

我们到 Shadowrocket 的 On Demand 功能中,启动这个功能,并关闭 Disconnect on Sleep,Network 选 Any。

Shadowrocket 已经帮你内置了一些常用的域名通配,比如谷歌、Twitter之类的,如果有必要,你也可以自己添加一些。这样,当你在上网时,如果 Shadowrocket 后台挂了,在你点击下一个链接时,它就能再次被系统后台启动。

这样,你就再也不会遇到刷推正刷的开心,突然所有图片消失,检查了大半天,从路由器到服务器,最后发现其实是 Shadowrocket 服务自己停了的尴尬场景了。

随时更新的代理策略

我曾在一篇文章中写过关于白名单的事情《是时候使用 PAC 白名单了》,但奈何这个列表实在太大,根本无法被 iOS 所容纳——实际上,在新的 Surge 中即使是我的黑名单,也会被提示列表过大。

为此,我专门制作了一个根据 IP 地址判断的白名单列表……总之,这个规则在这里 geoip_whitelist.conf ,在 Shadowrocket 的 Config 页面,最底部添加 Remote Files,遗憾的是只能添加一个感谢网友 僊 提醒,见评论,点击页面右上角加号即可添加更多远程配置了),总之,我们把这个地址添加进去,它就会自动下载了。

这个配置文件是兼容 Surge 和 Shadowrocket 的,不过 Shadowrocket 在添加后会提示你是否也要导入服务器信息,这里点取消,配置中内置的服务器信息只是一个提示内容。

这也是我比较喜欢 Shadowrocket 的地方,它把服务器数据和代理策略单独存放,可以很方便地修改配置和策略。

一键更新配置文件

这时你会发现这个地址被保留在了页面底部,今后你可以每隔一星期点击一次,选择 Use Config,Shadowrocket 就会自动下载并更新本地配置了。(我的配置每周自动更新一次,对于本文中的 geoip 策略来说,仅仅更新了去广告规则)

 

发布者:R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

加入对话

20条评论

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

  1. 关于最后的一句“对于本文中的 geoip 策略来说,仅仅更新了去广告规则”理解有点不到位,请问geoip白名单和白名单有什么区别吗~

    1. 对于手机用户来说,可能最大的区别在于【体积】。和geoip白名单对应的是域名白名单,域名白名单会列举所有能直连的域名,大概五万多个(目前),这个列表太大了,导致移动端不可能加载完成。所以移动端如果想用白名单,只能用geoip。
      从功能上来说,geoip实际上是根据app自带geoip数据库进行匹配的,由于域名更替的更频繁远比ip段变化频繁,如果你不经常更新域名白名单,那么它就会很快开始陆续失效,所以使用,使用 geoip 进行匹配则一定程度上规避这个问题,相对有效性更加持久。

      但如果你用geoip,那么访问一个网站,客户端必然要先解析这个域名,然后用拿到的ip去做比对,如果这个域名被污染,得到了一个“不存在”的ip,这还好说,毕竟是白名单,那么其实是不受影响的,但如果它重定向到了另一个国内的真实ip,那你就会被污染。反观域名规则,因为你访问的域名不在列表,就直接走代理了。再往深了说就是DNS泄露问题,使用域名规则直接判断避免解析,一定程度上也能避免DNS泄露,但一般来说在本文中不太考虑这个问题就是了。

  2. 我使用了您的配置,但是访问百度时依旧是通过代理服务器而不是直连,请问是什么地方出了问题吗。。

  3. 请问一下测速部分是不是说反了?ICMP 和 TCP 文中是说 TCP 更好用,我实测 ICMP 速度更慢,TCP 秒测。是不是 ICMP 才是实际连接?

    1. 实际上这个tcp是tcp传输到页面还是tcpping,我还真搞不清楚,按照那个操作逻辑以及我这段时间使用感受来说应该是 tcp ping,但总的来说tcp ping会更真实一些,有些服务器会禁止回复 icmp 包,俗称“禁ping”,总之,还是用 tcp 模式更接近真实效果,毕竟实际传输也是tcp包。

        1. 这个自动切换有一定的阈值,并不是每次测试都会切换,具体可在设置中设定相关阈值,也就是两者相差多大延迟才会切换。(默认 200ms,如果你的线路都很快,那么你可以设置到比如10ms之类的,太小的话会导致线路每次测速都切换。)

          1. 阈值改小了,之前默认的 速度测速 中的 URL测试设置 中的测速网站上不去,改成百度了,但还是不能自动调整。。。。

  4. scene1: cellular config geoip_whitelist.conf 实现使用国内运营商网络时的代理+去广告
    scene2: wlan_spec direct geoip_whitelist.conf wlan_spec已翻, 希望实现直连去广告
    问题: 去广告不生效, 把direct改成config就直接再翻一次墙浪费wlan_spec优势. 是否有单纯去广告.conf
    感谢