
У меня проблема. Вот схема моей сети.
- У меня есть WIFI-роутер, подключенный к Интернету, я заказал статический IP-адрес у своего интернет-провайдера, чтобы иметь доступ к своему локальному ПК через Интернет.
- Мой роутер создает сеть 192.168.0.0/24
- У меня некоторые порты перенаправлены на мой локальный сервер ПК (192.168.0.101)
- У меня на локальном ПК установлен Virtual Box.
- С помощью Vagrant созданы и поддерживаются два узла, но нас интересует первый узел.
- Каждая виртуальная машина имеет две сетевые карты: первая — NAT для связи Vagrant, вторая — мостовой адаптер через интерфейс локального ПК enp3s0.
- Все узлы имеют определенные MAC-адреса, которые привязаны к настройкам DHCP маршрутизатора, чтобы предоставить им статический IP-адрес (192.168.0.110 и 192.168.0.111)
- Внутри локальной сети все работает, узлы получают корректные IP-адреса, и я могу получить доступ к любому порту узла через локальную сеть.
- На моем узле с IP-адресом 192.168.0.110 запущен сервер Apache, и внутри локальной сети он работает нормально.
- Я хочу получить доступ к моему узлу сервера Apache извне, поэтому я перенаправил внешний порт 8888 на локальный порт 80 на машину с IP-адресом 192.168.0.110, как вы можете видеть на снимке экрана выше.
Но проблема в том, что я не могу получить доступ к node apache извне. Соединение истекло или сброшено. Я попытался захватить трафик с помощью Wireshark и вижу следующие ошибки.
Возможно ли заставить это работать? Или единственное решение - перенаправить порты на ПК 192.168.0.101, а затем пересылать пакеты на узел с помощью NAT с переадресацией портов?
Помогите решить эту проблему. Спасибо.
решение1
Я понимаю, что это не тот ответ, который вы ищете, но я ломал голову больше дня и пришел к такому выводу.Это должно работать и не работает. Я профессионал в Linux и разбираюсь в его сетях. На других форумах говорят, что вы делаете все правильно, я согласен, и должно работать. Я сам пробовал вашу точно такую же настройку в двух совершенно разных сетях, и она просто не работает.
Вам нужно сделать это с адаптером NAT рядом с адаптером моста. Настройте переадресацию портов на NAT и установите IP-адрес хоста на 0.0.0.0.
В вашем маршрутизаторе сделайте переадресацию порта на IP-адрес ХОСТА, а НЕ на IP-адрес клиентской виртуальной машины. Так что в вашем примере переадресуйте порт 8888 на IP-адрес ХОСТА на ТОМ ЖЕ ПОРТУ 8888.
Тогда в Vagrant переадресация порта NAT будет выглядеть так:
config.vm.network "forwarded_port", guest: 80, host_ip: "0.0.0.0", host: 8888