V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
icemanpro
V2EX  ›  Docker

开启 ufw 后,容器内就不能访问 host 上的端口了。

  •  
  •   icemanpro · 14 天前 · 776 次点击

    ubuntu 中,开启 ufw,ufw 规则为空,在容器内就不能访问 172.17.0.1 的端口

    5 条回复    2025-03-07 13:45:12 +08:00
    julyclyde
        1
    julyclyde  
       14 天前
    你的 ufw 的 backend 是哪种?直接用它自己的命令把当前规则列出来看看
    totoro625
        2
    totoro625  
       14 天前
    默认阻止?

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F

    ufw default allow incoming
    或者
    ufw allow from 172.17.0.0/16 to any
    hingle
        3
    hingle  
       14 天前
    重启下 docker 试试,会自动生成规则。
    docker 会生成 NAT MASQUERADE 规则,需要这个才能访问你要访问的 172.17.0.1 。
    julyclyde
        4
    julyclyde  
       14 天前
    @hingle 172.17 不是 docker bridge 的 IP 吗?按说不需要 NAT 啊
    yinmin
        5
    yinmin  
       14 天前
    正常的。启用 ufw 防火墙后,容器当然就不能访问主机 ip 的端口了,需要 ufw 开放端口。

    如果要安全,可以用这条指令:
    ufw allow from 172.17.0.0/16 to 172.17.0.1 port 2222 proto tcp
    (假设容器 ip 地址段是 172.17.0.0/16 ,开放端口 2222/tcp)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:05 · PVG 06:05 · LAX 15:05 · JFK 18:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.