Запросы из контейнера в другой контейнер не работают
У меня есть выделенный сервер и на нем установлен LXD. Я создал один контейнер для каждого приложения и один контейнер как прокси для других контейнеров. Когда приходит запрос (на IP моего выделенного сервера), он перенаправляется в прокси-контейнер, а затем отправляет его в контейнеры приложения.
Это iptables
правила, которые я использую для перенаправления портов 80
и 443
на выделенном сервере в порты 80
и 443
на мой контейнер (ip 10.1.232.241
):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443
Это хорошо работает для любого запроса, поступающего извне. Он не работает для запросов, отправляемых с выделенного сервера на сайт, указывающий на выделенный сервер. Давайте рассмотрим пример: у меня есть сайт, blog.kindlyfire.me
указывающий на мой выделенный сервер. Запуск curl blog.kindlyfire.me
работает на моем локальном компьютере, но не работает при запуске непосредственно на компьютере (обратите внимание: он не работает ни в одном из контейнеров). Чтобы обойти это, я тоже вперед в цепочке OUTPUT
:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80 iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443
Запросы с моего выделенного сервера на общедоступный ip теперь выполняются нормально. Но они еще не бегут из моих контейнеров! Я думал, потому что контейнеры используют lxdbr0
интерфейс, я должен был бы также переслать это:
iptables -t nat -A PREROUTING -i lxdbr0 -p tcp --dport 443 -j DNAT --to-destination 10.1.232.241:443 iptables -t nat -A PREROUTING -i lxdbr0 -p tcp --dport 80 -j DNAT --to-destination 10.1.232.241:80
Теперь я больше не получаю этот вывод (команда запускается внутри одного из моих контейнеров):
$ curl blog.kindlyfire.me curl: (7) Failed to connect to blog.kindlyfire.me port 80: Connection refused
Но вместо этого я получаю это:
$ curl blog.kindlyfire.me
И он просто сидит там ...
Я понятия не имею, что попробовать дальше. Пакеты не возвращаются? Я хотел бы получить некоторую помощь, потому что я был потерян вначале и теперь полностью мертв ...
0 ответов на вопрос
Похожие вопросы
-
5
Как мне сказать Windows использовать 802.11 вместо 3G?
-
3
Использование двух разъемов Ethernet (один для локальной сети, один для глобальной сети)
-
4
Как настроить сетевой менеджер Ubuntu / Linux для выборочной маршрутизации сетевого трафика через VP...
-
-
12
Как я могу сделать выборочный трафик Windows VPN по маршруту (по сети назначения)?
-
1
Как я могу запретить создание маршрута в Windows XP при подключении к Cisco VPN?
-
2
Как разделить две сети на одно интернет-соединение
-
2
Регистрация связи между двумя виртуальными машинами
-
4
Возможно ли в Linux iptables записать имя процесса / команды, которая инициирует исходящее соединени...
-
1
Почему / sbin / route требуется несколько секунд для запуска?
-
1
Проблема с подключением системы Ubuntu к туннелю IPv6 через NAT