У меня есть выделенный сервер и на нем установлен 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