Networking
在呼叫二進製文件後執行腳本
我想在VPN 連接後修改iptables。實現這一目標的最佳方法是什麼?
我已經嘗試使用NetworkManager dispatcher.d目錄中的自定義單元通過systemd ,但它似乎只在啟動時工作,而不是在VPN停止並重新啟動時 - 如果我寫得對:
[Unit] Description=iptables setup Requires=nordvpnd.service After=nordvpn.service [Service] Type=simple ExecStart=/usr/local/bin/setup_iptables.sh [Install] WantedBy=multi-user.target
我可以監控tun0,如果已啟動並配置,解析結果:
ip address ls dev tun0
但這意味著更新之間的延遲。前任。每 5 秒測試一次。可能意味著至少 4 秒。當 iptables 未按應有配置時。
我的最後一個想法是每次呼叫**/usr/bin/nordvpn**時都執行 setup_iptables.sh ,但是如何實現呢?
謝謝
/usr/bin/nordvpn
是在呼叫後立即返回還是在完成 VPN 連接後返回?在後一種情況下,只需重命名
/usr/bin/nordvpn
並/usr/bin/nordvpn.original
創建一個/usr/bin/nordvpn
首先呼叫/usr/bin/nordvpn.original
然後呼叫的腳本/usr/local/bin/setup_iptables.sh
(這稱為“包裝腳本”)。如果
/usr/bin/nordvpn
立即返回,則更難,因為您需要在包裝腳本中以某種方式檢查是否已建立 VPN 連接(可能通過 ping 特定的東西?),如果是,則執行/usr/local/bin/setup_iptables.sh
.