使用PHP的file_get_contents/cURL请求时,第三方网站将看到哪个IP?
问题解答
当你的网站domain.com接入Cloudflare后,Cloudflare只负责处理外部用户访问你网站的请求——也就是用户访问domain.com时,流量会走Cloudflare的IP。但你在自己服务器上用file_get_contents或cURL主动请求example.com时,这个请求是直接从你的服务器(IP:198.162.1.3)发出去的,完全和Cloudflare的转发流程无关。
所以example.com的所有者在日志里看到的是你的服务器IP 198.162.1.3,而不是Cloudflare的IP 122.5.66.3。
简单区分两种场景:
- 外部用户访问你的网站:用户 → Cloudflare IP → 你的服务器IP
- 你的服务器主动请求第三方:你的服务器IP → example.com
如果想让这类出站请求走Cloudflare的IP,你需要额外配置Cloudflare的相关服务(比如Cloudflare Workers、Argo Tunnel)来代理出站流量,但默认情况下,服务器主动发起的HTTP请求不会经过Cloudflare。
内容的提问来源于stack exchange,提问作者Mehul Kumar
相关产品推荐
相关产品推荐

