У меня есть виртуальная машина со службой, которая прослушивает порт 15672. Сервер, на котором находится виртуальная машина, настроен на использование iptables для пересылки запросов на виртуальные машины. Вот соответствующие строки, которые перенаправляют запросы на виртуальную машину:
-A PREROUTING -d <ip-сервер> -i ens3 -p tcp -m tcp --dport 443 -j DNAT --to-destination <local-vm-ip>
-A PREROUTING -d <ip-сервер> -i ens3 -p tcp -m tcp --dport 80 -j DNAT --to-destination <local-vm-ip>
-A PREROUTING -d <ip-сервер> -i ens3 -p tcp -m tcp --dport 15672 -j DNAT --to-destination <local-vm-ip>
-A PREROUTING -d <ip-сервер> -i ens3 -p tcp -m tcp --dport 22 -j DNAT --to-destination <local-vm-ip>
-A POSTROUTING -s <local-vm-ip> -o ens3 -j SNAT --to-source <server-ip>
Веб-запросы в настоящее время работают для портов 443 и 80, но у меня проблемы с 15672. Когда я запускаю netstat -tlnp | группа 15672
на виртуальной машине я получаю:
TCP 0 0 0.0.0.0:15672 0.0.0.0:* ПРОСЛУШИВАТЬ 276/beam.smp
Однако всякий раз, когда я пытаюсь получить доступ http://<IP-адрес сервера>:15672
Я просто получаю тайм-аут через некоторое время.
Я не был тем, кто написал эти правила iptables, но я пытался их разобрать и выяснить, что они делают. Есть ли что-то, чего мне не хватает, чтобы получить ответ 15672?