如何在 OpenVPN 上设置每个用户的流量限制?

如何在 OpenVPN 上设置每个用户的流量限制?

我正在使用 OpenVPN 设置 VPN 服务器。身份验证方法是证书身份验证(客户端和服务器使用不同的证书)。VPS 每月有 1TB 的流量。

我计划每台服务器最多允许 4 个客户端。因此我想限制客户端每月使用量不超过 250GB。

我认为我可能已经限制了来自一个 IP 的流量,但这个想法并不能解决问题——客户端可以通过手机、电脑或平板电脑登录。

理想情况下,我希望 .ovpn 客户端文件中有一个语句,可以控制来自一个客户端的流量。但我还没有找到它。

如何设置限制?谢谢。

答案1

我来晚了一点,但你可以使用客户端配置目录为每个客户端分配一个本地 IP 地址。然后,您可以使用 Linux 的交通管制(tc)限制每个 IP(以及每个客户端)的带宽。这对您有用吗?

答案2

OpenVPN 2.0.x

--shaper n 将 TCP/UDP 端口上的出站隧道数据带宽限制为每秒 n 字节。如果要限制两个方向的带宽,请在两个对等点上使用此选项。OpenVPN 使用以下算法来实现流量整形:给定每秒 n 字节的整形速率,在 TCP/UDP 端口上排队 b 字节的数据报写入后,至少等待 (b / n) 秒,然后再排队下一个写入。

值得注意的是,OpenVPN 支持在相同的两个对等体之间建立多个隧道,允许您同时构建全速和降低带宽的隧道,通过降低带宽的隧道路由异地备份等低优先级数据,并通过全速隧道路由其他数据。

还要注意,对于低带宽隧道(低于每秒 1000 字节),您可能也应该使用较低的 MTU 值(参见上文),否则数据包延迟将变得非常大,以至于触发 TLS 层和隧道上运行的 TCP 连接中的超时。

OpenVPN 允许 n 介于 100 字节/秒和 100 M字节/秒之间。

答案3

您可以使用iptables 配额匹配扩展,如这个答案限制特定IP地址的流量。

相关内容