我正在处理一个处于不稳定连接的vpn,所以我开发了以下脚本,如果发生任何与ovpn有关的间歇性,就会重新连接。
#!/bin/bash
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
function getStatus () {
ifconfig | grep $1 && return 1
return 0
}
while [[ 1 ]]; do
getStatus tun0
if [[ $? == 0 ]]; then
echo "openvpn is not connected!"
echo "Reconnecting!"
#Replace your_sudo_password to your real user sudo password.
echo my_sudo_password | sudo -S openvpn --config /home/user/openvpn/my_host_vpn.ovpn
sleep 6
fi
sleep 6
done
问题是,如果我中断连接,没有任何反应。只需显示:
Wed Oct 12 22:59:55 2016 Initialization Sequence Completed
我的问题是:如何安全地停止vpn连接,以便脚本可以尝试重新连接。 Openvpn根本不释放tun0接口,因此脚本认为连接仍处于活动状态,我该怎么办?
答案 0 :(得分:0)
OpenVPN已经尝试自动重新建立连接:
如果连接已经建立并且隧道出现故障,那么openvpn将尝试重新连接,只要像“keepalive”这样的内容即可。或者' ping-restart'设置,以及'持久密钥'和身份验证缓存。
答案 1 :(得分:0)
您可以在重新连接过程中使用它:
echo my_sudo_password | sudo service openvpn @ my_host_vpn restart