我需要通过PHP连接到VPN后面的Web服务.我的服务器是Debian Linux(Squeeze).
>是否可以通过Linux上的PHP实现这一目标?
>如果可能的话,这样做有风险吗? (当VPN连接挂起等时,操作系统或其他任何东西是否会处理这种情况)
>我只有一个网卡,因此我真的很想知道是否可以让普通用户保持服务器在线,而“在后台通过完成的VPN连接发布数据”.
虽然我的问题似乎是一个概念性的问题,但也欢迎任何具体的帮助.
Server OS : Debian Linux Squeeze (x64)
Web Server : Apache HTTP
PHP Version: 5.3
Framework: Symfony 1.4
解决方法:
VPN位于PHP以下的网络层,PHP不会知道或关心连接是通过VPN还是正常连接.它由网络堆栈处理.
如果你使用永久的(例如IPSEC),那么PHP不需要创建连接,当PHP连接到VPN中的IP地址时,就可以使用它.它选择在网络层进行路由时使用,而不是由PHP进行.即使您按需创建VPN也是如此,因为jderda建议使用exec()或类似的.但永久连接更好(IPSEC).
那么回答你的问题:
>问题没有意义,PHP可以做到这一点的唯一方法是使用PPTP或类似的和exec()来建立连接,但更好地使用IPSEC
>如果VPN连接挂起/死亡,PHP将无法连接到远程端并且将使连接超时.
>是的.