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

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

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

原应用没法改的话,考虑下自己做个 filter proxy?
ik
2021-04-07 08:05:23 +08:00
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