问题标签 [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.

0 投票
0 回答
330 浏览

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 为空。

我在做什么错以及如何解决这个问题。

0 投票
1 回答
953 浏览

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使用帮助安装。配置中最相关的部分是:

0 投票
1 回答
181 浏览

acl - Varnish:多个 IP 与使用波浪号的 ACL 进行比较

如果多个 IP 在 X-Forward-For 标头中,并且使用波浪号运算符与 ACL 进行比较,Varnish 会发生什么?

虚拟示例:

该请求具有以下 HTTP 标头:

Varnish 配置如下所示:

执行哪个代码块?

此外,IP 的顺序在 X-Forward-For 标头中是否重要?

如果有 2 个 X-Forward-For 标头,每个标头都有两个 IP 之一,它会改变吗?

0 投票
1 回答
605 浏览

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-vipand处理,因此我的请求中kube-proxy的客户端 IP 不再是实际客户端之一。但据我所知,文档是在标题kube-proxy中设置真实的 ip 。X-Forwarded-For所以我的中间件看起来像这样:

现在,对该中间件附加到的入口的每个请求都被拒绝。我检查了 Traefik 日志,发现请求包含一些X-Forwarded-*标头,但没有X-Forwarded-For:(

有没有人有这方面的经验,可以指出我的错误?我的 Kubernetes 设置可能有问题吗?kube-keepalive-vip或者我的配置中缺少什么?

提前致谢!

[1] https://github.com/aldbf/kube-keepalived-vip

0 投票
0 回答
210 浏览

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 不被覆盖,而是添加到列表中,或者什么都不做?

0 投票
1 回答
369 浏览

oracle-cloud-infrastructure - 在 oracle 云私有负载均衡器上启用 X-Forwarded-for

流量在防火墙处被接受,然后转发到 Oracle 云上的私有负载均衡器,再转发到内部 Web 服务器。问题是我们服务器上的客户端 IP 地址被视为负载平衡器 IP 地址。有没有办法添加 X-Forwarded-for 或 X-real-IP 以查看内部 Web 服务器上的实际 IP 地址。

0 投票
1 回答
5068 浏览

cloudflare - cloudflare cf-connecting-ip 会影响 http 标头吗?

在使用 cloudflare 服务之前,我有几个问题。

  1. cf-connecting-ipWeb 服务器使用等x-forwarded-for和 Web 不使用这些东西之间的 http 请求标头有什么区别吗?

  2. 客户端可以/如何知道 Web 服务器使用cf-connecting-ipx-forwarded-for

0 投票
3 回答
531 浏览

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 地址?

0 投票
1 回答
200 浏览

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

...但我需要确定(并且没有简单的测试方法)

0 投票
2 回答
914 浏览

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 的安全方式。

我们已经使用LogFormatwith\"%{X-Forwarded-For}i\"来验证传入的值是否符合文档记录。

如果192.168.0.0标头被传递并且10.0.0.0是客户端的请求机器,将会发生什么。没有标头的标准请求是:

有没有办法提取最右边的IP?我在想类似的东西,

但无法在 apache 中找到一个函数来配置它。我可以在 PHP 中执行此操作,但是我的日志中都会记录错误的 IP。

我试过了:

但这没有影响。

更新:

Apache 配置运行:

我目前收到:

或者

我需要73.149.97.219在这两种情况下捕获。