Наконец-то мне удалось переместить свой сервер на виртуальную машину VirtualBox.
ВМ работает в режиме NAT. Я перенаправил необходимые порты, включая порт 80, который я сначала отправил с помощью iptables, на порт 8888, а затем перенаправил через VirtualBox на порт 80 в гостевой ОС.
-A PREROUTING -i p10p1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8888
Все отлично работает! За исключением ... Я не вижу IP-адреса посетителей веб-сайта из PHP $ _SERVER ['REMOTE_ADDR']. Я вижу только 1 IP-адрес, который, я полагаю, является адресом NAT хоста.
Как мне настроить мою систему (ОС хоста и VirtualBox), чтобы иметь возможность запускать веб-сервер и видеть IP-адреса посетителей?
Мой хост напрямую подключен к Интернету через 1 фиксированный IP-адрес. Получение другого IP-адреса для гостевого подключения по мосту не вариант (это уже довольно дорогое подключение к Интернету).
Пожалуйста, попробуйте решение, которое я нашел на форуме виртуальных боксов, у меня оно работает !!!
Это возможно без режима моста! По какой-то странной причине режим NAT по умолчанию в VirtualBox перезаписывает исходный код.
Вы хотите переключить NAT в прозрачный режим с помощью
VBoxManage modifyvm <your-vm name> --nataliasmode1 proxyonly
более подробную информацию можно найти здесь:
https://forums.virtualbox.org/viewtopic.php?f=7&t=43500#p260181
Используя NAT, вы не можете передать IP-адрес посетителя на веб-сервер. Все подключения к веб-серверу будут осуществляться с хоста, на котором запущен Virtual Box.
Для этого вам потребуется в операционной системе хоста, в которой работает VirtualBox, настроить экземпляр HAproxy или nginx, чтобы добавить настраиваемый HTTP-заголовок с реальным исходным IP-адресом посетителя для каждого HTTP-запроса.
Затем этот заголовок анализируется на внутреннем веб-сервере и используется для журналов доступа / ошибок и статистики веб-сервера.
Если вашим внутренним веб-сервером является Apache, вам понадобится следующий модуль, чтобы иметь возможность анализировать настраиваемый HTTP-заголовок. http://stderr.net/apache/rpaf/