Страница 1 из 1

docker и iptables

Добавлено: 26 ноя 2019, 20:36
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]
Помогите, второй вечер убиваю на это ...

Re: docker и iptables

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

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

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