1

私は本当のIPを取得したいcloudflareとGoogle Cloud Network Load Balancerを使用しています。Google Cloud Load Balancerとcloudflareから実際のIPを取得

私は自分のIPアドレスを確認するには

# Last updated Sat Jul 30 11:17:32 UTC 2016 
set_real_ip_from 103.21.244.0/22; 
set_real_ip_from 103.22.200.0/22; 
set_real_ip_from 103.31.4.0/22; 
set_real_ip_from 104.16.0.0/12; 
set_real_ip_from 108.162.192.0/18; 
set_real_ip_from 131.0.72.0/22; 
set_real_ip_from 141.101.64.0/18; 
set_real_ip_from 162.158.0.0/15; 
set_real_ip_from 172.64.0.0/13; 
set_real_ip_from 173.245.48.0/20; 
set_real_ip_from 188.114.96.0/20; 
set_real_ip_from 190.93.240.0/20; 
set_real_ip_from 197.234.240.0/22; 
set_real_ip_from 198.41.128.0/17; 
set_real_ip_from 199.27.128.0/21; 
set_real_ip_from 2400:cb00::/32; 
set_real_ip_from 2405:8100::/32; 
set_real_ip_from 2405:b500::/32; 
set_real_ip_from 2606:4700::/32; 
set_real_ip_from 2803:f800::/32; 
set_real_ip_from 130.211.0.0/22; #Google IP 
real_ip_header X-Forwarded-For; #CF-Connecting-IP; 

をnginx.confするこのソースを入れている、私はシンプルなレールソースを作りました。

return render :json => {:ip => request.ip, :remote_ip => request.remote_ip, :x_forwarded_for => request.env['HTTP_X_FORWARDED_FOR'], :client_ip => request.env['HTTP_CLIENT_IP'], :cf => request.env['CF-Connecting-IP']} 

{"ip":"130.211.0.145","remote_ip":"130.211.0.145","x_forwarded_for":"(REAL IP), 141.101.85.141, 130.211.16.204, 130.211.0.145","client_ip":null,"cf":null} 

しかし、ipは私のIPではなく、Google Cloud LoadBalancerのものです。この問題を解決するにはどうすればよいですか?私は6時間以上の時間をかけました。

ありがとうございました。

+0

複数のプロキシを使用する場合は、 '' real_ip_recursive on '' 'を設定する必要があります。 – ryush00

答えて

0

CloudFlare Real IPヘッダーはCF-Connecting-IPで使用できますが、CloudFlareはX-Forwarded-Forヘッダーを発行しますが、そのヘッダーがすぐ上書きされるように見えます。これを軽減するために、このヘッダを代わりに使用してください。それを利用するために

、あなたのnginxの構成が含まれていることを確認してください:

real_ip_header CF-Connecting-IP; 

その後、あなたのアプリケーションは、アプリケーション自体にREMOTE_ADDR環境変数からリモートアドレスを得ることができます。

+0

ありがとうございます。ヘッダーを確認しました。ロードバランサはCF-Connecting-IPを削除します。 '' X-Forwarded-For''のままです。 – ryush00

+1

X-Forwarded-Forは、その場合カンマで区切られたリストを返さなければなりません。すべてのGoogle CloudとCloudFlare IPを信頼済みリストに追加し、リスト内の最後のIPを引き出す必要があります。 – mjsa

関連する問題