我使用带有 openvpn 和 pptp 守护进程的服务器。
在 iptables 中,我有一些规则允许某些 pptp 客户端通过服务器上可用的 pptp 或 openvpn 隧道与其他客户端联系。
Elevated pptp client --> pptp server forward to --> pptp client
Elevated pptp client --> pptp server forward to --> openvpn client
这种方法效果很好,但是:
我有时会无法连接 openvpn 客户端。当我 ping openvpn 客户端的 IP 时,会出现超时,而我可以直接从服务器 ping 该 IP!
server --> openvpn client == 64 bytes from *** time *ms
Elevated pptp client --> server == 64 bytes from *** time *ms
Elevated pptp client --> pptp server forward to --> openvpn client == time-out
该服务器是 ubuntu 14.04 服务器,但在我上一个运行 ubuntu 10.10 的服务器上也遇到了同样的问题。
我认为问题如下:ping 消息如下:
elevated client --> server routing --> openvpn daemon routing --> client
openvpn daemon routing <-- client
openvpn 守护进程无法在自己的池中找到要应答的 ip,因此丢弃了该消息。
有什么方法可以确认这一点,如果这是问题所在:为什么只发生在一些客户端上,我该如何找到解决方案?
答案1
找到了这个问题的答案。
我将路由推送到客户端。客户端有时在 TAP/TUN 接口启动之前就执行了路由添加。路由被忽略。
不,我向客户端添加了一个辅助脚本,当接口启动时运行该脚本,我可以在其中放置我的路线。
现在让我们希望我们永远不需要改变它们,因为我们需要编辑每个客户端......