Есть выделенный сервер под управлением Ubuntu Server 12.04.2. Для этого сервера есть 4 IP-адреса: A, B, C, D. Сервер сам принимает A.
На сервере теперь работают два гостя VirtualBox, оба с типом сети «Мостовой адаптер». Один гость работает под управлением Windows Server 2003 с IP-адресом B. Другой работает под управлением Arch Linux (Live CD) с IP-адресом C.
apt-get
да и скорость загрузки хорошая.ping www.google.com
в cmd.exe, но я не могу посетить www.google.com в IE6.ping www.google.com
в zsh, но curl -v www.google.com
не работает. я тоже могу telnet www.google.com 80
, что означает, что работают как минимум 80 / tcp и 53 / udp порты. (На самом деле на сервере нет брандмауэра iptables.)ssh
на другую машину! (используя стандарт 22 / tcp)wget
какой-то https-сайт, он застрял на «Подключение к XXX.XXX.XXX.XXX:443 ... подключен».Я пробовал менять --nictype1
настройки виртуальной машины и / или других значений 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
или telnet www.google.com 443
Это хорошо. При использовании «NAT» все нормально.
Ну, я сам в этом разобрался.
Я случайно обнаружил, что могу curl google.com
но не может curl www.google.com
и поскольку первый из них намного меньше, я думаю, что это проблема с MTU или чем-то еще, из-за чего гостевая ОС не может передавать большой сегмент данных.
После поиска в Google "virtual bridged mtu" я нашел это сообщение: https://forums.virtualbox.org/viewtopic.php?f=7&t=30632&start=0
Потом я попробовал ethtool -K eth2 sg off rx off tx off tso off
на сервере Ubuntu (eth2 - это мостовой интерфейс), и ... он работает как шарм! Мгновенно
Я столкнулся с той же проблемой.
MTU по умолчанию для мостового nic в vm составляет 1500. но когда я использую ping с флагом DF для определения фактического MTU, оказывается, что это 1498.
Итак, эту проблему можно решить, набрав sudo ifconfig eth0 mtu 1498
в моем хозяине.