![]() |
1
xclrr 2024-09-18 12:38:55 +08:00 via Android
我了解的一种情况是,docker 开了端口映射不指定监听 ip 会突破 ufw ,docker 会自己修改 iptables ,不知道你是不是这种
|
![]() |
2
jimmy2010 2024-09-18 12:45:51 +08:00
就是 dmz 引起的吧,dmz 就相当于把整个内网的某个 ip 暴露在公网了,如果进来的流量没有匹配到 nat 规则,就直接全部发给 dmz 主机,反倒是 nat 端口映射可以指定要暴露的端口,而不是全部。
|
3
gam2046 2024-09-18 12:49:03 +08:00
DMZ 就是一层 NAT 呀,外部请求过路由器的时候,source ip 就变成了路由器的 IP ,因此能够访问你的服务,是符合预期的。
|
![]() |
4
Laoz666 2024-09-18 12:55:37 +08:00
docker 的问题 docker 开出的端口不受防火墙限制 默认是 0.0.0.0:port
|
![]() |
5
IvanLi127 2024-09-18 13:16:46 +08:00
看起来就是单纯 DMZ 的效果,DMZ 就是能让外网通过 NAT 访问内网,你这机子监听内网 IP 地址,刚刚好呀。
|
![]() |
6
sagaxu 2024-09-18 13:36:03 +08:00 ![]() 这就是 DMZ 的工作方式,它将所有非 NAT 后的流量转发到指定的 IP ,你在路由器上设置 DMZ 主机为 192.168.1.2 ,那么所有监听在 192.168.1.2:*上的端口,都暴露在了公网,能在内网通过 IP:192.168.1.2 访问的服务,全部暴露在公网。
所以一般 DMZ 主机,都要开防火墙,默认阻止所有。 |
![]() |
7
dodakt 2024-09-18 13:41:03 +08:00
|
![]() |
8
cdlnls 2024-09-18 13:41:07 +08:00 via Android
配置了 DMZ 之后不就是这个效果吗?
|
![]() |
10
cdlnls 2024-09-18 13:43:13 +08:00 via Android
|
11
LOGOSJ OP @gam2046 可是那些服务是可以看见源 IP 的,比如我用 python 起的一个最简单的文件服务,用外网设备访问的时候,在服务器上可以看见访问的源 IP 的,说明 DMZ 没有替换掉
|
![]() |
12
Jhma 2024-09-18 13:48:18 +08:00
docker 的网络权限很高,像在 centos7 上部署 docker 他会绕过系统防火墙 firewall-cmd ,且是基于最底层的 iptables 来操作的
|
13
LOGOSJ OP @gam2046 比如测试用的 python 文件服务
Serving at http://192.168.1.2:32187 192.168.1.2 - - [17/Sep/2024 23:06:16] "GET / HTTP/1.1" 200 - 192.168.1.2 - - [17/Sep/2024 23:06:16] code 404, message File not found 192.168.1.2 - - [17/Sep/2024 23:06:16] "GET /favicon.ico HTTP/1.1" 404 - 123.158.***.**- - [17/Sep/2024 23:07:41] "GET / HTTP/1.1" 200 - 123.158.***.** - - [17/Sep/2024 23:07:57] code 404, message File not found 123.158.***.** - - [17/Sep/2024 23:07:57] "GET /favicon.ico HTTP/1.1" 404 - 123.158.*.*的就是我用于访问的外网设备的公网 IP |
![]() |
14
tool2dx 2024-09-18 14:01:07 +08:00 ![]() @LOGOSJ 能看见 IP 不代表什么的,DMZ NAT 替换的 dst ip ,也就是目标 IP 被替换为了 192.168.1.2 。你这个 123.158.*是 src ip ,不替换的。
|
15
lonelyduan 2024-09-18 14:59:15 +08:00
配置 DMZ 不就是这个效果吗…
|
![]() |
16
rnv 2024-09-19 09:07:06 +08:00
看到 DMZ 就明白了。如果你想要安全点的方式,就关闭 DMZ ,使用端口映射
|
17
LOGOSJ OP 感谢各位朋友的指导,确定是 DMZ 的预期行为。更大的问题是我对“监听”的含义理解错误了,某个服务监听在某个 IP 的某个端口,意味着主机只响应发往该 IP 该端口的请求。而我之前错误的理解成只接受源于与监听地址同子网网段的请求。
|