有一个运行Ubuntu Server 12.04.2的微妙的服务器。 这个服务器有4个可用的IP:A,B,C,D。服务器本身就是A.
服务器现在运行两个VirtualBox来宾,都使用“桥接适配器”networkingtypes。 一个guest虚拟机运行Windows Server 2003,使用IP地址B.另一个运行Arch Linux(Live CD),使用IP地址C.
apt-get和下载速度是好的。 ping www.google.com ,但无法访问IE6中的www.google.com。 ping www.google.com ,但curl -v www.google.com不起作用。 我也可以telnet www.google.com 80 ,这意味着至less80 / tcp和53 / udp端口正在工作。 (实际上服务器上没有iptables防火墙。) ssh到另一台机器! (使用标准22 / TCP) wget一些https网站,它卡在“连接到XXX.XXX.XXX.XXX:443 …连接”。 我已经尝试更改虚拟机的--nictype1设置和/或在来宾操作系统中设置不同的MTU,但问题仍然存在。
谁能帮我?
附加信息:将“桥接适配器”更改为“NAT”时,客户机操作系统可能会curl www.google.com 。 一切安好。 但是,因为我需要公共IP,所以我必须使用“桥接适配器”作为来宾操作系统。
附加信息2:在具有“桥接适配器”的客户机操作系统中,我可以使用22 / tcp来ssh其他主机,我可以使用53 / udp dig某个域,但是我不能使用80 / tcp或443 / tcp来curl或者curl网站。 telnet www.google.com 80或telnet www.google.com 443是好的。 当使用“NAT”时,一切都很好。
好吧,我自己解决了这个问题。
我偶然发现,我可以curl google.com但不能curl www.google.com ,因为第一个是比较小,我认为这是MTU或什么的问题,导致客户操作系统无法传输大段数据。
谷歌search“虚拟桥梁MTU”后,我发现这个职位: https : //forums.virtualbox.org/viewtopic.php?f=7& t=30632&start =0
然后,我尝试在Ubuntu服务器(eth2是桥接接口) ethtool -K eth2 sg off rx off tx off tso off ,并且…它的作用就像一个魅力! 即刻
我遇到了同样的问题。
在vm中桥接网卡的默认MTU是1500.但是当我使用带有DF标志的ping来检测实际的MTU时,结果是1498。
所以,这个问题可以通过在我的主机上inputsudo ifconfig eth0 mtu 1498来解决。