2015-01-16 25 views
4

我试图让PHP的ftp方法在虚拟机内工作。我可以使用ftp_connect进行连接,但事后没有做任何事情。是否有可能让FTP使用NAT网络在VirtualBox中工作或获取php的ftp功能

主持人:Ubuntu的14.10 GUEST:Debian的7 堆栈:流浪 - VirtualBox的 - Debian的 - LAMP

我使用的是无业游民运行虚拟盒虚拟机运行一个LAMP堆栈。在PHP中,我正在运行一些方法调用(ftp_pasv,ftp_nlist),这些方法不起作用。 我发现由于使用随机端口进行连接的FTP协议,此问题是由virtualbox中使用NAT网络引起的。除了这个问题之外,我有完美的vagrant-virtualbox设置。有没有人知道在这种情况下使用ftp来访问客户操作系统的方法。我知道我可以尝试使用桥接设置,但这意味着需要更多的工作来设置它,并且该设备将向公众开放。所以我宁愿试着让它在NAT后面工作。

我也尝试使用ftp_pasv打开被动模式,这将解决问题。但是当我打电话打开被动模式时,该方法返回false。

回答

1

据我所知这是不可能的。也许如果你想破解一些源代码并编译自定义的解决方案,它将起作用。但这比使用不同的设置更困难。我使用curl来建立ftp连接。这适用于列出文件并下载它们。

任何人遇到这个问题,实际上找到一个解决方案,请发布在这里。

0

问题很可能与网络配置有关。事实上,例如创建一个目录的工作与获取目录列表相反,表明与反向频道有关的问题。

潜在的根本原因是网络路由器的配置。似乎有些路由器处理不同的包,如果它们是从不同的mac地址(主机vs客户系统)发送的。

0

我有这个问题,事实证明,升级虚拟盒解决了这个问题。 NAT接口中可能存在一些错误。