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

OpenVPN证书认证模式下配置自定义用户名并在状态日志中显示的方案

OpenVPN证书认证模式下配置自定义用户名并在状态日志中显示的方案

我懂你现在的痛点——用证书认证的OpenVPN服务器,多个客户端用同一张证书连接时,日志里全是一样的条目根本分不清谁是谁。之前我也踩了好几个坑,现在给你整理出一套亲测有效的完整方案:

服务器端配置步骤

  1. 修改OpenVPN服务器配置文件,添加以下配置项:

    auth-user-pass-verify /etc/openvpn/verify.sh via-file
    username-as-common-name
    script-security 2
    

    这里简单说下作用:

    • auth-user-pass-verify 指定用来验证用户名密码的脚本,via-file 表示客户端会把账号信息存在文件里发送给服务器
    • username-as-common-name 让服务器将客户端传递的自定义用户名当作通用名来显示,这样就能在日志里看到啦
    • script-security 2 允许OpenVPN执行外部脚本,这是运行验证脚本的前提
  2. 创建验证脚本 /etc/openvpn/verify.sh,因为我们只需要获取用户名不需要真的验证密码,所以脚本内容非常简单:

    #!/bin/sh
    exit 0
    
  3. 给脚本添加可执行权限:

    chmod 0777 /etc/openvpn/verify.sh
    

客户端配置步骤

  1. 启动OpenVPN客户端时,在命令行添加如下参数:

    --auth-user-pass /etc/openvpn/login.txt
    
  2. 创建登录信息文件 /etc/openvpn/login.txt,第一行填你想要显示的自定义用户名,第二行随便填个密码就行(服务器不会验证这个密码):

    username123
    password456
    
  3. 最后给这个文件设置合适的权限,确保OpenVPN进程能够正常读取它。

避坑提醒

之前踩过一个大坑:如果把登录文件命名成 .conf 后缀(比如 login.conf),OpenVPN会直接把它当成自身的配置文件解析,然后报 Options error: Unrecognized option or missing or extra parameter(s) 错误!所以登录文件一定要用 .txt 或者其他非 .conf 的后缀,别犯我同样的错~

配置完成后,去看服务器的状态日志,你就能在 CLIENT_LIST 条目里看到自定义的用户名了,类似这样:

CLIENT_LIST,username123,<ip:port>,<ip>,,...,...,<date>,<unixtime>,username123,0,0

备注:内容来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:53:13