Iptables

如何更好地控制 docker 在 iptables 中打開哪些埠?

  • December 18, 2018

我正在使用 UFW 來設置我的防火牆規則。

但是 docker 在 iptables 中不斷覆蓋它們,打開所有從容器映射到主機的埠。

我只想從外部訪問 docker 容器中的兩個埠,但阻止訪問其他 docker 容器埠並只允許它們訪問 localhost(在 ssh 隧道之後)。

除了 iptables=false 之外的任何解決方案?

簡單的答案是跳過任何 iptables 更改並將需要從 localhost 訪問的埠發佈到僅環回介面。例如

docker run -p 127.0.0.1:2222:22 -d your_ssh_image

這只會將埠 2222 發佈到 127.0.0.1 介面,而不是所有介面 (0.0.0.0)。


如果您確實需要以影響 docker 容器的方式修改 iptables 規則,請使用 docker記錄DOCKER-USER的表格,例如:

iptables -I DOCKER-USER -p tcp -m tcp --dport 2222 ! -s 192.168.1.1 -j DROP

引用自:https://serverfault.com/questions/945654