リモートVPNサーバーへのopenvpn接続を必要とするraspbianクライアントがあります。接続は正常に確立されましたが、1日ほど経過すると接続が切断されます。つまり、クライアントはサーバーにpingを実行できなくなり、その逆も同様です。ip addr
生産する:
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::36f2:617b:b304:fd0c/64 scope link flags 800
valid_lft forever preferred_lft forever
そしてservice openvpn@Thomas status
以下を作ります:
[email protected] - OpenVPN connection to Thomas
Loaded: loaded (/lib/systemd/system/[email protected]; enabled)
Active: active (running) since Fr 2017-08-18 21:48:29 CEST; 2 days ago
Process: 731 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.ovpn (code=exited, status=0/SUCCESS)
Main PID: 739 (openvpn)
CGroup: /system.slice/system-openvpn.slice/[email protected]
└─739 /usr/sbin/openvpn --daemon ovpn-Thomas --status /run/openvpn/Thomas.status 10 --cd /etc/openvpn --config /etc/openvpn/Thomas.ovpn
Aug 21 12:23:48 raspberrypi ovpn-Thomas[739]: Socket Buffers: R=[163840->163840] S=[163840->163840]
Aug 21 12:23:48 raspberrypi ovpn-Thomas[739]: UDPv4 link local: [undef]
Aug 21 12:23:48 raspberrypi ovpn-Thomas[739]: UDPv4 link remote: [AF_INET]91.250.77.10:1194
Aug 21 12:24:48 raspberrypi ovpn-Thomas[739]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Aug 21 12:24:48 raspberrypi ovpn-Thomas[739]: TLS Error: TLS handshake failed
Aug 21 12:24:48 raspberrypi ovpn-Thomas[739]: SIGUSR1[soft,tls-error] received, process restarting
Aug 21 12:24:48 raspberrypi ovpn-Thomas[739]: Restart pause, 2 second(s)
Aug 21 12:24:50 raspberrypi ovpn-Thomas[739]: Socket Buffers: R=[163840->163840] S=[163840->163840]
Aug 21 12:24:50 raspberrypi ovpn-Thomas[739]: UDPv4 link local: [undef]
Aug 21 12:24:50 raspberrypi ovpn-Thomas[739]: UDPv4 link remote: [AF_INET]91.250.77.10:1194
openvpnサービスを再起動するたびに、問題なく接続が再確立されます。接続が切断されるのはなぜですか?それとも、openvpnデーモンがサーバーに自動的に再接続できないのはなぜですか?
答え1
接続が切断されたら、openvpnを自動的に再起動するように、単純なbashスクリプトをcronジョブに追加できます。スクリプトは次のとおりです。
#!/bin/bash
# Makes sure that openvpn service is running all times.
# Add this to a cronjob that will run every minute
set -o pipefail
if $(/sbin/ip add | grep tun | grep inet)
then
echo "OpenVPN service is already running"
else
systemctl restart [email protected]
echo "Restarted OpenVPN service"
fi