來賓和主機之間轉送時的連接埠衝突

來賓和主機之間轉送時的連接埠衝突

我一直在努力進行設置流浪漢使用 VirtualBox 基礎盒,並希望在我的來賓 (Ubuntu 12.04) 和我的主機 (Windows 7) 之間轉發端口,以訪問將在來賓上運行的 apache2 伺服器。

我遇到的問題是,當我嘗試在80來賓連接埠和80主機連接埠(甚至是主機連接埠8080)之間轉送時,Vagrant 會抱怨並提醒我轉送連接埠「...已在主機上使用」。

事實並非如此。

運行 anetstat -a顯示沒有任何連接或使用連接埠80(甚至8080)。經過一些實驗我發現顯然是免費版本的 Avast!我正在使用的是阻止轉發的連接埠。不是 Avast 的全部!不過,這只是他們的網路盾的罪魁禍首。

與阿瓦斯特! Web Shield 關閉,使用下面的設定檔在啟動 VM 時可以完美地工作,並且打開它......問題就在這裡。

我想嘗試找到一個解決方案,讓我可以使用 Vagrant,而不必在可能的情況下損害防毒軟體的設置,或者至少有一個沒有大量警告的解決方案。目的是使用 Vagrant 作為簡化開發設定而不是使其過於複雜的一種手段。

這是我的供參考Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.network :forwarded_port, guest: 80, host: 80

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

end

我嘗試過專用網路、公共網路等,但我可能配置不正確。

作者註:這個問題可能已經被其他人提出並回答過,如果有,我深表歉意。到目前為止我發現的所有內容似乎都不適合作為解決方案,我認為部分問題是我不確定我是否知道要提出正確的問題才能找到正確的解決方案。如果有現有的解決方案,請務必連結它!

答案1

更新後阿瓦斯特!免費的防毒軟體到程式版本:2014.9.0.20112014.9.0.2008問題看來已經自行解決了。 2014 年初發布的 Avast 防毒軟體似乎存在衝突。來自他們的更新歷史記錄:

  • 完全重寫了 WebShield,使其現在不再充當“透明代理”,這應該會導致穩定性和性能的整體提高。它還允許查看和檢測更多威脅
  • 防火牆元件(IS 和 Premier 中)與其他應用程式(例如 Java 和各種 VPN 服務)更相容

另外,雖然它沒有直接解決連接埠轉送問題,但公用和私有網路都可以運作,但都有自己的注意事項:

  • 公共網路在網路上取得自己的 IP,並且要存取它們,似乎有必要ifconfig在來賓中運行以確定分配的 IP。這給使用虛擬機器的個人帶來了更大的負擔,因為他們每次啟動虛擬機器時都必須採取額外的步驟來確定伺服器的 IP。
  • 專用網路允許分配靜態 IP 位址以供主機和訪客之間的私人使用。也許最好的解決方案是禁止連接埠轉發,但您需要選擇要使用的 IP。

相關內容