外部IPの代わりに定義されたローカルIPを使用する方法

外部IPの代わりに定義されたローカルIPを使用する方法

Gentoo Linuxサーバーがあります。サーバーは内部と外部の2つのネットワークに接続されています。

Internal network ip: 192.168.1.200
External network ip: 192.168.0.2

サーバーから独自に要求を試みると、外部ネットワークIPを使用します。 Wgetを使用してnginxに接続すると、次のようなロギングが提供されます。

server ~ # tail -n 1 /var/log/nginx/error_log
192.168.0.2 - - [27/Aug/2014:19:04:42 +0300] "GET / HTTP/1.1" 200 5 "-" "Wget/1.14 (linux-gnu)"

それにもかかわらず、私は192.168.1.200に直接接続しました。

server ~ # wget http://192.168.1.200/

ルーティングテーブル(メトリックは外部ネットワークでは高いが無視されるようです): IPパスの表示

server ~ # ip route
192.168.0.0/30 dev wan  scope link  metric 20 
192.168.1.0/24 dev lan  scope link  metric 10 

IPルート取得:

server ~ # ip route get 192.168.1.200
local 192.168.1.200 dev lo  src 192.168.1.200 
    cache <local> 

192.168.0.2の代わりに192.168.1.200を使用してこのシステムを自分で接続するにはどうすればよいですか?

ベストアンサー1

実行しているすべてのプログラムでこの問題が発生した場合は、サーバーファイアウォールの規則を確認する必要があります。NAT外部ターゲットにのみ使用されていることを確認してください。広範なルールがある場合、ルーティングテーブルは意味がありませんNAT

ファイアウォールルールを変更したら、オプションを使用して使用するインターフェイスを選択wgetできます。--bind-address

wget --bind-address=192.168.1.200 http://192.168.1.200/

~からwgetドキュメント:

'--バインディングアドレス=アドレス'

クライアントTCP / IP接続を確立すると、ローカルコンピュータのADDRESSにバインドします。 ADDRESS はホスト名または IP アドレスで指定できます。このオプションは、コンピュータが複数のIPにバインドされている場合に便利です。

あなたはそれを使用することができます.wgetrcファイルを永久に作成できます。

おすすめ記事