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

docker 映射的端口如何只允许本机和 docker 访问

  •  
  •   tdxmgy · 145 天前 · 1012 次点击
    这是一个创建于 145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教一下,docker 端口映射到 30000, 然后主机提供反向代理通过访问 8001 从而访问 30000, 现在怎么添加 iptable 实现 30000 只能本机和 docker 访问,禁止其他机器访问呢

    10 条回复    2021-07-11 17:32:33 +08:00
    yanzhiling2001
        1
    yanzhiling2001  
       145 天前
    好像都不用做就可以。

    你是想用 iptables 把 8001 的请求转发到 30000 ?
    anguiao
        2
    anguiao  
       145 天前   ❤️ 1
    写 127.0.0.1:8001:30000 就行了啊,没那么复杂吧。。
    tdxmgy
        3
    tdxmgy  
    OP
       145 天前
    @anguiao 额, 我没说明白吧,docker 是 30001 映射 8080, 然后再主机 nginx 力反向代理用的是 801 反向到 30001, 现在的需求是其他网段通过 801 访问,因为 30001 没有权限限制,所以想问下是否可以通过防火墙限制?
    tdxmgy
        4
    tdxmgy  
    OP
       145 天前
    @yanzhiling2001 这个 nginx 反向代理实现了, 我的需求是只能访问 8001,而 30001 禁止访问,因为 30001 没有鉴权, 我是在 8001 上加了 ldap
    yanzhiling2001
        5
    yanzhiling2001  
       145 天前
    iptables 都不用放行 30000 端口,本机的 8001 也可以访问到本机的 30000

    还是没搞懂你想干什么
    tdxmgy
        6
    tdxmgy  
    OP
       145 天前
    @yanzhiling2001 局域网 any--->801 ( nginx 反向代理)-->30001 (映射出来的端口,默认局域网就可以访问)-->8080 ( docker 服务), 需求是禁止局域网访问 30001
    0001110001011
        7
    0001110001011  
       145 天前   ❤️ 1
    2 楼正解
    weyou
        9
    weyou  
       145 天前 via Android
    2 楼正解,此帖已结
    mmtromsb456
        10
    mmtromsb456  
       144 天前
    应该是只允许 nginx 在本机上访问 30001 端口并被 containerd 转发到容器内部的 8080
    二楼是正解,只是端口没对,-p 127.0.0.1:30001:8080 就行了,这样只允许 127.0.0.1 的来源(也就是本机上的 nginx 访问 30001 端口),如果一定要用防火墙来解决的话可以使用 DOCKER-USER 这条 CHAIN
    https://docs.docker.com/network/iptables/#add-iptables-policies-before-dockers-rules
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3043 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 04:23 · PVG 12:23 · LAX 20:23 · JFK 23:23
    ♥ Do have faith in what you're doing.