如何查看连接的用户打开VPN服务器?

我正在开发一个用Django框架pipe理OpenVPN用户的网站。 但我需要知道有什么办法从OpenVPN中提取活跃的用户? 我的服务器正在运行Ubuntu 12.04。

应该有一个状态日志,你可以看看向你展示,我的,为例:

cat /etc/openvpn/openvpn-status.log

编辑:

或者,添加标志 – --management IP port [pw-file]或将相同的指令添加到您的server.conf ,例如:

management localhost 7505

这将允许您telnet到该端口,并提供您要运行的命令列表:

telnet localhost 7505

help

要完成@sekrett回答:

 killall -USR2 openvpn ; tail -f /var/log/syslog 

它会继续运行,这不是一个“常规”杀,只是一个打印一些统计数据的请求。

显示的统计数据非常可读。 示例输出:

 Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016 Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since Oct 14 07:26:26 vpn2 openvpn[20959]: 10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016 Oct 14 07:26:26 vpn2 openvpn[20959]: 10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016 

我自己也得到了同样的需求,我发现最简单的解决scheme就是使用上面提到的telnet连接到pipe理界面(您必须在服务器configuration文件中添加: management localhost 6666 )。

要获得您可以执行的客户端的确切数量:

  • telnet localhost 6666
  • 状态

那么你会得到很多的日志:

 10.9.10.11,test-docker,52.58.48.98:56859,Wed May 4 09:37:34 2016 10.9.7.45,test-docker,52.58.156.80:38774,Wed May 4 09:36:59 2016 10.9.1.103,test-docker,52.58.161.230:52201,Wed May 4 09:35:47 2016 GLOBAL STATS Max bcast/mcast queue length,0 END >CLIENT:ESTABLISHED,19845 >CLIENT:ENV,n_clients=19361 >CLIENT:ENV,time_unix=1462357164 
  • 寻找=>> CLIENT:ENV,n_clients = 19361

在我的情况下,因为我有一个非常大量的客户端,使用日志文件是绝对不是很实际。

您也可以发送usr2信号给openvpn进程,使其向syslog写入统计信息。 这是安全的,如果您以前没有启用pipe理界面,则无需重新启动。