每当网络发生变化时,我一直在尝试重新加载 pf 规则。这是我的 plist 文件。/Library/LaunchAgents/com.wwk.networkchange.plist
<?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>com.wwk.networkchange</string>
<key>ProgramArguments</key>
<array>
<string>sudo /sbin/pfctl -f /Users/wwk/pf.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array>
<string>/private/var/run/resolv.conf</string>
</array>
</dict>
</plist>
我可以看到 /private/var/run/resolv.conf 在更改网络接口但根本没有重新加载 pf 规则时发生了更改。仅供参考,/Users/wwk/pf.conf 在那里,我已经通过 /etc/sudoers 文件启用了 /sbin/pfctl 无需密码提示。提前感谢!