Support | 微信 & TG: @scomper

Surge-Cli 命令行控制

2016.06.01 07:17

Surge Mac 1.4.0 版本增加了命令行模式,可以通过命令行对 Surge 进行控制。

conf 配置文件中需要增加一行

external-controller-access = pw@0.0.0.0:6155


# warning, notify, info, verbose
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 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 = 8888
socks-port = 8889
loglevel = notify
external-controller-access = pw@0.0.0.0:6155

利用 ln 命令为 Surge 程序中包含的 Surge-cli 创建一个「符号链接」保存到个人目录下方便在终端中调用。

ln /Applications/Surge.app/Contents/Resources/surge-cli ./surge-cli

软链接创建完成后就可以在终端中运行对应的命令来获取结果。

surge-cli 默认会根据 ~/.surge.conf 中的配置,自动连接本机的 Surge。如果你想控制另一台设备上的 Surge (包括 iOS),请使用 -h 选项。

surge-cli -h pw@192.168.1.10:6155 COMMAND

基于命令的格式,范例中 apw 是配置中我设定的密码字符串,192.18.0.2 填写的是 iPhone 在 Wi-Fi 网络中获取的 IP (设置-无线局域网,点 ⓘ 查看 iPhone 的 IP 地址),COMMAND 部分填写 watch request 命令查看 iPhone 上的网络请求。

支持的命令列表:

  • watch request:执行该命令后持续输出最新收到的请求
  • test-rule :测试 hostname 对应的 rule(test-rule example.com)
  • dump dns:显示目前的 DNS 缓存和 DNS 条目
  • dump policy:显示所有可用的策略名称
  • dump active:显示目前活动的连接
  • dump request:显示最近的请求
  • dump rule:显示目前所有生效的规则
  • set-policy:设置针对某个 hostname 的策略(set-policy yach.me DIRECT),相当于在 0 位置插入了条 DOMAIN 或者 IP 规则
  • insert-rule:在特定 index 插入一条规则,index 和 dump rule 的结果一致(insert-rule DOMAIN-SUFFIX,yach.me,Proxy 10)
  • reload:重新加载配置(仅限 OSX)
  • flush dns:强制清除本地 DNS 缓存
  • flush rule:强制清除规则匹配缓存
Comments
Write a Comment