每當網絡發生變化時,我一直試圖重新加載pf規則。 這是我的plist文件。 /Library/LaunchAgents/com.wwk.networkchange.plistmacOS Sierra:每當網絡發生變化時重新加載防火牆
<?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>
我可以看到當網絡接口更改,但PF規則不被重新加載在所有/private/var/run/resolv.conf改變。 僅供參考,/Users/wwk/pf.conf在那裏,我已啓用/ sbin/pfctl通過/ etc/sudoers文件沒有密碼提示。 非常感謝!
對於ProgramArguments,您是對的。我按照您的指示安排了它們,但仍然沒有運氣。 關於sudo問題,我發現我仍然必須以sudo作爲前綴,即使它已註冊爲sudoers。 – Pei
@Pei您是否將它移動到/ Library/LaunchDaemons(然後重新啓動或使用'sudo launchctl load/Library/LaunchDaemons/com.wwk.networkchange.plist'加載它?這應該使'sudo'無關緊要。 –
是的,我這樣做,並做了sudo launchctl加載/卸載幾次,但仍然沒有運氣。 – Pei