无法通过服务器 IP 访问 Envoy Admin 服务器
Unable to access Envoy Admin server through server IP
我目前 运行 Envoy 在 Docker 容器中,但是在部署到我的服务器时无法访问 Envoy 管理服务器,即 运行 Ubuntu 20.10.
当我 运行 在我的个人机器上本地容器时 运行 Windows 11,我能够毫无问题地访问它。
这是我的特使配置:
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address:
address: 0.0.0.0
port_value: 9901
我的Docker文件:
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 能够绑定到端口,如下图所示。
我试图通过我的浏览器访问管理门户,方法是尝试访问 123.123.123.123:9901
(其中 123.123.123.123
是一个示例 public IP)。我在端口 80
上提供了一些东西,我可以使用服务器的 public IP 访问它,所以看起来问题出在我的 Envoy/Docker 配置上。我做错了什么?
原来这是我的疏忽。我使用 Google Compute Engine 作为我的服务器 VM,当我最初查看防火墙设置时,我看到了一系列已启用的端口,但没有意识到它们只能由vm 本身通过本地主机。我以为端口 publicly 暴露了,但我错了。我意识到是这种情况,因为我能够通过 curl localhost:9901
curl
管理员 url,但无法访问 server-ip:9901
。在我的 VM 的 GCP 防火墙设置上将端口 9901
公开到 public 后,它起作用了,所以这不是服务器配置问题,而是防火墙配置问题。
我目前 运行 Envoy 在 Docker 容器中,但是在部署到我的服务器时无法访问 Envoy 管理服务器,即 运行 Ubuntu 20.10.
当我 运行 在我的个人机器上本地容器时 运行 Windows 11,我能够毫无问题地访问它。
这是我的特使配置:
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address:
address: 0.0.0.0
port_value: 9901
我的Docker文件:
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 能够绑定到端口,如下图所示。
我试图通过我的浏览器访问管理门户,方法是尝试访问 123.123.123.123:9901
(其中 123.123.123.123
是一个示例 public IP)。我在端口 80
上提供了一些东西,我可以使用服务器的 public IP 访问它,所以看起来问题出在我的 Envoy/Docker 配置上。我做错了什么?
原来这是我的疏忽。我使用 Google Compute Engine 作为我的服务器 VM,当我最初查看防火墙设置时,我看到了一系列已启用的端口,但没有意识到它们只能由vm 本身通过本地主机。我以为端口 publicly 暴露了,但我错了。我意识到是这种情况,因为我能够通过 curl localhost:9901
curl
管理员 url,但无法访问 server-ip:9901
。在我的 VM 的 GCP 防火墙设置上将端口 9901
公开到 public 后,它起作用了,所以这不是服务器配置问题,而是防火墙配置问题。