检查 openVPN 客户端是否已连接 Debian

检查 openVPN 客户端是否已连接 Debian

如何检查我的 Debian OpenVPN 客户端是否已连接?我必须运行特定命令吗?或者我可以从日志文件中读取它吗?

谢谢。

编辑:以下答案在调试中提供了很大的价值。我在两个不同的系统上使用相同的开放 VPN 凭据,导致出现问题。

答案1

我不清楚您是从客户端还是服务器的角度提问。无论如何,您应该重点考虑的一件事是启用管理界面在您的 OpenVPN 守护进程上使用此配置选项。

management 127.0.0.1 6001

启用管理接口后,您可以使用 netcat/telnet 连接到为此目的设置的任何端口。然后,您可以发出命令status或许多其他命令,以从守护进程的角度准确确定正在发生的事情。

答案2

有几种方法,具体取决于您要实现的目标。如果您想检查客户端是否正在运行并且您正在使用 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

答案3

虽然我认为@mgorven 得到了一个很好的答案,但我想提出另一个答案,从不同的角度看待问题。

如果要使用它/etc/network/interfaces来配置网络,则可以使用它来控制客户端 OpenVPN 隧道。它如下所示:

  1. 使用风俗OpenVPNdev选项的隧道设备名称,例如

    dev mytun
    

    在 OpenVPN 配置文件中。

    假设配置文件是

    /etc/openvpn/client.conf
    
  2. 在文件中为该设备设置一个条目/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

现在回到最初的问题——iface网络配置文件中的部分还支持post-up可用于脚本“隧道准备就绪”事件。

对于台式机来说,另一种方法可能是使用类似吞吞管理 OpenVPN 隧道。

答案4

ping -c  1 whoami.ultradns.net

编辑: curl https://ipapi.co/json

返回您的 IP 地址(您的客户端)。这样可以很容易地查看您的 VPN 是否已连接/您通过哪个 VPN 服务器(例如外国)进行连接。

无需配置。

相关内容