调用二进制文件后运行脚本

调用二进制文件后运行脚本

我想修改iptablesVPN连接。实现这一目标的最佳方法是什么?

我已经尝试过了系统带有自定义单位网络管理器 调度程序.d目录,但它似乎只在启动时工作,而不是在启动时工作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

我可以监控屯0如果已启动并配置,则解析结果:

ip address ls dev tun0

但这意味着更新之间的延迟。前任。每 5 秒测试一次。可能意味着至少 4 秒。当 iptables 未按应有的配置时。

我的最后一个想法是每次运行 setup_iptables.sh/usr/bin/nordvpn被称为,但如何实现呢?

谢谢

答案1

/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.

相关内容