IPinfoBox

Cloudflare ve load balancer arkasında gerçek ziyaretçi IP'si

Proxy arkasındaki bir sunucunun ziyaretçinin gerçek IP'sini Nginx, Node.js ve PHP ile güvenli şekilde nasıl alacağı.

IP neden farklı görünür

Sitenizin önünde Cloudflare, bir yük dengeleyici veya Nginx olduğunda sunucunuzun aldığı bağlantılar o proxy'den gelir; bu yüzden ziyaretçinin değil proxy'nin IP'sini görürsünüz. Ziyaretçi IP'si, proxy'nin eklediği bir başlıkta yer alır.

Cloudflare

Cloudflare, tek bir ziyaretçi IP'sini CF-Connecting-IP başlığına koyar. İsteğin gerçekten Cloudflare'den geldiğinden emin olmak için bu başlığa yalnızca bağlantı IP'si Cloudflare'in yayımladığı IP aralıklarındaysa (cloudflare.com/ips) güvenin.

X-Forwarded-For

Bir istek birden fazla proxy'den geçtiğinde X-Forwarded-For, bunların IP'lerini virgülle ayırarak toplar. İlk değerin ziyaretçi IP'si olduğu kabul edilir ancak ziyaretçi bunu kendisi yazabilir; bu yüzden kendi proxy'nizin en son eklediği değerden geriye doğru sayın ve güvenebileceğiniz bir konumdaki değeri kullanın.

Nginx

real_ip modülüyle proxy aralıklarınızı set_real_ip_from içinde listeleyin ve real_ip_header değerini CF-Connecting-IP veya X-Forwarded-For olarak ayarlayın. Bundan sonra loglarınız ve uygulamanız ziyaretçi IP'sini alır.

Node.js ve PHP

Express'te app.set("trust proxy", proxy sayısı) ayarını yapın; böylece req.ip ziyaretçi IP'si olur. PHP'de $_SERVER["HTTP_CF_CONNECTING_IP"] değerini yalnızca $_SERVER["REMOTE_ADDR"] kendi proxy'nizse kullanın.

Kontrol edin

Ayarladıktan sonra sitenizin kaydettiği IP, IPinfoBox ana sayfasında görünen IP ile aynıysa çalışıyor demektir.

IP'nizi ve konumunuzu şimdi kontrol edin.

IP'mi kontrol et