【发布时间】:2015-03-30 00:51:09
【问题描述】:
出于测试目的,我需要使用伪造的 IP 地址发出请求。最简单的方法是什么?
【问题讨论】:
出于测试目的,我需要使用伪造的 IP 地址发出请求。最简单的方法是什么?
【问题讨论】:
出于我自己的目的,通过以下方式更改 HTTP 标头就足够了:
curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
【讨论】:
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 跟踪执行请求的跃点,用逗号分隔地址.
你不能。
一般来说,欺骗 TCP 的 IP 地址非常困难。除非您可以控制非常靠近您的目标或您正在欺骗的 IP 的路由器,否则认为这是不可能的。
回复数据包需要返回给您的路径才能完成three-way handshake。最可靠的方法是控制目标和欺骗 IP 地址之间最常见路径中的路由器:这将让您捕获目标和欺骗地址之间的数据包并将它们转发给您。
您也可以尝试注入bogus BGP route 广告,但这样做无疑会引起注意,并且当您的同行完全抛弃您时,您会付出高昂的代价。
【讨论】:
Can I make libcurl fake or hide my real IP address?
没有。 libcurl 在更高级别上运行。此外,伪造IP地址 将意味着发送带有虚构源地址的 IP 数据包,然后 你通常会在接收发回的数据包时遇到问题,因为他们 然后不会被路由给你!
如果您使用代理访问远程站点,这些站点将看不到您的 本地 IP 地址,而不是代理的地址。
另请注意,在许多网络上,NAT 或其他 IP 转换技术 用于使您在本地查看和使用不同的 IP 地址 比远程服务器看到你的来源。
【讨论】: