PHP通过VPN发布数据

时间:2012-08-03 15:21:38

标签: php linux symfony1 debian vpn

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

  1. 是否有可能通过Linux上的PHP实现这一目标?
  2. 如果可能的话,这样做有风险吗? (当VPN连接挂起等时,操作系统或其他任何东西会处理这种情况)
  3. 我只有一张网卡,因此我真的很想知道是否可以让普通用户保持服务器在线,而“在后台通过完成的VPN连接发布数据”。
  4. 虽然我的问题似乎是一个概念性的问题,但也欢迎任何特定的帮助。

      

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

2 个答案:

答案 0 :(得分:8)

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

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

所以回答你的问题:

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

答案 1 :(得分:3)

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

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