Surge Mac New Features: External Proxy Provider

External = external, exec = "/usr/local/bin/ss-local", args = "-c", args = "/usr/local/etc/shadowsocks-libev.json", local-port = 1080, addresses = 11.22.33.44
  1. 在使用到该策略时,使用 exec 和 args 参数启动该外部程序,之后向 SOCKS5 127.0.0.1:[local-port] 转发请求;
  2. 如果外部进程被终止,当再次使用该策略时会自动进行重启;
  3. Surge 会在启动 Enhanced Mode 时自动将 addresses 参数中的地址排除在 TUN 外;(所以请在该字段填写使用的代理 IP 地址)
  4. 当由 Surge 启动的外部进程的请求被 TUN 处理时,永远使用 DIRECT 策略;(为了应对像 obfs-local 这样的插件请求问题,外部进程的子进程也会被同样处理)
  5. Surge 退出时自动关闭所有外部进程,Enhanced Mode 关闭时自动清理加入的路由表。
  • 外部进程的 stdout 和 stderr 会被重定向到 /tmp/Surge-External-xxxxxx.log,方便进行排错;
  • 由于外部进程可能需要一点时间进行启动,所以如果访问 127.0.0.1:[local-port] 时遇到 Refused 错误,会在 500ms 后自动进行重试,每个请求最多重试 6 次;
  • 上述 3 和 4 的功能是有重叠的,请尽量使用 addresses 声明使用到的地址以排除 TUN 处理,这样可以减少系统开销,4 的功能是一重额外保护;
  • iOS 版本如果使用到了该策略,会当做 REJECT 处理。

--

--

--

iOS Freelance Developer, Technical Advisor

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Yachen Liu

Yachen Liu

iOS Freelance Developer, Technical Advisor

More from Medium

How to Hive?

Ryu Whitepapers V1.1

VIM — The Improved VI Editor

Access Fargate Windows Container