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

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

  •  
  •   rv54ntjwfm3ug8 · 2021-04-06 22:35:24 +08:00 via iPhone · 2332 次点击
    这是一个创建于 1309 天前的主题,其中的信息可能已经有所发展或是发生改变。
    容器外的情况下 Ubuntu 可以使用 ufw 轻松实现只有某个 IP 才能访问某个端口,但 ufw 似乎对容器暴露的端口无效,我又不想直接修改 iptables,请问 V 友有什么好的方法吗?(不是 HTTP 数据,不能套反代)
    6 条回复    2021-04-07 08:05:23 +08:00
    xupefei
        1
    xupefei  
       2021-04-06 22:39:18 +08:00 via iPhone   ❤️ 1
    很遗憾,除了服务器提供商的防火墙外,唯一的办法就是 iptables: https://docs.docker.com/network/iptables/
    hanqi7012
        2
    hanqi7012  
       2021-04-06 22:47:43 +08:00 via Android   ❤️ 1
    套一个 traefik 之类的配合插件
    iBaoger
        3
    iBaoger  
       2021-04-06 22:56:19 +08:00 via Android
    把容器本身理解为一个完整的操作系统,限制策略做在容器内就好了
    IITII
        4
    IITII  
       2021-04-07 01:54:06 +08:00 via Android
    1.硬件防火墙,自托管机房,防火墙加规则
    2.软件防火墙。云服务商本机,iptables 。ufw 底层也是对 iptables 进行操作。因为 ufw 与 docker 的 chian (可能拼错了)不一致导致 ufw 的修改无法对 docke 生效。

    最简单的方法,软件里面做限制
    jim9606
        5
    jim9606  
       2021-04-07 02:41:16 +08:00
    不想用 iptables 那就得容器内的应用自行拦截了,反正可以拿到源 ip 的。

    原应用没法改的话,考虑下自己做个 filter proxy?
    ik
        6
    ik  
       2021-04-07 08:05:23 +08:00 via iPhone
    haproxy nginx 对 tcp 转发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:26 · PVG 05:26 · LAX 13:26 · JFK 16:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.