You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenVPN服务器上限制每个用户名的最大连接数

OpenVPN 单用户最大连接数限制配置方案

实现逻辑

通过OpenVPN自带的client-connect钩子脚本,在每个用户发起连接请求时校验当前账号的活跃连接数,和预先配置的阈值对比,超过限制则直接拒绝连接请求。

配置步骤

  • 第一步:创建用户连接数限制映射表
    创建配置文件/etc/openvpn/user_conn_limits,每行格式为用户名 最大连接数,示例内容如下:
Customer1 2
Customer2 1
Customer3 3

未在该文件中配置的用户,默认使用全局默认连接数限制。

  • 第二步:编写连接校验脚本
    创建脚本文件/etc/openvpn/check_user_conn.sh,内容如下:
#!/bin/bash
# 用户限制配置文件路径
LIMIT_FILE="/etc/openvpn/user_conn_limits"
# 未配置用户的默认最大连接数
DEFAULT_LIMIT=1

# 获取当前认证通过的用户名
CURRENT_USER=$username

# 读取对应用户的连接数限制
USER_LIMIT=$(grep "^${CURRENT_USER} " "${LIMIT_FILE}" | awk '{print $2}')
USER_LIMIT=${USER_LIMIT:-$DEFAULT_LIMIT}

# 统计当前用户已有的活跃连接数
ACTIVE_CONN=$(grep -c ",${CURRENT_USER}," /var/log/openvpn/status.log)

# 超过限制则拒绝连接(返回非0值OpenVPN会中断本次连接请求
if [ ${ACTIVE_CONN} -ge ${USER_LIMIT} ]; then
    exit 1
fi
exit 0
  • 第三步:配置权限及OpenVPN服务配置
  1. 给脚本添加执行权限:
    chmod +x /etc/openvpn/check_user_conn.sh
  2. 编辑OpenVPN服务主配置文件(通常为/etc/openvpn/server.conf),添加以下配置项:
# 允许执行自定义脚本
script-security 2
# 客户端连接时触发校验脚本
client-connect /etc/openvpn/check_user_conn.sh

*注:确保配置文件中已开启状态日志输出(默认一般已配置):
status /var/log/openvpn/status.log 10

  • 第四步:重启OpenVPN服务生效
    systemctl restart openvpn@server

内容的提问来源于stack exchange,提问作者Meendufski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:27:00