У меня есть сервер Ubuntu, на котором я развернул контейнер докеров, на котором запущено какое-то приложение. Для некоторых тестов, которые мне были нужны, я добавил запись iptables в машину с Ubuntu — для маршрутизации трафика, поступающего с порта 443 на порт 8443. Сделал это следующим образом:
sudo iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 8443
Теперь я вижу, что приложение, которое я запускаю внутри док-контейнера, сталкивается с некоторыми более серьезными проблемами. Пример: само приложение вызывает другую внешнюю службу через ssl. Это сейчас не получается. Выдает ошибку: Время подключения к ***.abc.com:443 истекло. Я знаю, что эта внешняя служба работает с других машин с аналогичной конфигурацией.
Я вижу аналогичную проблему с другими внешними службами, к которым мое приложение пытается подключиться через ssl.
Похоже, я что-то напортачил с приведенной выше командой iptables. Поэтому я немного посмотрел и попробовал следующее:
sudo iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 443
sudo iptables -D PREROUTING -t nat -p tcp --dport 443 -j ПЕРЕНАПРАВЛЕНИЕ --to-ports 8443
Я думал, что первая строка гарантирует, что весь трафик на порт 443 действительно пойдет на порт 443, а вторая строка отменит запись iptables, которую я добавил ранее.
Я также попытался перезапустить сам сервис iptables. (Поскольку я не сохранил запись iptables)
Тем не менее, я все еще вижу вышеупомянутую проблему. Я не понимаю, почему это влияет на трафик из моего док-контейнера во внешний мир.
Любые данные о том, в чем проблема.
ТИА - Ом.