对于提供OpenVPN服务的同学来说,流量控制肯定是不得不考虑的一个大问题。虽然有大量的优质客户基本不会让你对流量的问题产生任何担忧,但难保没有一小撮的坏人会用尽你所有的流量

通常情况下,大家对于流量控制都是采用的在openvpn的server段配置文件中,通过【client-disconnect cmd】的方式,在客户端断开联接时,调用一个脚本。然后在这个脚本中,通过环境变量读取这次联接的上下行流量,进而更新数据库。

但是这里引发一个问题:如果正常情况下,客户端正常退出,会给服务端一个断开联接的请求。但如果异常情况下,比如客户端突然断网,或者手贱用【kill -9】把客户端的OpenVPN进程给咔掉了。这个时候就没有这个请求了。诚然OpenVPN的超时机制是能监测到这个情况并断开联接的。但是这个时候【client-disconnect cmd】就不会正常调用了。这样的话流量统计岂不是形同虚设?

这个问题很严重,非常严重!解决办法还没有什么办法,尤其是OpenVPN的官方网站几乎无法访问的前提下。不过这个问题必须解决,所以……且听下回分解……