問題タブ [real-ip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1608 参照

php - nginxの実際のクライアントIPが機能しない

nginx、php7、および http_realip_module がインストールされています。

2 つの Web サイトにサービスを提供する 1 つのサーバーがあります。

サイト 1 nginx 構成:

これにより、$_SERVER['REMOTE_ADDR"] をダンプするときにクライアントの IP アドレスが入力されます。

サイト 1 は、単純な API のように curl を使用してサイト 2 に接続します。

サイト 2 nginx 構成:

サイト 2 のスクリプトが呼び出されることがわかりますが、PHP で $_SERVER['REMOTE_ADDR'] 変数を確認すると、クライアントの IP アドレスではなく、サーバーの IP アドレスが表示されます。ここでnginxのセットアップは正しいですか?

どうすればこれを正しく動作させることができますか?

0 投票する
3 に答える
2999 参照

nginx - nginx 許可|拒否 $realip_remote_addr

nginx を使用すると、範囲と IP を許可および拒否できます ( https://www.nginx.com/resources/admin-guide/restricting-access/ )。realip モジュールを使用すると、使用する ip を cloudflare の後で実際の ip に変更できます。( http://nginx.org/en/docs/http/ngx_http_realip_module.html )

ここで、Cloudflare または localhost 以外の IP をブラックリストに登録したいと思います。これはかなり難しいことがわかりました.real_ipモジュールのセットアップを設定する前にそれを入れてみましたが、葉巻はありません.

これはまったく可能ですか?ユーザーが cloudflare を使用していない場合、これは欠陥のように思えます。これにより、特定の vhost に対するより多くの悪用が可能になります。

$realip_remote_addr 変数がありますが、通常の $remote_addr の代わりに許可/拒否を使用する方法を見つけることはできません。

編集:ファイアウォールがこれを支援できることに注意を向けました。残念ながら、これは本当にいくつかの仮想ホストにしか必要ありません。

0 投票する
2 に答える
479 参照

ios - swift または ObjC で IPv4 と IPv6 に対して個別の DNS 要求を行う方法はありますか

私がこれまでに持っているものは次のとおりです。

}

ただし、コールバックは呼び出されません。コンソールに次のエラーが表示されます: TIC Read Status [9:0x0]: 1:57 ObjectiveC is not my power but I had to mess with it. どんな助けでも大歓迎です。

0 投票する
2 に答える
1218 参照

nginx - proxy_protocol を使用する場合、nginx で CIDR 範囲をブロックするより良い方法は何ですか?

AWS の ELB の背後にある nginx インスタンスの小さなプールがあります。この ELB はインターネットに接続されており、HTTP ではなく PROXY プロトコルを使用します。

これが私の関連セクションですmain.vhost

denyのディレクティブを使用ngx_http_access_moduleして、一連の CIDR ブロックへのアクセスを防止しようとしています。

EG:.conf起動時にnginxによってロードされたファイル内:

dirに/etc/nginx/ip_block/は少なくとも1つのファイルがあります:

ただし、nginx のdenyディレクティブは変数でのみ機能し、$remote_addr変数では機能しないよう$proxy_protocol_addrです。denyこれは事実上、ディレクティブと の両方を一緒に使用できないことを意味しproxy_protocolます。

モジュールを使用して の値をngx_stream_realip_module値に調整できるように見えますが、私が利用できる nginx のビルドは現在、ビルド フラグで構成されていません。現在実行中ですが、ビルドでフラグが導入されたようです( https://github.com/nginx/nginx/commit/fe2774a9d689fa1bf201dd0e89449e3d9e4ad926 )$remote_addr$proxy_protocol_addr--with-stream_realip_module1.10.3with-stream_realip_module1.11.4

オプション 1:必要な機能をコンパイルして、ソースから nginx のバージョンをビルドします。

ディレクティブのドキュメントを見ていると、次のdenyメモが見つかりました。

出典: https://nginx.org/en/docs/http/ngx_http_access_module.html

これは、現在持っているnginxのバイナリで動作する可能性のあるCIDR範囲をブロックするという私の目標を達成するためのより良い方法があるかどうか疑問に思います.

私はこのようなことを試すことができます:

ファイルconf/some_cidr_ranges_to_block.confは次のようになります。

そして、サーバーディレクティブで次のようなことができます:

オプション 2:geoディレクティブとカスタム IP 範囲 -> 「国コード」データベースを使用してトラフィックをブロックしてみます。

私の質問: