Порт Block Docker и доступ это к немногим IP-адресам

Пакетные задания, отправленные qsub, по умолчанию выполняются в вашем домашнем каталоге.

Некоторые версии qsub поддерживают опцию -d для указания другого каталога. Чтобы выполнить скрипт в том же каталоге, где вы запустили qsub, используйте

qsub -d "$PWD" -q hpc-pool ./myScript.sh

Если опция -d недоступна, вы можете получить доступ к каталогу, в котором вы запустили qsub в вашем скрипте, в переменной PBS_O_WORKDIR. Поэтому добавьте эту строку в начало вашего сценария:

cd "$PBS_O_WORKDIR" || exit $?

0
18.11.2018, 11:56
2 ответа

Из-за DNAT вы теперь маршрутизируете . Ваша цепочка INPUT больше не используется для этого DNAT-трафика, и теперь вместо нее проходится цепочка FORWARD. Новый пункт назначения — 172.21.0.2:8080, и теперь правила должны заботиться об этом, а не <VM local IP>:8090.

Таким образом, с помощью DNAT вы должны заблокировать свой трафик с помощью (в правильном порядке :разрешить исключение, а затем запретить все остальное):

iptables -A FORWARD -s <IP> -d 172.21.0.2 -p tcp --dport 8080 -j ACCEPT
iptables -A FORWARD -d 172.21.0.2 -p tcp --dport 8080 -j DROP

Чтобы убедиться, что это действительно сделано перед любым системным правилом, вы можете:

iptables -I FORWARD 1 -s <IP> -d 172.21.0.2 -p tcp --dport 8080 -j ACCEPT
iptables -I FORWARD 2 -d 172.21.0.2 -p tcp --dport 8080 -j DROP

Эти правила могут помешать другим контейнерам получить доступ к этому контейнеру в зависимости от конфигурации, поэтому вам, возможно, придется адаптировать их (, указав внешний интерфейс ввода, например ). В любом случае, вы должны найти способ хорошо интегрировать это с системным методом брандмауэра.

0
28.01.2020, 04:15

об этих строках:

iptables -A INPUT -p tcp --dport 8090 -j DROP
iptables -A INPUT -p tcp --dport 8090 -s <IP> -j ACCEPT

вам следует изменить их порядок, потому что IPTables правила перезаписывают друг друга в состоянии конфликта, и это правильный способ, поэтому сначала исправьте их и проверьте все остальные роли, чтобы предотвратить перезапись.

относительно NAT части вашего вопроса, неясно, однако в докере вы должны назначать порт при создании контейнера:

docker run... -p 8090:8080... 
0
28.01.2020, 04:15

Теги

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