【问题标题】:Centos iptables fails with docker rulesCentos iptables 因 docker 规则而失败
【发布时间】:2019-10-05 16:35:18
【问题描述】:

我已经安装了一个 docker 服务:

docker run --rm --name some-nginx -d -p 8080:80 nginx:stable-alpine

然后我为它添加了 iptable 规则:

PORT=8080
 /sbin/iptables -A OUTPUT -p tcp --dport $PORT -m state --state NEW,ESTABLISHED      -j ACCEPT
 /sbin/iptables -A INPUT  -p tcp --sport $PORT -m state --state ESTABLISHED  -j ACCEPT

当我尝试检查端口是否打开时,它说它是打开的:

$netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      11211/docker-proxy

当我尝试进行更多调查时,它似乎仍然开放:

 iptables-save | grep 8080
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.17.0.3:80
-A INPUT -p tcp -m tcp --sport 8080 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT

我看到 docker 添加了一些规则,但我的规则存在。

问题是我无法在给定端口连接到 nginx!

telnet XX.XX.XX.XX 8080
Trying XX.XX.XX.XX...
telnet: Unable to connect to remote host: Connection timed out

当我关闭 iptables 时,即使浏览器提供 nginx 起始页,它也能正常工作。

如何启用 iptables 或 docker 以使用给定的端口?

【问题讨论】:

    标签: docker centos centos7 iptables


    【解决方案1】:

    我有一些你可以阅读的页面。:

    https://fralef.me/docker-and-iptables.html
    https://riptutorial.com/docker/topic/9201/iptables-with-docker
    

    我也有一个 linux,在这里试试这个:

    iptables -A INPUT -p tcp -m tcp --dport xxx -j ACCEPT
    iptables -A OUTPUT -p tcp --sport xxx -m state --state ESTABLISHED -j ACCEPT
    or
    iptables -A OUTPUT -o eth0 -p tcp --dport xxx -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --sport xx -m state --state ESTABLISHED -j ACCEPT
    

    如果有帮助,请告诉我。

    【讨论】:

    • 有线这是不需要我的规则它只适用于docker添加的第一条规则。但我有其他文件每分钟都应用规则。现在运行不处理 pot 8080 的规则会阻止这个 docker 规则。然而,tihs 规则仍然存在,但它就像从 bash 脚本应用我的 iptables 脚本后没有使用一样。
    • 我必须重新启动整个 docker 并启动容器,以便规则再次生效
    • 好的,现在我发现我的脚本正在使用/sbin/iptables -F 并且还刷新了一些 docker 规则。但是如何只刷新非 docker 规则呢?
    • 好吧,我发现iptables -F INPUTiptables -F OUTPUT 必须是明确的,并且剩余的链应该保留,例如 FORWARD 不应该被刷新,因为 docker 使用这个链。
    猜你喜欢
    • 1970-01-01
    • 2015-06-15
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    相关资源
    最近更新 更多