macOS“网络代理绕过列表”需用networksetup -setproxybypassdomains命令覆盖式写入,支持通配符但须逐项加引号;-getproxybypassdomains可查看当前规则,-setproxybypassdomains "Wi-Fi"(无域名)可清空,该设置与PAC互补且受SIP保护。
macos 的“网络代理绕过列表”(即 ignore these hosts and domains)无法直接通过标准终端命令完整读写,因为该设置存储在系统网络服务的配置 plist 中,且受 sip 保护。但你可以用终端配合系统工具完成查看、批量添加、清空和 pac 文件协同优化等关键操作。
查看当前绕过列表内容
绕过规则保存在每个网络服务(如 Wi-Fi、以太网)的配置中。先确认活跃服务名:
- 运行
networksetup -listallnetworkservices查看服务列表 - 通常主服务是
Wi-Fi或Ethernet;若含空格,需用引号包裹,如"Wi-Fi" - 执行:
networksetup -getproxybypassdomains "Wi-Fi"
输出为换行分隔的域名或 IP 段(如 localhost、192.168.*、*.internal),这就是当前生效的绕过规则。
批量修改绕过列表(覆盖式写入)
networksetup 不支持追加,只能一次性替换全部内容。例如,想让本地服务、苹果域名、内网全直连:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
- 准备规则字符串:
"localhost 127.0.0.1 *.local 192.168.* 10.* *.apple.com *.icloud.com *.cdn-apple.com osxapps.apple.com" - 执行:
networksetup -setproxybypassdomains "Wi-Fi" localhost 127.0.0.1 "*.local" "192.168.*" "10.*" "*.apple.com" "*.icloud.com" "*.cdn-apple.com" osxapps.apple.com - 注意:含通配符或空格的项必须用英文双引号包裹,且不能合并成一个长字符串——每个规则需单独作为参数传入
清空绕过列表并重置
执行以下命令即可清除所有条目:
-
networksetup -setproxybypassdomains "Wi-Fi"(末尾不带任何域名) - 该操作等效于在图形界面中清空输入框并点“好”
- 重启网络服务非必需,但可执行
networksetup -renewdhcp "Wi-Fi"强制刷新(仅对 DHCP 有效)
与 PAC 文件联动优化(终端辅助生成+部署)
绕过列表和 PAC 脚本功能互补:前者影响系统级直连判断,后者控制浏览器/部分 App 的代理路由。终端可协助 PAC 工作流:
- 将常用绕过规则导出为 PAC 的
isInNet()或shExpMatch()条件,例如:echo 'function FindProxyForURL(u, h) { if (isPlainHostName(h) || shExpMatch(h, "*.local") || isInNet(dnsResolve(h), "192.168.0.0", "255.255.0.0")) return "DIRECT"; return "PROXY 127.0.0.1:8080"; }' > ~/proxy.pac - 用 Python 快速起临时 HTTP 服务供 PAC 使用:
cd ~ && python3 -m http.server 8000,然后在系统代理设置中填入http://localhost:8000/proxy.pac - 验证 PAC 是否生效:
curl -x "http://127.0.0.1:8080" -s https://ifconfig.me应返回公网 IP;而访问curl http://localhost:3000应直连成功(不走代理)

















