我想修改iptables后VPN连接。实现这一目标的最佳方法是什么?
我已经尝试过了系统带有自定义单位网络管理器 调度程序.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
.