检查 VPN 连接状态
-
确认 VPN 已连接:
ifconfig | grep tun # Linux/Mac ip addr show | grep tun # Linux
如果无
tun或tap接口,说明 VPN 未成功连接。 -
排查 VPN 日志:
journalctl -u openvpn # Systemd (OpenVPN) cat /var/log/syslog | grep vpn # 其他日志
检查网络路由
-
查看路由表:
route -n # Linux netstat -rn # Mac/旧版 Linux
- 确认 VPN 子网的路由指向
tun接口(如8.0.0/24 via 10.8.0.1 dev tun0)。
- 确认 VPN 子网的路由指向
-
手动添加路由(如有必要):
sudo ip route add <目标网络> via <VPN网关> dev tun0
测试 SSH 服务可达性
-
确认目标服务器监听 VPN IP:
netstat -tuln | grep 22 # 检查 SSH 端口
如果只监听
0.0.0:22或168.1.100:22,确保它也监听 VPN IP(如8.0.1:22)。 -
临时关闭防火墙测试:
sudo ufw disable # Ubuntu sudo systemctl stop firewalld # CentOS
测试后记得重新启用。
检查 SSH 配置
- 确认
sshd允许 VPN 子网: 编辑/etc/ssh/sshd_config:AllowUsers user@10.8.0.* # 限制用户和IP ListenAddress 10.8.0.1 # 监听VPN接口
重启服务:
sudo systemctl restart sshd
排查 NAT/端口转发
- VPN 服务器在 NAT 后:
- 确保 VPN 推送了正确的路由(如
push "route 192.168.1.0 255.255.255.0")。 - 检查 NAT 规则(如
iptables -t nat -L)是否允许 VPN 流量转发。
- 确保 VPN 推送了正确的路由(如
其他常见问题
-
MTU 问题:
ping -s 1472 10.8.0.1 # 测试MTU(分段需减小)
在 VPN 配置中添加
mssfix 1400。 -
VPN 协议冲突:
如果同时使用 OpenVPN 和 WireGuard,可能路由冲突。
总结步骤
- VPN 连接 → 检查
tun接口和日志。 - 路由 → 确认目标网络可达。
- SSH 服务 → 验证监听地址和防火墙。
- 配置 → 检查
sshd_config和 NAT 规则。
如果仍有问题,提供以下信息以便进一步诊断:
- VPN 类型(OpenVPN/WireGuard/IPsec)
- 客户端和服务端操作系统
- 相关配置文件(隐藏敏感信息)


