通过VPN发布数据

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

  1. 是否有可能通过PHP在Linux上完成?
  2. 如果有可能,这样做有风险吗? (当VPN连接挂起等等,操作系统或其他什么都可以处理的情况)
  3. 我只有一张网卡,因此我真的很想知道是否有可能在普通用户的服务器上保持联机状态,同时“在后台发布完成的VPN连接数据”。

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

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

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

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

所以要回答你的问题:

  1. 这个问题没有意义,PHP可以做到这一点的唯一方法是使用PPTP或类似的和exec()来连接,但更好地使用IPSEC
  2. 如果VPN连接挂起/死亡PHP将无法连接到远程端,并将超时连接。
  3. 是的。

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

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