我如何检查我的Debian OpenVPN客户端是否连接? 有一个特定的命令,我必须运行? 或者我可以从日志文件中读取它?
谢谢。
编辑:下面的答案在debugging中提供了很大的价值。 我在两个不同的系统上使用了相同的开放vpn凭据,导致问题。
从客户端或服务器的angular度来看,我不清楚。 在任何情况下,您应该强调的一件事是使用此configuration选项启用OpenVPN守护程序上的pipe理界面 。
management 127.0.0.1 6001
启用pipe理界面后,您可以使用netcat / telnet连接到您为此设置的任何端口。 然后,您可以发出status命令或许多其他命令,以从守护程序的angular度确切确定发生了什么。
有几种方法,取决于你想要达到什么目的。 如果你想检查客户端是否在运行,而你正在使用Debian的initscript,你可以使用service命令:
% sudo service openvpn status mammon; echo $? * VPN 'mammon' is running 0
如果要检查客户端是否认为它已连接到服务器,则可以检查VPN子网或本地接口是否存在的路由表:
% ip route | grep -q 10.8.0.1; echo $? 0 % ip link show dev tun0 > /dev/null; echo $? 0
如果您想检查客户端是否已连接且服务器是否可联系,请ping服务器:
% ping -c1 -w5 -q 10.8.0.1 > /dev/null; echo $? 0
当我想@mgorven得到一个很好的答案时,我想提出另外一种将问题置于不同的angular度。
如果使用/etc/network/interfacesconfigurationnetworking,则可以使用它来控制客户端OpenVPN隧道。 它是这样的:
例如,使用隧道设备的自定义名称作为OpenVPN的dev选项
dev mytun
在OpenVPNconfiguration文件中。
假设configuration文件是
/etc/openvpn/client.conf
在/etc/network/interfaces文件中为该设备设置一个条目,如下所示:
iface mytun inet manual pre-up /etc/init.d/openvpn start client pre-down /etc/init.d/openvpn stop client
设置这样的事情,你现在可以做
# /sbin/ifup mytun # /sbin/ifdown mytun
现在回到原来的问题 – networkingconfiguration文件中的iface部分也支持可用于脚本编写 “隧道就绪”事件post-up指令。
另一种方法,对于桌面计算机,可能会使用像TunTun这样的可视化工具来pipe理OpenVPN隧道。
在Ubuntu中,有一个文件在/var/run/openvpn.openvpn.status保存当前的OpenVPN状态
它看起来与pipe理接口的status命令的输出是一样的,但你不需要在OpenVPN中启用它。
您可以在脚本中对它进行一些处理,即检查计数器是否随时间增加。