问题标签 [x-forwarded-for]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - 带有 x-forwarded-for 的 Apache proxyPass 不起作用
我对 Apache X-Forwarded-For 有疑问。
这是我有一个服务器将请求转发到 Apache 服务器
的场景 。
并且 Apache 服务器有多个代理转发。
我现在面临的问题是,即使我能够使用 X-Forwarded-For 标头在 apache 日志中打印客户端 IP 地址,但无法将相同的 X-Forwarded-For 标头转发到 Proxypass 请求。
我已经在 httpd.conf 文件中包含以下行。RemoteIPHeader X-Forwarded-For
但是,使用 proxypass 将请求转发到的应用程序始终将远程 IP 地址读取为 0:0:0:0:0:0:0:1 并且 X-FORWARDED-HEADER 为空。
我在做什么错以及如何解决这个问题。
kubernetes - Kong :: X-FORWARDED-FOR 中缺少客户端 IP
在 Kubernetes 中使用 Kong 入口控制器 (v2.1)。在数字海洋中运行。
问题是 HTTPS 请求的 X-FORWARDED-FOR 标头中缺少客户端 IP,但在 HTTP 请求中存在。我还需要能够看到 HTTPS 请求上的 IP。
在 HTTP 请求的 X-FORWARDED-FOR 标头中收到的值为“<the-client-ip>, <the-k8s-node-ip>”。然而,在 HTTPS 请求的情况下,该值为“<the-k8s-node-ip>”。客户端 IP 丢失。
Kong使用帮助安装。配置中最相关的部分是:
acl - Varnish:多个 IP 与使用波浪号的 ACL 进行比较
如果多个 IP 在 X-Forward-For 标头中,并且使用波浪号运算符与 ACL 进行比较,Varnish 会发生什么?
虚拟示例:
该请求具有以下 HTTP 标头:
Varnish 配置如下所示:
执行哪个代码块?
此外,IP 的顺序在 X-Forward-For 标头中是否重要?
如果有 2 个 X-Forward-For 标头,每个标头都有两个 IP 之一,它会改变吗?
kubernetes - 在带有 ClusterIP 服务和 kube-keepalive-vip 的裸机 Kubernetes 上没有使用 Traefik 2 的 X-Forwarded-For
我的设置是一个运行 Kubernetes 1.17 的裸机集群。我使用 Traefik 2(.3.2) 作为反向代理,并为我使用kube-keepalive-vip
[1] 的机器进行故障转移。
因此,我的 traefik 服务是默认类型的集群 IP,并引用了该服务提供的外部 IP kube-keepalive-vip
:
这按原样工作。现在我想限制我的一些应用程序只能从我的网络中的特定子网访问。由于我的请求由kube-keepalive-vip
and处理,因此我的请求中kube-proxy
的客户端 IP 不再是实际客户端之一。但据我所知,文档是在标题kube-proxy
中设置真实的 ip 。X-Forwarded-For
所以我的中间件看起来像这样:
现在,对该中间件附加到的入口的每个请求都被拒绝。我检查了 Traefik 日志,发现请求包含一些X-Forwarded-*
标头,但没有X-Forwarded-For
:(
有没有人有这方面的经验,可以指出我的错误?我的 Kubernetes 设置可能有问题吗?kube-keepalive-vip
或者我的配置中缺少什么?
提前致谢!
amazon-web-services - 双重代理请求 - 获取原始 IP
我有以下设置:
用户发出请求,该请求将发送到 cloudflare,该请求充当请求的代理,并将其重定向到 aws 网络负载均衡器,最终将其路由到其目的地。
在那里我用节点服务器读取它(实际上是用socket.io制作的套接字),并且需要从中获取原始IP。
我试着这样读:
让 ip = socket.request.headers['CF-Connecting-IP'] || socket.request.headers['x-forwarded-for'] || socket.request.connection.remoteAddress
cf 和 aws lb 都设置了 x-forwarded-for。
问题是我得到的是cf ip,而不是最终用户ip。
如果我删除 cf 代理一切都很好。
在我看来, aws lb 正在覆盖标题。知道如何使 aws lb 不被覆盖,而是添加到列表中,或者什么都不做?
oracle-cloud-infrastructure - 在 oracle 云私有负载均衡器上启用 X-Forwarded-for
流量在防火墙处被接受,然后转发到 Oracle 云上的私有负载均衡器,再转发到内部 Web 服务器。问题是我们服务器上的客户端 IP 地址被视为负载平衡器 IP 地址。有没有办法添加 X-Forwarded-for 或 X-real-IP 以查看内部 Web 服务器上的实际 IP 地址。
cloudflare - cloudflare cf-connecting-ip 会影响 http 标头吗?
在使用 cloudflare 服务之前,我有几个问题。
cf-connecting-ip
Web 服务器使用等x-forwarded-for
和 Web 不使用这些东西之间的 http 请求标头有什么区别吗?客户端可以/如何知道 Web 服务器使用
cf-connecting-ip
等x-forwarded-for
?
c# - 如何在 .net-core 而不是负载均衡器中获取客户端 IP 地址?(使用 X-Forwarded-For)
我只是想在 POST 之后在 .net-core 控制器中获取客户端 IP 地址。我们在客户端和服务器之间有一个负载平衡器。
我的启动中的设置:
并配置:
然后我尝试调用下面的代码,但它返回负载均衡器 IP 地址,而不是客户端 IP:
var clientIpAddress = HttpContext.Connection.RemoteIpAddress.ToString();
我已经尝试了可以在此网站和文档上搜索的所有内容,但似乎没有任何效果。我也尝试过使用HttpContext.Request.Headers["X-Forwarded-For"]
which 返回 null / empty。
我们的 OPS 团队说 IP 没有被平衡器修改,并且应该在 x-Forwarded-For 标头的值中。为什么负载均衡器发回它的 IP 而不是客户端 IP 地址?
azure-functions - Azure Function X-FORWARDED-FOR 标头格式 IPV6?
X-FORWARDED-FOR
当客户端从 IPV6 端点发出请求时,HTTP 触发的 Azure 函数的标头格式是什么?
IPV4标头遇到...
111.222.333.444:<port#>
我在想象 IPV6 标头会遇到...
[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443
...但我需要确定(并且没有简单的测试方法)
amazon-web-services - AWS ELB Apache 获取客户端 IP,避免 X-Forwarded-For 欺骗
从 apache 文档(https://httpd.apace.org/docs/2.4/mod/mod_remoteip.html)我们在我们的服务器上实现了以下任务:
获取客户端的 IP 而不是 ELB 的 IP。但是,我们没有注意到 ELB 还将所有其他X-Forwarded-For
值附加到该字符串的左侧。因此,这不是获取客户端 IP 的安全方式。
我们已经使用LogFormat
with\"%{X-Forwarded-For}i\"
来验证传入的值是否符合文档记录。
如果192.168.0.0
标头被传递并且10.0.0.0
是客户端的请求机器,将会发生什么。没有标头的标准请求是:
有没有办法提取最右边的IP?我在想类似的东西,
但无法在 apache 中找到一个函数来配置它。我可以在 PHP 中执行此操作,但是我的日志中都会记录错误的 IP。
我试过了:
但这没有影响。
更新:
Apache 配置运行:
我目前收到:
或者
我需要73.149.97.219
在这两种情况下捕获。