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

2021 年 4 月 6 日
 rv54ntjwfm3ug8
容器外的情况下 Ubuntu 可以使用 ufw 轻松实现只有某个 IP 才能访问某个端口,但 ufw 似乎对容器暴露的端口无效,我又不想直接修改 iptables,请问 V 友有什么好的方法吗?(不是 HTTP 数据,不能套反代)
3579 次点击
所在节点    Docker
6 条回复
xupefei
2021 年 4 月 6 日
很遗憾,除了服务器提供商的防火墙外,唯一的办法就是 iptables: https://docs.docker.com/network/iptables/
hanqi7012
2021 年 4 月 6 日
套一个 traefik 之类的配合插件
iBaoger
2021 年 4 月 6 日
把容器本身理解为一个完整的操作系统,限制策略做在容器内就好了
IITII
2021 年 4 月 7 日
1.硬件防火墙,自托管机房,防火墙加规则
2.软件防火墙。云服务商本机,iptables 。ufw 底层也是对 iptables 进行操作。因为 ufw 与 docker 的 chian (可能拼错了)不一致导致 ufw 的修改无法对 docke 生效。

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

原应用没法改的话,考虑下自己做个 filter proxy?
ik
2021 年 4 月 7 日
haproxy nginx 对 tcp 转发

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768511

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX