10

我需要behind of a VPN通过 PHP 连接到 web 服务。我的服务器是 Debian Linux (Squeeze)。

  1. 是否有可能通过 Linux 上的 PHP 来实现这一点?
  2. 如果可能,这样做有风险吗?(当 VPN 连接挂起等时,操作系统或任何其他类似的东西是否会处理这种情况)
  3. 我只有一张网卡,因此我真的想知道是否可以让普通用户保持服务器在线,同时“在后台通过已完成的 VPN 连接发布数据”。

虽然我的问题似乎是一个概念性问题,但也欢迎任何具体的帮助。

服务器操作系统 :Debian Linux Squeeze (x64)
Web 服务器:Apache HTTP
PHP 版本:5.3
框架:Symfony 1.4

4

2 回答 2

10

VPN 位于 PHP 之下的网络层,PHP 不会知道或关心连接是通过 VPN 还是正常连接。它由网络堆栈处理。

如果您使用永久的(例如 IPSEC),那么 PHP 不需要创建连接,它只是在 PHP 连接到 VPN 中的 IP 地址时使用。它在进行路由时由网络层选择使用,而不是由 PHP 选择。即使您按需创建 VPN 也是如此,正如 jderda 建议使用 exec() 或类似方法。但是永久连接更好(IPSEC)。

所以回答你的问题:

  1. 这个问题没有意义,PHP 可以做到这一点的唯一方法是使用 PPTP 或类似方法和 exec() 来建立连接,但最好使用 IPSEC
  2. 如果 VPN 连接挂起/终止,PHP 将无法连接到远程端,并将超时连接。
  3. 是的。
于 2012-08-04T09:40:35.403 回答
3

从 PHP 的角度来看,VPN 只是一个普通的网络连接。它不需要额外的处理。

如果您想动态建立 VPN 连接,您可能需要使用 exec() 和一些命令行工具来建立连接。但是由于这样的连接不会干扰正常的网络通信(只要它配置正确,使用其他子网 ip 范围),您应该建立一次并保持它处于活动状态以供 PHP 和其他应用程序使用。

于 2012-08-03T15:25:55.043 回答