我在Dockerfile中有一个EXPOSE 27017的容器,公共IP和发布端口27017. ice inspect
输出中有相关信息:
...
"PortBindings": {
"27017/tcp": [
{
"HostPort": "27017"
}
]
},
...
"NetworkSettings": {
"Bridge": "",
"Gateway": "",
"IpAddress": "172.31.0.16",
"IpPrefixLen": 0,
"PortMapping": null,
"Ports": {
"27017/tcp": [
{
"HostIp": "134.168.18.146",
"HostPort": "27017"
}
]
},
"PublicIpAddress": "134.168.18.146"
},
但是,我无法使用公共IP连接到数据库,nmap
将端口27017显示为已过滤。
是否有其他步骤来公开容器的端口?
答案 0 :(得分:0)
这是因为当nmap向服务器发送带有SYN标志的数据包时。它没有响应,但是当发送SYN到其他关闭端口时,用标志RST,ACK响应。然后,端口27017被过滤,因为防火墙(或自己的服务器)正在阻止响应数据包。
您可以使用 hping
进行检查$ hping3 -c 3 -S -p 27017 IP