请教一下,docker 端口映射到 30000, 然后主机提供反向代理通过访问 8001 从而访问 30000, 现在怎么添加 iptable 实现 30000 只能本机和 docker 访问,禁止其他机器访问呢
1
40EaE5uJO3Xt1VVa 2021-07-10 20:53:03 +08:00
好像都不用做就可以。
你是想用 iptables 把 8001 的请求转发到 30000 ? |
2
anguiao 2021-07-10 20:59:10 +08:00 1
写 127.0.0.1:8001:30000 就行了啊,没那么复杂吧。。
|
3
tdxmgy OP @anguiao 额, 我没说明白吧,docker 是 30001 映射 8080, 然后再主机 nginx 力反向代理用的是 801 反向到 30001, 现在的需求是其他网段通过 801 访问,因为 30001 没有权限限制,所以想问下是否可以通过防火墙限制?
|
4
tdxmgy OP @yanzhiling2001 这个 nginx 反向代理实现了, 我的需求是只能访问 8001,而 30001 禁止访问,因为 30001 没有鉴权, 我是在 8001 上加了 ldap
|
5
40EaE5uJO3Xt1VVa 2021-07-10 21:29:30 +08:00
iptables 都不用放行 30000 端口,本机的 8001 也可以访问到本机的 30000
还是没搞懂你想干什么 |
6
tdxmgy OP @yanzhiling2001 局域网 any--->801 ( nginx 反向代理)-->30001 (映射出来的端口,默认局域网就可以访问)-->8080 ( docker 服务), 需求是禁止局域网访问 30001
|
7
0001110001011 2021-07-10 21:37:58 +08:00 1
2 楼正解
|
8
loveqianool 2021-07-10 23:32:44 +08:00
|
9
weyou 2021-07-11 00:53:09 +08:00 via Android
2 楼正解,此帖已结
|
10
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 |