OpenVPN 安装后,客户端连不上服务器
一步一步排查连接失败原因
最后确定笔者遇到的是防火墙放行的问题,也就是本文的第 3 点。
🔹 1. 服务端是否真的在运行?
执行以下命令确认 OpenVPN 是否启动并监听:
1 | sudo systemctl status openvpn-server@server |
或者如果你是用 server.conf 方式启动的:
1 | sudo systemctl status openvpn@server |
没有启动的话执行:
1 | sudo systemctl start openvpn@server |
确认服务有没有报错启动失败:
1 | sudo journalctl -xeu openvpn@server |
🔹 2. 服务端监听端口是否开放?
用 ss 或 netstat 查看是否监听了你配置的端口(如 TCP 1194):
1 | sudo ss -tnlp | grep 1194 |
输出应类似:
1 | LISTEN 0 128 0.0.0.0:1194 0.0.0.0:* users:(("openvpn",pid=1234,fd=3)) |
没有监听说明服务没启动或配置有误。
🔹 3. 防火墙或云安全组是否放行了 1194 端口?
在 Ubuntu 上,使用 UFW 检查规则:
1 | sudo ufw status |
确认是否放行了:
1 | sudo ufw allow 1194/tcp |
⚠️ 如果你用的是云服务器(比如 AWS、阿里云、腾讯云),还需要在控制台安全组中开放 1194 端口。
🔹 4. 客户端是否使用了正确的 IP 和端口?
客户端配置中必须准确写明服务器公网 IP 和协议端口:
1 | remote YOUR_PUBLIC_IP 1194 |
你可以在客户端终端运行:
1 | ping YOUR_PUBLIC_IP |
或使用 nc:
1 | nc -zv YOUR_PUBLIC_IP 1194 |
如果连不上,说明公网或防火墙有问题。
🔹 5. 服务端日志路径是否正确?
你的 server.conf 中:
1 | log openvpn.log |
这两个路径是相对路径(默认写入 /etc/openvpn/ 或服务的工作目录)。你可以改成绝对路径方便查找:
1 | log /var/log/openvpn.log |
重启服务后查看日志:
1 | sudo tail -f /var/log/openvpn.log |
🔹 6. SELinux/AppArmor 是否限制了服务访问?
(适用于某些更安全的环境)
你可以查看系统日志是否出现阻止 openvpn 的信息:
1 | dmesg | grep -i openvpn |
🔹 7. 临时开启调试模式(手动启动)
你可以手动运行 OpenVPN 看是否输出日志:
1 | sudo openvpn --config /etc/openvpn/server.conf |
看是否有报错信息直接输出在终端。