Переадресация портов VirtualBox не работает с NAT-адаптером

Я пытаюсь выполнить обычную переадресацию портов с помощью VirtualBox, и, похоже, VirtualBox.exe прослушивает хост для порта, но фактически не перенаправляет соединение с гостем. Я пробовал несколько портов, и я несколько раз перезапускал VirtualBox. С другой стороны, с гостевым подключением - все в порядке. Здесь информация:

Host: Win7 x64
Guest: Win7 x64
VirtualBox version: VirtualBox 4.2.10
Firewalls: All firewalls on host and guest disabled.

Virtual Box > Machine Settings > Network
 Adapter 1: 
  Attached to: NAT
  Cable Connected : True
  Port Forwarding:
   Rule 1: TCP, HostIP=127.0.0.1, HostPort=8081, GuestIP=127.0.0.1, GuestPort=8081

On Host:
[VirtualBox.exe]  TCP    127.0.0.1:8081         IBM-6KT5OPCF76P:0      LISTENING

On Guest:
I never get the connection request on port 8081 or any others I've tried.

Любые идеи? Я бы хотел избежать использования адаптера VirtualBox для нескольких причин. У меня создалось впечатление, что перенаправление NAT-портов было относительно простым с VirtualBox.

Спасибо!

Ответы

Ответ 1

Вы указали гостевой ip неверным образом, это должен быть ip гостя (если вы статически назначаете ip-адрес гостю) или оставьте его пустым. Обратите внимание, что вы указали host ip как 127.0.0.1, это означает, что переадресация порта будет доступна только с порта (если вам не то, что вам нужно, оно также должно быть пустым).

VBoxManage modifyvm "win" --natpf1 ",tcp,,8081,,8081"

возможно, это то, что вы хотели сделать. (пожалуйста, смотрите здесь для более подробной информации)

Ответ 2

Паравиртуализированная сеть * (virtio-net) - это ключ

  • выберите vm, который вы хотите для перенаправления портов.

    • ПРИМЕЧАНИЕ. Убедитесь, что vm находится в режиме остановки.
  • Выберите "Настройки"

  • Выберите "Сеть"
  • Выберите любой свободный адаптер. Давайте скажем "Адаптер 2"
  • Включить "Включить сетевой адаптер"
  • В окне Прикрепленный к выпадающему меню выберите "NAT"
  • Выберите "Дополнительно"
  • Тип адаптера: выберите "Паравиртуализированная сеть (virtio-net)" [Это важно]
  • Выберите "Переадресация портов"
  • В правой части диалогового окна "переадресация портов" выберите "+"
  • Предоставьте

    • Название: Все, что вы хотите. пример для ssh, например "ssh"
    • Протокол: Тип протокола [для ssh: TCP]
    • Host IP: укажите имя хоста, с какого хоста вы хотите подключиться к [здесь: 127.0.0.1]
    • Порт хоста: в каком порту этого хоста вы хотите подключиться к удаленному порту [пример: 60022]
    • Гость IP: оставить его пустым
    • Гостевой порт: к какому порту вы хотите подключиться от вышеуказанного хоста. [для ssh, значение по умолчанию 22]

Ответ 3

Неясно, какую гостевую ОС вы используете.

Я столкнулся с той же проблемой.

Мой хост был MAC-компьютером, а гостем был CentOS 7 на VirtualBox.
Я включил переадресацию NAT-порта от гостя к хосту на уровне VirtualBox как для порта ssh 22, так и для http-порта 80.

Однако я обнаружил, что не смог подключиться к HTTP-серверу Apache на гостевом компьютере Centos 7 с моего хоста MAC-ПК в http-соединении.

Чтобы исправить это, я должен установить firewalld-службу, чтобы разрешать соединения с портом 80.

Ответ 4

У меня возникла аналогичная проблема, и она оказалась неподписанными драйверами в сетевом стеке, установленном некоторым программным обеспечением для перехвата прокси-сервера, называемым proxycap, которые вызывали ошибку виртуального бокса при настройке переадресации портов. Проверьте журналы машин VM для сообщения об ошибке при настройке переадресации портов и перечислении неподписанных драйверов и удалите соответствующее приложение.