V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
rv54ntjwfm3ug8
V2EX  ›  Docker

如何限制容器暴露的某个端口只能被公网上某个 IP 访问?

  •  
  •   rv54ntjwfm3ug8 · Apr 6, 2021 via iPhone · 3068 views
    This topic created in 1856 days ago, the information mentioned may be changed or developed.
    容器外的情况下 Ubuntu 可以使用 ufw 轻松实现只有某个 IP 才能访问某个端口,但 ufw 似乎对容器暴露的端口无效,我又不想直接修改 iptables,请问 V 友有什么好的方法吗?(不是 HTTP 数据,不能套反代)
    6 replies    2021-04-07 08:05:23 +08:00
    xupefei
        1
    xupefei  
       Apr 6, 2021 via iPhone   ❤️ 1
    很遗憾,除了服务器提供商的防火墙外,唯一的办法就是 iptables: https://docs.docker.com/network/iptables/
    hanqi7012
        2
    hanqi7012  
       Apr 6, 2021 via Android   ❤️ 1
    套一个 traefik 之类的配合插件
    iBaoger
        3
    iBaoger  
       Apr 6, 2021 via Android
    把容器本身理解为一个完整的操作系统,限制策略做在容器内就好了
    IITII
        4
    IITII  
       Apr 7, 2021 via Android
    1.硬件防火墙,自托管机房,防火墙加规则
    2.软件防火墙。云服务商本机,iptables 。ufw 底层也是对 iptables 进行操作。因为 ufw 与 docker 的 chian (可能拼错了)不一致导致 ufw 的修改无法对 docke 生效。

    最简单的方法,软件里面做限制
    jim9606
        5
    jim9606  
       Apr 7, 2021
    不想用 iptables 那就得容器内的应用自行拦截了,反正可以拿到源 ip 的。

    原应用没法改的话,考虑下自己做个 filter proxy?
    ik
        6
    ik  
       Apr 7, 2021 via iPhone
    haproxy nginx 对 tcp 转发
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3322 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 13:04 · PVG 21:04 · LAX 06:04 · JFK 09:04
    ♥ Do have faith in what you're doing.