VirtualBox 橋接適配器可以 ping 但不能捲曲
有一個執行 Ubuntu Server 12.04.2 的專用伺服器。此伺服器有 4 個可用 IP:A、B、C、D。伺服器本身佔用 A。
伺服器現在執行兩個 VirtualBox 來賓,都具有“橋接適配器”網路類型。一位客人正在執行 Windows Server 2003,使用 IP 地址 B。另一位客人正在執行 Arch Linux (Live CD),使用 IP 地址 C。
- 在 Ubuntu 主機中,網路很好。我可以
apt-get
而且下載速度很好。- 在 Windows 客戶機中,我可以
ping www.google.com
在 cmd.exe 中,但我無法在 IE6 中訪問 www.google.com。- 在 Arch Linux 來賓中,我可以
ping www.google.com
在 zsh 中,但curl -v www.google.com
不起作用。我也可以telnet www.google.com 80
,這意味著至少有 80/tcp 和 53/udp 埠在工作。(實際上,伺服器上沒有 iptables 防火牆。)- 在 Arch Linux guest 中,我什至可以
ssh
到另一台機器上!(使用標準 22/tcp )- 在 Arch Linux 客戶機中,我嘗試訪問
wget
一些 https 站點,它停留在“正在連接到 XXX.XXX.XXX.XXX:443…已連接”。我已嘗試更改
--nictype1
VM 的設置和/或在來賓作業系統中設置不同的 MTU,但問題仍然存在。誰能幫我?
附加資訊:將“橋接適配器”更改為“NAT”時,來賓作業系統可以
curl www.google.com
. 一切安好。但是由於我需要公共 IP,所以我必須為來賓作業系統使用“橋接適配器”。附加資訊 2:在帶有“橋接適配器”的來賓作業系統中,我可以
ssh
使用 22/tcp 的其他主機,我可以dig
使用 53/udp 的某些域,但我不能wget
或curl
使用 80/tcp 或 443/tcp 的網站,但telnet www.google.com 80
ortelnet www.google.com 443
很好。使用 “NAT” 時,一切都很好。
嗯,這是我自己想出來的。
我偶然發現我可以
curl google.com
但不能curl www.google.com
,因為第一個比較小,我認為這是 MTU 或其他問題,導致客戶作業系統無法傳輸大段數據。在Google搜尋“虛擬橋接 mtu”後,我發現了這篇文章:https ://forums.virtualbox.org/viewtopic.php?f=7&t=30632&start=0
然後我在 Ubuntu Server 中嘗試
ethtool -K eth2 sg off rx off tx off tso off
了(eth2 是橋接介面),然後……它就像一個魅力!即刻