docker - 在 Docker 中使用 Traefik 的基本设置没有看到 X-Forwarded-For 中的真实 IP?
问题描述
爱上了 Traefik 在 youtube 上的演示,所以我一直在尝试设置它。我的 docker 服务器在 192.168.0.23 上。
即使从我的局域网(192.168.0.144)查询另一台主机时,我总是在 X-Forwarded-For ...
curl -H Host:whoami.docker.localhost http://192.168.0.23:8880
节目
Hostname: 20f76fbc038e
IP: 127.0.0.1
IP: 172.22.0.2
GET / HTTP/1.1
Host: whoami.docker.localhost
User-Agent: curl/7.51.0
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 172.22.0.1
X-Forwarded-Host: whoami.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: c40ba22259b6
X-Real-Ip: 172.22.0.1
通过公共 IP 从另一个网络调用时会发生同样的事情,仍然看到X-Forwarded-For: 172.22.0.1
我的 docker-compose 是基本示例之一...
version: '3'
services:
reverse-proxy:
image: traefik
command: --api --docker
ports:
- "8880:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
whoami:
image: containous/whoami
labels:
- "traefik.frontend.rule=Host:whoami.docker.localhost"
- "traefik.frontend.passHostHeader=true"
我错过了什么吗?我希望至少在 X-Forwarded-For 列表中获得发起请求的主机的 IP,正如我在网络上看到的所有示例一样......
奇怪的是,在转发字段中显示的 IP 是 docker 网络中服务器的 IP,当 curl 是从服务器本身执行时才有意义,而不是从同一网络中的另一台主机或通过互联网执行...
解决方案
推荐阅读
- python - 由于合并了 plotly.express,执行使用 tkinter 和 py2app 创建的 Mac 应用程序出现问题
- swift - 如何做一个 SwiftUI 的“一步一步”动画?
- laravel - modal 中的 Laravel 帖子尝试使用 GET 而不是 POST
- c# - 来自 C# 中的预览平移的数据
- reactjs - 反应路由器中组件的不同导航栏
- google-cloud-platform - 将常规计算引擎 VM 实例转换为 AI Platform Notebook 实例
- ios - 当另一个维度被夹住时,SwiftUI View 如何在一个维度上调整其理想大小?
- pandas - 用两个不同的值填充 nan 值
- r - 如何将一个向量拆分为具有R中模式的多个向量
- swiftui - 如何在 SwiftUI 中创建响应式网格布局?