Попытка перенести порт с хоста (Mac OS X) 127.0.0.1:8282 -> guest (CentOS) на 10.10.10.10:8080. Существующие переадресации портов включают 127.0.0.1:8181 и 9191 для гостя без указания какого-либо IP-адреса (поэтому, что бы он ни получал через DHCP, как описано в документации).
Вот как была добавлена нерабочая привязка:
VBoxManage modifyvm "VM name" --natpf1 "rule3,tcp,127.0.0.1,8282,10.10.10.10,8080"
Вот как были добавлены рабочие:
VBoxManage modifyvm "VM name" --natpf1 "rule1,tcp,127.0.0.1,8181,,80"
VBoxManage modifyvm "VM name" --natpf1 "rule2,tcp,127.0.0.1,9191,,9090"
И под «нерабочим» я, конечно, подразумеваю не слушать (как условие пересылки):
$ lsof -Pi -n|grep Virtual|grep LISTEN
VirtualBo 27050 user 21u IPv4 0x2bbdc68fd363175d 0t0 TCP 127.0.0.1:9191 (LISTEN)
VirtualBo 27050 user 22u IPv4 0x2bbdc68fd0e0af75 0t0 TCP 127.0.0.1:8181 (LISTEN)
Там должна быть похожая строка выше, но с 127.0.0.1:8282.
Просто чтобы быть понятным, этот порт прекрасно слушает самого гостя. И когда я удаляю гостевой IP (т. Е. Очищаю 10.10.10.10), форвард работает нормально, хотя и не eth0 (а не eth1 там, где он мне нужен). Я могу tcpdump и наблюдать за движением трафика туда-сюда. И да, я полностью отключил iptables во время тестирования - он нигде не блокируется на госте.
Как пишет VirtualBox в своей документации, вы должны указать гостевой IP-адрес, если он статический (имеет смысл, нет записи DHCP, которую он хранит): «Если по какой-то причине гость использует статический назначенный IP-адрес, не арендованный у встроенного DHCP сервер, при регистрации правила переадресации необходимо указать гостевой IP-адрес: ". Однако, делая это (как мне нужно), кажется, что порт сломан вперед без отчета в любом файле журнала, который я могу найти. (Я рассмотрел все в ~/Library/VirtualBox/).
Другие заметки:
- Несмотря на то, что я использовал указанную выше команду для добавления третьего правила, я также проверил, что оно правильно отображается в графическом интерфейсе, а затем удалено / повторно добавлено оттуда, чтобы убедиться).
- Эта ссылка на форуме - хотя и очень устарела - выглядит несколько связанной с тем, что порт перенаправления на статический IP-адрес не появлялся (возможно, они думают, что из-за отсутствия произвольного arp, отправляемого хосту, чтобы узнать, есть ли IP / имеется?
Во всяком случае, что дает? Это все еще глючит? Какие-либо предложения? Если нет, то достаточно ли обходных путей? Что интересно, это прекрасно работает на Mac другого пользователя, однако он работает на несколько более старой версии (4.3.6 v. 4.3.12).