2015-01-16 59 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接口中可能存在一些錯誤。