Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

docker и iptables

Решаем вопросы не связанные с остальными разделами
Ответить
Alexanderr
Молчаливый гость
Молчаливый гость
Сообщения: 2
Зарегистрирован: 25 ноя 2019, 23:14

docker и iptables

Сообщение Alexanderr »

На ubuntu стоит docker. Запущен контейнер с установленной последней ubuntu с transmission-daemon.
Необходимо трафик для 195.82.146.120/30 пустить через прокси. Для хоста использовал
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination xxx.xxx.xxx.xxx:xx

[spoiler="секция nat"]

Код: Выделить всё

*nat
:PREROUTING ACCEPT [444:37292]
:INPUT ACCEPT [4:739]
:OUTPUT ACCEPT [6:958]
:POSTROUTING ACCEPT [12:1840]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT -d 195.82.146.120/30 -p tcp -m tcp --dport 80 -j DNAT --to-destination xxx.xxx.xxx.xxx:xxx
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 51413 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p udp -m udp --dport 51413 -j MASQUERADE
-A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 8888 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 172.17.0.2:51413
-A DOCKER ! -i docker0 -p udp -m udp --dport 51413 -j DNAT --to-destination 172.17.0.2:51413
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8888 -j DNAT --to-destination 172.17.0.2:8888
COMMIT
[/spoiler]
Помогите, второй вечер убиваю на это ...
Alexanderr
Молчаливый гость
Молчаливый гость
Сообщения: 2
Зарегистрирован: 25 ноя 2019, 23:14

Re: docker и iptables

Сообщение Alexanderr »

Мда..
Пришлось сделать так как не хотел (увеличивается размер контейнера) - запускать контейнер с --privileged, заходить в контейнер, ставить iptables, прописывать правило которое выше писал.

Код: Выделить всё

docker run -it -d --privileged "image" bash
docker exec -it "running-container-id" bash
apt install iptables
Все еще хочется заворачивать хостом, а не docker.
Ответить

Вернуться в «Решаем трудности вместе»