docker - 无法通过服务器 IP 访问 Envoy Admin 服务器

标签 docker ubuntu envoyproxy

我目前在 Docker 容器中运行 Envoy,但是在部署到运行 Ubuntu 20.10 的服务器时,我无法访问 Envoy 管理服务器。
当我在运行 Windows 11 的个人计算机上本地运行容器时,我能够毫无问题地访问它。
这是我的特使配置:

admin:
  access_log_path: /tmp/admin_access.log
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 9901
我的 Dockerfile:
FROM envoyproxy/envoy:v1.20-latest
COPY ./envoy.yaml /etc/envoy/envoy.yaml
CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml -l debug
以及我如何运行 Docker 容器:
sudo docker build -t envoy .
sudo docker run -d -p 9000:9000 -p 9901:9901 envoy
运行容器后,我能够验证 Docker 能够绑定(bind)到端口,如下图所示。
我试图通过我的浏览器访问管理门户,尝试访问 123.123.123.123:9901 (其中 123.123.123.123 是一个示例公共(public) IP)。我在端口 80 上提供了一些服务我可以使用服务器的公共(public) IP 访问它,所以看起来问题出在我的 Envoy/Docker 配置上。我究竟做错了什么?
Relevant running ports

最佳答案

原来这是我的疏忽。我使用谷歌计算引擎作为我的服务器虚拟机,当我最初查看防火墙设置时,我看到了一系列已启用的端口,但没有意识到它们只能由虚拟机本身通过 localhost 启用和访问.我以为端口是公开的,但我错了。我意识到情况确实如此,因为我能够 curl管理员 URL 通过 curl localhost:9901 ,但无法访问 server-ip:9901 .暴露端口后9901在我的 VM 的 GCP 防火墙设置上公开,它工作正常,所以这不是服务器配置问题,而是防火墙配置问题。

关于docker - 无法通过服务器 IP 访问 Envoy Admin 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70666746/

相关文章:

macos - Docker 运行失败,来自守护进程的错误响应

php - Docker Compose - 部署中的符号链接(symbolic link)

docker-compose:使用相同的 container_name 在多个项目之间共享容器

JAVA - 在 Linux 上接收 UDP 数据包时出现问题

docker - 特使与gRPC路由

mongodb - 与 vpc 对等的 atlas 集群未将 docker swarm 上的服务列入白名单

python - 导入错误 : No module named 'deployment'

ubuntu - 尝试安装 Google Cloud SDK 时出现格式错误的输入错误

go - 使用 Envoy 进行 GRPC 负载均衡