我在 Ubuntu 22.04 上有一个正在运行的 OpenVPN 服务器。
一切运行正常,但我想将有关已连接设备的更多信息记录到我的服务器。我需要使用我的服务器发送一些有关设备的自定义信息。
我成功集成了client-connect
/client-disconnect
脚本,但我想在这些脚本中使用更多关于客户端设备的环境变量。
我尝试从客户端配置文件中推送这些变量,如下所示:
push-peer-info
setenv IV_TEST="test1"
setenv UV_TEST="test2"
但我无法从脚本中恢复这些变量。在日志中,我可以看到一些变量被传输:
2024-09-11 07:31:09 us=326572 192.168.175.1:49395 peer info: IV_VER=3.8.2connect3
2024-09-11 07:31:09 us=326583 192.168.175.1:49395 peer info: IV_PLAT=win
2024-09-11 07:31:09 us=326588 192.168.175.1:49395 peer info: IV_NCP=2
2024-09-11 07:31:09 us=326593 192.168.175.1:49395 peer info: IV_TCPNL=1
2024-09-11 07:31:09 us=326597 192.168.175.1:49395 peer info: IV_PROTO=990
2024-09-11 07:31:09 us=326601 192.168.175.1:49395 peer info: IV_MTU=1600
2024-09-11 07:31:09 us=326605 192.168.175.1:49395 peer info: IV_CIPHERS=xxxxxxxx
2024-09-11 07:31:09 us=326609 192.168.175.1:49395 peer info: UV_ASCLI_VER=3.4.4-3412
2024-09-11 07:31:09 us=326614 192.168.175.1:49395 peer info: UV_PLAT_REL= xxxxxx
2024-09-11 07:31:09 us=326618 192.168.175.1:49395 peer info: UV_UUID=xxxxxxxxxxx
2024-09-11 07:31:09 us=326635 192.168.175.1:49395 peer info: IV_GUI_VER=OCWindows_3.4.4-3412
2024-09-11 07:31:09 us=326638 192.168.175.1:49395 peer info: IV_SSO=webauth,crtext
2024-09-11 07:31:09 us=326641 192.168.175.1:49395 peer info: IV_HWADDR=xxxxxxxxxxx
2024-09-11 07:31:09 us=326645 192.168.175.1:49395 peer info: IV_SSL=OpenSSL_3.1.4_24_Oct_2023
但不是我设置的变量。
查看文档我们可以看到这一点:
编辑1:
--push-peer-info :将有关客户端的其他信息推送到服务器。以下数据始终推送到服务器:
这意味着使用--push-peer-info
,我们可以允许客户端推送除了默认变量之外的其他自定义变量,但如何实现呢?
EDIT2: 我甚至尝试覆盖默认变量并改变顺序,但没有成功:
setenv IV_HWADDR="test1"
push-peer-info
任何帮助都将不胜感激。
经过多次尝试和错误后,我成功了:
请注意,第三个变量
SERVERID
,没有出现在脚本中。这意味着变量应该以 开头UV_
才能正常工作。感谢 OpenVPN 文档。