前言

最近开始造自己的代理轮子后,更新了一下一些小工具的用法,这里做一下记录。

1. 正确使用SwitchyOmega

博主几乎从SwitchyOmega发布后第一时间就开始使用,但对它的功能还不是完全了解,最近做了一些功课,总结如下:

  • SwitchyOmega是一个代理设置工具,可以根据规则为Chrome/Firefox决策哪些网站应该使用哪些代理
  • SwitchyOmega不负责连接代理,只负责提供决策
  • SwitchyOmega提供了便捷的代理管理功能,最突出的一点应该是动态增删代理规则

SwitchyOmega支持四种情景模式:

  • 代理服务器:配置代理服务器及凭证
  • 自动切换模式:根据切换规则自动选择情景模式
  • PAC情景模式:使用在线PAC脚本选择代理
  • 虚拟情景模式:作为某个其他情景模式使用

安装后,默认有一个 Auto Switch 和一个 Proxy 模式。

通常我们在 Proxy 中配置代理服务器及凭证,在 Auto Switch 中设置 AutoProxy 格式的 gfwlist,默认直连目标网址,匹配规则的网址使用代理服务器访问。

平时默认使用 自动切换模式,遇到无法访问的网站时,该模式会提醒是否将当前网站加入规则列表。

如果有多个可用的代理服务器时,可以像截图中一样,引入 虚拟情景模式 代替实际的 代理服务器 情景模式,可避免修改 自动切换模式 中已添加的规则。

虚拟情景模式 提供了迁移功能,新建后可替换其他已配置的 代理服务器 情景模式。

2. macOS开机自启动程序

macOS中可以使用plist文件和launchctl配置开机启动项,homebrew安装的许多需要后台运行的程序都采用了这种方式,这里有两个目录

  • /Library/LaunchAgents:系统开机启动项,需要root权限来配置
  • ~/Library/LaunchAgents:用户开机启动项,无需root权限

假定我们的程序位于 /usr/local/bin/akari,配置文件位于 /usr/local/etc/akari

首先参考shadowsocks-libev配置文件,编写一个plist文件,Label设置为 mikumaycry.akari

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>mikumaycry.akari</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/akari</string>
      <string>-c</string>
      <string>/usr/local/etc/akari/akari.json</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
  </dict>
</plist>

将文件放置到 ~/Library/LaunchAgents/mikumaycry.akari.plist

启动程序

1
launchctl load ~/Library/LaunchAgents/mikumaycry.akari.plist && launchctl start mikumaycry.akari

关闭程序

1
launchctl unload ~/Library/LaunchAgents/mikumaycry.akari.plist && launchctl stop mikumaycry.akari

第一次使用时,用命令启动程序后,下次开机便可自动加载。

更新程序时,需先调用launchctl命令解除plist文件的加载,否则杀死程序后也会自启动。

3.Windows开机自启动程序

问题

  • 需要在本地运行一个代理的客户端程序
  • 端口绑定需要管理员权限
  • 手动运行程序或使用bat文件运行程序会出现黑框

解决方式

假定我们的程序及配置文件位于目录 C:/Software/akari

首先,编写akari.vbs文件,放置在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

文件内容如下

1
2
3
set ws=WScript.CreateObject("WScript.Shell")

ws.Run "C:\Software\akari\akari.bat /start",0

然后,编写akari.bat文件,放置在目录 C:/Software/akari

文件内容如下

1
2
cd C:\Software\akari
akari.exe -c akari.json

最后,启动 Windows PowerShell(管理员) ,手动执行 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\akari.vbs 或重启Windows,即可在任务管理器中看到刚刚配置的程序。