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

2021-07-10 20:42:57 +08:00
 tdxmgy

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

2541 次点击
所在节点    Docker
10 条回复
yanzhiling2001
2021-07-10 20:53:03 +08:00
好像都不用做就可以。

你是想用 iptables 把 8001 的请求转发到 30000 ?
anguiao
2021-07-10 20:59:10 +08:00
写 127.0.0.1:8001:30000 就行了啊,没那么复杂吧。。
tdxmgy
2021-07-10 21:18:06 +08:00
@anguiao 额, 我没说明白吧,docker 是 30001 映射 8080, 然后再主机 nginx 力反向代理用的是 801 反向到 30001, 现在的需求是其他网段通过 801 访问,因为 30001 没有权限限制,所以想问下是否可以通过防火墙限制?
tdxmgy
2021-07-10 21:19:15 +08:00
@yanzhiling2001 这个 nginx 反向代理实现了, 我的需求是只能访问 8001,而 30001 禁止访问,因为 30001 没有鉴权, 我是在 8001 上加了 ldap
yanzhiling2001
2021-07-10 21:29:30 +08:00
iptables 都不用放行 30000 端口,本机的 8001 也可以访问到本机的 30000

还是没搞懂你想干什么
tdxmgy
2021-07-10 21:35:58 +08:00
@yanzhiling2001 局域网 any--->801 ( nginx 反向代理)-->30001 (映射出来的端口,默认局域网就可以访问)-->8080 ( docker 服务), 需求是禁止局域网访问 30001
0001110001011
2021-07-10 21:37:58 +08:00
2 楼正解
loveqianool
2021-07-10 23:32:44 +08:00
weyou
2021-07-11 00:53:09 +08:00
2 楼正解,此帖已结
mmtromsb456
2021-07-11 17:32:33 +08:00
应该是只允许 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

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

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

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

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

© 2021 V2EX