@
jeffma 你这个真心搞复杂了,不需要用 location 的,你的只有两种情况 1 , 在公司 2 ,在其他地方。可以通过判断 ssid 来修改代理参数,比如你的公司的 Wi-Fi ssid 为 “ office ”,可以用下面的 shell 来做:
if [ "$(networksetup -getairportnetwork en0 | awk '{print $4}')" = "office" ]; then #在公司
# 先关闭 Wi-Fi 的所有代理设置
networksetup -setwebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
networksetup -setautoproxystate Wi-Fi off
#打开代理的 autoproxy ,设置为公司的 pac
networksetup -setautoproxystate Wi-Fi on
networksetup -setautoproxyurl Wi-Fi http://公司 pac 地址
else # 不在公司
# 先关闭 Wi-Fi 的所有代理设置
networksetup -setwebproxystate Wi-Fi off
networksetup -setsocksfirewallproxystate Wi-Fi off
networksetup -setautoproxystate Wi-Fi off
#打开代理的 autoproxy ,设置为电脑本地的 pac
networksetup -setautoproxystate Wi-Fi on
networksetup -setautoproxyurl Wi-Fi http://你本地的 pac 地址
fi
就搞定了,效果一样, shadowsocks app 不需要动它,让它一直在后台运行。