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. 服务端监听端口是否开放?

ssnetstat 查看是否监听了你配置的端口(如 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
2
remote YOUR_PUBLIC_IP 1194
proto tcp

你可以在客户端终端运行:

1
2
ping YOUR_PUBLIC_IP
telnet YOUR_PUBLIC_IP 1194

或使用 nc

1
nc -zv YOUR_PUBLIC_IP 1194

如果连不上,说明公网或防火墙有问题。


🔹 5. 服务端日志路径是否正确?

你的 server.conf 中:

1
2
log openvpn.log
status openvpn-status.log

这两个路径是相对路径(默认写入 /etc/openvpn/ 或服务的工作目录)。你可以改成绝对路径方便查找:

1
2
log /var/log/openvpn.log
status /var/log/openvpn-status.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

看是否有报错信息直接输出在终端。