如何获取 OpenVPN 客户端的 IP 地址

如何获取 OpenVPN 客户端的 IP 地址

OpenVPN 服务器为每个连接到网络外部的客户端分配一个内部 IP 地址。我希望在分配这些 IP 地址后将其存储在数据库中。有没有一种简单的方法可以判断哪些 IP 地址是由 OpenVPN 服务器分配的?

感谢帮助

答案1

如果这些不是静态分配的,那么除了从日志文件中提取它们之外没有其他好的方法,因为连接将被随机分配 IP 地址。

如果它们是静态分配的并且您正在使用 Open VPN AccessServer,您可以这样做:

sudo /usr/local/openvpn_as/scripts/sacli UserPropGet

输出中应产生一个 IP 地址列表,如下所示:

{
  "<< name_of_user_profile >>": {
    ...
    "conn_ip": "xxx.xxx.xxx.xxx",
    ...
  },
  ...
}

其中conn_ip是连接 IP 地址。


如果您只是试图记录用户的 IP 地址并将该信息存入数据库,那么您可能会看到以下内容:

OpenVPN 连接日志和配置文件在哪里?

在这种情况下,您正在使用 OpenVPN 访问服务器,您可能需要尝试:

grep "primary virtual IP" /var/log/openvpnas.log** > output_file_name

这将为您提供一个包含所有用户关联的 IP 地址的文件。从那里,您可以进一步修改输出以从文件中获取所需的位。

答案2

您应该看看 /etc/openvpn/openvpn-status.log:

OpenVPN CLIENT LIST
Updated,Fri Sep  4 11:07:18 2020
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,11.12.13.14:44444,50000,25000,Fri Sep  4 11:00:54 2020
client2,11.12.13.15:44444,27000,5500,Fri Sep  4 11:00:52 2020
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.7,client1,11.12.13.14:44444,Fri Sep  4 11:06:13 2020
10.8.0.6,client2,client2,11.12.13.15:44444,Fri Sep  4 11:03:56 2020
GLOBAL STATS
Max bcast/mcast queue length,2
END

相关内容