Ubuntu Server 12.04.2を実行する専用サーバーがあります。このサーバーには、A、B、C、Dの4つの使用可能なIPがあります。サーバー自体がAになります。
サーバーは2つのVirtualBoxゲストを実行しており、どちらも「ブリッジアダプター」ネットワークタイプです。 1つのゲストはIPアドレスBを使用してWindows Server 2003を実行しています。もう1つのゲストはIPアドレスCを使用してArch Linux(Live CD)を実行しています。
apt-get
、ダウンロード速度は良好です。ping www.google.com
cmd.exeで、IE6でwww.google.comにアクセスできません。ping www.google.com
zshでは、ただしcurl -v www.google.com
動作しません。私がすることもできます telnet www.google.com 80
は、少なくとも80/tcpおよび53/udpポートが機能していることを意味します。 (実際には、サーバーにiptablesファイアウォールはありません。)ssh
することもできます! (標準22/tcpを使用)wget
しようとしましたが、「Connecting to XXX.XXX.XXX.XXX:443 ... connected」でスタックしました。変更してみました--nictype1
VMの設定、またはゲストOSでの異なるMTUの設定、あるいはその両方ですが、問題は解決しません。
誰か助けてもらえますか?
追加情報:「ブリッジアダプター」を「NAT」に変更すると、ゲストOSはcurl www.google.com
。すべて順調。しかし、パブリックIPが必要なため、ゲストOSには「ブリッジアダプター」を使用する必要があります。
追加情報i 2:「ブリッジアダプター」を備えたゲストOSでは、22/tcpを使用して他のホストをssh
できます。53/ udpを使用して一部のドメインをDig
できますが、wget
またはcurl
ウェブサイトで80/tcpまたは443/tcpを使用しているが、telnet www.google.com 80
またはtelnet www.google.com 443
結構です。 「NAT」を使用する場合、すべてが正常です。
さて、私は自分でこれを理解しました。
私は偶然curl google.com
ができませんcurl www.google.com
と、最初の方がかなり小さいので、これはMTUか何かの問題であり、ゲストOSが大きなデータセグメントを転送できない原因になっていると思います。
「virtual bridged mtu」をグーグル検索した後、私はこの投稿を見つけました: https://forums.virtualbox.org/viewtopic.php?f=7&t=30632&start=
その後、ethtool -K eth2 sg off rx off tx off tso off
Ubuntuサーバーで(eth2はブリッジインターフェイスです)、...魅力のように動作します!すぐに
同じ問題が発生しました。
vmのブリッジnicのデフォルトMTUは1500です。しかし、DFフラグでpingを使用して実際のMTUを検出すると、1498であることがわかります。
したがって、この問題は、ホストにSudo ifconfig eth0 mtu 1498
と入力することで解決できます。