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

IPtables: переадресация порта на другой хост не работает

Я что-то пробую, это моя тестовая установка:

Настроить:

Что я хочу сделать

Я хочу получить доступ к веб-серверу на узле B из Интернета, посетив узел A.

Как

Я настраиваю параметр переадресации IP в systctl.conf на хосте A, а затем поместите ниже iptables правило:

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

Проблема:

Он не работает, и я не могу открыть веб-страницу, когда посещаю хост A на порту 80

Другая информация (относительно AWS VPC Security Group):

Вот информация о ядре:

# sysctl  -p | grep forward
net.ipv4.ip_forward = 1

Кроме того, я могу подключиться по telnet к порту 80 от хоста A к хосту B на порту 80. Таким образом, это подтверждает, что моя группа безопасности AWS работает должным образом.

Я думаю, что ошибаюсь IPtables часть. Может помочь мне понять, что не так в приведенной выше настройке.

Вы понимаете, что частный хост должен…

  • … Маршрут по умолчанию указывает на маршрутизатор?
  • … Быть SNATed, чтобы его ответы вернулись?

Я думаю, что ошибаюсь в части IPtables. Может помочь мне понять, что не так в приведенной выше настройке.

Верно, трафик будет проходить через Amazon Security Group, но затем будет заблокирован IPTables. Вам нужно правило пересылки, которое будет принимать трафик NAT:

iptables -A FORWARD -p tcp -m tcp -d 10.0.1.132:80 -j ACCEPT

Обратите внимание, что -A может быть неправильным, вам может потребоваться -I (вставить), а затем указать число после «FORWARD», которое представляет, где в вашей цепочке FORWARD вы хотите вставить правило. (т.е. перед любыми DROP) Вы можете указать свою цепочку FORWARD с помощью

iptables -L FORWARD -n --line-numbers