Назад | Перейти на главную страницу

PAT с IPTABLE через виртуальный сетевой адаптер на виртуальной машине

У меня странная проблема, и я не могу ее решить. Итак, сначала вот моя конфигурация; У меня есть ESXI с общедоступным IP: 1.1.1.1, я размещаю виртуальный сервер Ubuntu с одной сетевой картой (настроенной в моем esxi) eth0 с общедоступным IP 2.2.2.2, и я подключил виртуальный nic eth0: 0 с общедоступным IP 3.3 .3.3. Вот мой / etc / network / interfaces:

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 2.2.2.2
        netmask 255.255.255.255
        broadcast 2.2.2.2
        post-up route add 1.1.1.1 dev eth0
        post-up route add default gw 1.1.1.1
        post-down route del 1.1.1.1 dev eth0
        post-down route del default gw 1.1.1.1

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
        address 3.3.3.3
        netmask 255.255.255.255
        broadcast 3.3.3.3

Пока все хорошо, его работа. Я могу пинговать 2.2.2.2 и 3.3.3.3. Теперь я хочу, чтобы 3.3.3.3:443 был перенаправлен на 3.3.3.3:8777.

Итак, я сделал PAT с iptables следующим образом:

iptables -t nat -A PREROUTING -i eth0:0 -p tcp --dport 443 -j DNAT --to-destination :8777

но когда я делаю telnet 3.3.3.3:443, это не удалось. Итак, я попробовал

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 7778 -j DNAT --to-destination :22

И telnet 2.2.2.2:443 нормально работает. Так что я предполагаю, что это происходит из "добавления маршрута" в моих файлах интерфейсов, но я не уверен.

Любые идеи? Спасибо

Решение было найдено здесь: iptables: псевдоним IP и перенаправление портов Поэтому я не должен использовать DNAT, например:

iptables -t nat -A PREROUTING -i eth0:0 -p tcp --dport 443 -j DNAT --to-destination :8777

Но ПЕРЕНАПРАВЛЕНИЕ:

iptables -t nat -A PREROUTING -i eth0 -d 3.3.3.3 -p tcp --dport 443 -j REDIRECT --to 8777

Это оно!