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

启用tls-auth后OpenVPN报‘cannot locate HMAC’错误求助

OpenVPN TLS-AUTH 报HMAC错误的解决办法

问题根源

你的服务器配置里没加tls-auth相关设置,客户端发过来的带HMAC签名的数据包,服务器识别不了,所以报错。客户端已经开了tls-auth且设了key-direction 1,但服务器没同步配置,两边验证逻辑对不上。

具体修复步骤

1. 给服务器配置加tls-auth指令

服务器得用和客户端一模一样的静态密钥文件,而且key-direction要设成0(客户端是1,服务器必须是0,方向相反)。

在服务器配置里添加以下两行:

tls-auth /etc/openvpn/ta.key 0
key-direction 0

注意:把/etc/openvpn/ta.key换成你实际的密钥文件路径,确保服务器上这个文件的内容和客户端<tls-auth>标签里的密钥完全一致。

2. 核对密钥一致性

客户端<tls-auth>标签内的密钥,必须和服务器端ta.key文件的内容完全相同。如果是用Easy-RSA生成的,直接复制生成的ta.key即可。

3. 重启OpenVPN服务

修改配置后,重启服务器端的OpenVPN服务:

systemctl restart openvpn@server

4. 额外检查(可选)

  • 你服务器是2.6.14,客户端是2.5.11,版本差异不大,tls-auth功能完全兼容,不用操心版本兼容性问题。
  • 防火墙肯定是开放了UDP 1194端口的,毕竟移除tls-auth后能正常连接,这步基本没问题。

为啥移除tls-auth就能连?

客户端去掉tls-auth指令后,双方都不再启用HMAC验证,服务器无需检查数据包的签名,自然就能正常建立连接,但这样会大幅降低VPN的安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.08 14:02:34