用PAC脚本可实现苹果笔记本公司走代理、回家直连的自动切换:需编写proxy.pac文件,通过Python本地HTTP服务托管,并在系统网络设置中配置URL为http://localhost:8000/proxy.pac。

苹果笔记本在公司用代理、回家直连,每次手动切换网络设置太麻烦,用PAC脚本能让Safari和系统级流量自动判断走代理还是直连,省去反复开关的步骤。
准备一个可用的PAC文件
打开文本编辑器(如TextEdit),切换到纯文本模式(格式→制作纯文本),粘贴以下基础代码:
function FindProxyForURL(url, host) {
if (isPlainHostName(host) ||
shExpMatch(url, "file://*") ||
isInNet(host, "192.168.0.0", "255.255.255.0") ||
isInNet(host, "10.0.0.0", "255.0.0.0")) {
return "DIRECT";
}
if (myIpAddress().indexOf("10.71.80.") == 0) {
return "PROXY 112.186.227.85:8080";
}
return "DIRECT";
}
把这段代码保存为 【proxy.pac】,注意扩展名必须是 .pac,不能是 .txt;保存时编码选“UTF-8”,位置建议放在桌面或 Documents 文件夹里——别放在 iCloud 同步目录下,部分版本 macOS 会因权限问题读取失败。
把PAC文件托管为本地HTTP服务
macOS 自带 Python,终端执行以下命令即可快速起一个临时 Web 服务:
cd ~/Desktop && python3 -m http.server 8000
这一步不能跳过:Safari 和系统网络设置【不支持 file:// 协议加载 PAC 文件】,只认 http:// 或 https:// 开头的地址。直接填 file:///Users/xxx/Desktop/proxy.pac 会静默失效,连错误提示都不给。
保持终端窗口开着,浏览器访问 http://localhost:8000/proxy.pac 能看到原始代码即表示服务已就绪。
在系统设置中启用PAC代理
第一步:打开「系统设置」→「网络」→ 点击当前连接(如 Wi-Fi 或以太网)右侧的「详情…」按钮;
第二步:切换到「代理」标签页;
第三步:勾选「自动代理配置」;
第四步:在「URL」输入框中填写:http://localhost:8000/proxy.pac;
第五步:点击右下角「应用」→ 关闭窗口。
此时所有走系统代理的应用(Safari、Mail、App Store 等)都会实时调用该脚本。不需要重启浏览器,新标签页立即生效。
验证PAC是否真正运行
方法一:访问一个明确应走代理的内网地址(如 http://intranet.company.local),看能否打开;
方法二:打开终端,执行 curl -v http://example.com 2>&1 | grep "Proxy-Connection",若返回 Proxy-Connection: keep-alive 或类似字段,说明请求已发出代理;
方法三:在 PAC 文件里临时插入一行 console.log("hit");,再刷新任意网页——虽然 macOS 不显示控制台日志,但可配合修改 return 值测试逻辑分支是否触发。
如果始终直连,先检查终端里 Python 服务是否仍在运行,再确认系统设置中 URL 地址末尾没有多余空格或中文标点。











