1

У меня проблема. Вот схема моей сети.

  1. У меня есть WIFI Router, подключенный к Интернету, я заказал статический IP-адрес у своего интернет-провайдера, чтобы я мог получить доступ к своему локальному ПК через Интернет.
  2. Мой роутер создает сеть 192.168.0.0/24
  3. У меня есть несколько портов для моего локального ПК-сервера (192.168.0.101)
  4. У меня установлена виртуальная коробка на локальном ПК
  5. Там два узла созданы и поддерживаются с помощью vagrant, но нас интересует первый узел.
  6. Каждая виртуальная машина имеет два сетевых адаптера. Первый - это NAT для связи Vagrant, второй - это мостовой адаптер через локальный интерфейс ПК enp3s0.
  7. У всех узлов есть определенные MAC-адреса, которые связаны в настройках DHCP маршрутизатора, чтобы дать им статический IP (192.168.0.110 и 192.168.0.111)
  8. Все работает внутри локальной сети, узлы получают правильные IP-адреса, и я могу получить доступ к любому порту узла через локальную сеть
  9. Мой узел с IP 192.168.0.110 работает сервер Apache и внутри локальной сети работает нормально.
  10. Я хочу получить доступ к моему серверу Apache этого узла извне, поэтому я перенаправил внешний порт 8888 на локальный порт 80 на машину с IP 192.168.0.110, как вы можете видеть на скриншоте выше.

Но проблема в том, что я не могу получить доступ к apache узла извне. Время соединения истекло или сброшено. Я попытался захватить трафик с помощью Wireshark, и я вижу следующие ошибки.

Возможно ли заставить это работать? Или только одно решение - переадресовать порты на ПК 192.168.0.101, а не пересылать пакеты на узел, используя NAT с переадресацией портов?

Пожалуйста, помогите решить эту проблему. Благодарю.

1 ответ1

0

Я понимаю, что это не тот ответ, который вы ищете, но я ломал голову более суток и пришел к такому выводу. Это должно работать и не работает. Я профессионал в Linux и разбираюсь в этом. Другие форумы говорят, что вы делаете все правильно, я согласен и должен работать. Я сам попробовал точно такую же настройку в двух совершенно разных сетях, и она просто не работает.

Вы должны сделать это с помощью адаптера NAT вдоль бокового моста. Настройте переадресацию портов на NAT и установите IP-адрес хоста на 0.0.0.0.

В вашем маршрутизаторе выполните переадресацию порта на IP-адрес HOST, а НЕ на IP-адрес виртуальной машины клиента. Так что в вашем примере порт переадресации 8888 на IP-адрес хоста на том же порту 8888.

Тогда в Vagrant переадресация порта NAT будет выглядеть так:

config.vm.network "forwarded_port", guest: 80, host_ip: "0.0.0.0", host: 8888

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .