Совместное использование внешнего IP-адреса с несколькими виртуальными хостами

Совместное использование внешнего IP-адреса с несколькими виртуальными хостами

Для сервера Centos, на котором размещено несколько виртуальных машин LAMP (используя VirtualBox), у меня есть один внешний IP. Я хотел бы иметь возможность использовать этот внешний IP-адрес одного хоста для адресации виртуальных машин. Например, переадресация портов на определенные машины извне:

2.2.2.2 > external IP [WAN]
10.0.0.1 > host IP (tiger) [LAN]
10.0.0.2 > virtual client #1 (zebra)
10.0.0.3 > virtual client #1 (mouse)

поэтому внешний IP пересылается через маршрутизатор на IP хоста (tiger), затем он смотрит на порт и отправляет его zebra или mouse. Оба виртуальных клиента могут (не должны) использовать одни и те же порты для Apache и т. д.

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

Надеюсь, я ясно выразился.

решение1

Если вы просто хотите направить разные порты на 2.2.2.2 на разные виртуальные машины, вы можете сделать это с помощьюiptables. СмотритеРуководство по CentOSдля получения более подробной информации, включаякак сделать правила постоянными( iptablesизменение настроек только до следующей перезагрузки). Чтобы направить входящие TCP-запросы на порт 13080 на 10.0.0.1 на порт 80:

iptables -t nat -A PREROUTING -p tcp --dport 13080 -j DNAT --to 10.0.0.1:80

Если вы хотите выбрать VM в зависимости от имени хоста в HTTP-запросе, вам нужен HTTP-сервер, который будет выступать в качестве диспетчера. Вы можете использовать Apache, но для такой быстрой и простой задачи,Nginxпопулярен.

Связанный контент