按文档搭建的OpenVPN服务器无法连接,求助排查故障
排查OpenVPN无法连接的步骤
先别急,咱们一步步来定位问题——既然之前服务运行正常,只是动过UFW规则又还原,那先从最可能的环节入手:
1. 确认UFW规则是否真的生效
有时候“还原设置”可能没完全到位,先跑这条命令查看当前UFW的详细规则:
ufw status verbose
重点确认两条关键规则:
- 存在
ALLOW IN Anywhere on 1194/udp(OpenVPN默认用UDP协议,别搞成TCP了) - OpenSSH的允许规则正常存在(避免把自己锁在服务器外)
如果规则缺失或不正确,重新添加并重载防火墙:
ufw allow 1194/udp ufw allow OpenSSH ufw reload
2. 检查OpenVPN服务运行状态
先确认服务是不是正常启动并运行:
systemctl status openvpn@server
这里假设你的配置文件名是server.conf,如果是其他名称,把命令里的server换成对应名字。看输出里有没有active (running)的标识,有没有报错(比如端口被占用、权限不足等)。
如果服务没启动,手动尝试启动并观察结果:
systemctl start openvpn@server
3. 验证端口监听情况
确认OpenVPN真的在监听1194端口,用这条命令检查:
ss -ulpn | grep 1194
如果输出里能看到openvpn进程和*:1194的监听记录,说明端口正常;如果没有输出,要么服务没启动,要么配置文件里的端口被意外修改(可以去/etc/openvpn/server.conf确认port 1194和proto udp这两行是否存在)。
4. 查看实时服务日志找线索
在客户端尝试连接的同时,打开服务器的实时日志,看具体报错信息:
journalctl -u openvpn@server -f
连接时日志里的提示(比如TLS证书错误、连接被拒绝、认证失败等)能直接帮你定位核心问题。
5. 排除外部网络层面的问题
- 确认服务器公网IP是否变化:如果是动态IP,客户端配置里的旧IP可能已经失效,在服务器上用
curl ifconfig.me查看当前公网IP,和客户端配置文件对比。 - 检查云服务商安全组:如果是云服务器,别忘看控制台的安全组规则,确保1194 UDP端口已经开放(很多人会忽略这层防火墙)。
- 客户端侧端口连通性测试:在客户端用
nc -u <服务器公网IP> 1194测试UDP端口是否能连通,不通的话可能是运营商封了1194端口。
6. 最后检查文件权限(虽然你提到保留了x属性)
OpenVPN的配置、证书权限异常也会导致服务故障,确保:
- 主配置文件(如
server.conf)权限为644:chmod 644 /etc/openvpn/server.conf - 服务器私钥文件权限为
600:chmod 600 /etc/openvpn/easy-rsa/pki/private/server.key
按这些步骤排查下来,基本能找到问题所在。
内容的提问来源于stack exchange,提问作者hamidi




