为了测试目的,我需要使用伪造的IP地址发出请求。最简单的方法是什么?
为了满足我的需求,仅通过以下方式更改HTTP标头就足够了:
curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
不行。libcurl在更高的层次上操作。此外,伪造IP地址意味着发送带有虚假源地址的IP数据包,然后您通常会遇到接收回送的数据包的问题,因为它们将无法路由到您!
如果您使用代理访问远程站点,则这些站点将看不到您的本地IP地址,而是看到代理的地址。
还要注意,在许多网络上使用NAT或其他IP混淆技术,使您在本地看到和使用不同的IP地址,而远程服务器将看到您从哪里来。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
由于嵌入变量$proxy_add...
提供的内容完美地工作,但是当使用$remote_addr
时,根据我的实验结果,情况并非如此。值得一提的是,NGINX支持的嵌入变量列表及其各自的含义:nginx.org/en/docs/varindex.html 此外,X-Forwarded-For
通过逗号分隔地址跟踪发出请求的跳数。 - ivanleoncz