@alexanderqwert

Почему Docker контейнеры не отправляют трафик на порт?

Ситуация следующая:
возникла необходимость обращаться к внешнему сервису через socks5 (привязка лицензии)

было принято решение создать отдельный контейнер с расшареным соксом:

в докер образе socks5

FROM debian:jessie
ADD ssh/ /root/.ssh # added keys
CMD ["ssh", "-C2qTnN", "-D", "1080", "user@server_ip"]
EXPOSE 1080


при выполнение
curl --socks5 127.0.0.1:1080 url
в контейнер socks5 все проходит отлично

ежели я выполняю из контенера с php команду
curl --socks5 socks5:1080 url - то получаю

Failed to connect to socks5 port 1080: Connection refused

Хотя tcpdump port 1080 запущенный в контейнере с socks5 - показывает что пакеты доходят!

на ум пришло ритранслировать входящий трафик через socat и тогда все зараболо! но мне необходимо делать это без костыля! на прямую! все контейнеры находятся в одной сети, связанны через docker-compose.yml
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
@qq1
Попробуйте добавить -g (тыц) опцию, по умолчанию ssh байндит порты только на loopback интерфейс и другим контейнерам они не доступны. Ну и проверьте что ssh ключик без пароля и хост присутствует в known_hosts. У меня вот так заработало:
CMD ["ssh", "-C2qTnNg", "-o", "StrictHostKeyChecking no", "-D", "1080", "root@host"]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Talik0507
Работаю, Живу
НЕ совсем понятно, вы обращаетесь к контейнеру или из контейнера?
какие параметры запуска контейнера?

контейнеры связаны?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы