连接机柜与openvpn后重新连接

时间:2016-10-13 02:09:28

标签: bash shell vpn openvpn tunnel

我正在处理一个处于不稳定连接的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接口,因此脚本认为连接仍处于活动状态,我该怎么办?

2 个答案:

答案 0 :(得分:0)

OpenVPN已经尝试自动重新建立连接:

如果连接已经建立并且隧道出现故障,那么openvpn将尝试重新连接,只要像“keepalive”这样的内容即可。或者' ping-restart'设置,以及'持久密钥'和身份验证缓存。

答案 1 :(得分:0)

您可以在重新连接过程中使用它:

  

echo my_sudo_password | sudo service openvpn @ my_host_vpn restart