TCP接続がどのインターフェイスで行われるかを知る方法は?


10

複数のイーサネットインターフェイスを持つサーバーがあります。発信TCP接続がどのインターフェイスを通過するかを知る最も簡単な方法は何ですか?「netstat -rn」の結果はギリシャ語ですので、「ローカルルーティングテーブルを確認してください」という回答であれば、詳細かつ明確にしてください。

回答:


13

私にとっては、netstat -rnまたはroute -n

cyrex@cyrex:~$ netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.48.0.1      0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.48.0.0      0.0.0.0         255.255.224.0   U         0 0          0 eth0

または netstat -r

cyrex@cyrex:~$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192-48-0-1.dyn. 0.0.0.0         UG        0 0          0 eth0
link-local      *               255.255.0.0     U         0 0          0 eth0
192.48.0.0      *               255.255.224.0   U         0 0          0 eth0

どちらの場合も、最後にインターフェースの名前が表示されます。この場合はeth0です。

このコマンドによって提供される情報は次のとおりです(ソースはここにあります):

宛先 -宛先ネットワークまたは宛先ホスト。

ゲートウェイ -ゲートウェイアドレス、または*何も設定されていない場合。

Genmask-デスティネーションネットのネットマスク。

 255.255.255.255 for the host destination.
 0.0.0.0 for the default route.  

フラグ -可能なフラグは次のとおりです。

 U (route is up)  
 H (target is a host)  
 G (using gateway)  
 R (reinstate route for dynamic routing)  
 D (dynamically installed by daemon or redirect)  
 M (modified from routing daemon or redirect)  
 A (installed by addrconf)  
 C (cache entry)  
 ! (reject route)  

MSS-このルート上のTCP接続のデフォルトの最大セグメントサイズ。

ウィンドウ -このルート上のTCP接続のデフォルトウィンドウサイズ。

irtt-初期RTT(往復時間)。カーネルはこれを使用して、(おそらく遅い)応答を待たずに、最良のTCPプロトコルパラメータを推測します。

Iface-このルートのパケットが送信されるインターフェイス。

その他のフィールドは次のとおりです。

メトリック -ターゲットまでの距離(通常はホップでカウントされます)。最近のカーネルでは使用されていませんが、ルーティングデーモンで必要になる場合があります。

Ref-このルートへの参照の数。(Linuxカーネルでは使用されません。)

使用 -ルートのルックアップ数。-Fおよび-Cの使用に応じて、これはルートキャッシュミス(-F)またはヒット(-C)になります。

HH(キャッシュのみ)-キャッシュされたルートのハードウェアヘッダーキャッシュを参照するARPエントリとキャッシュされたルートの数。キャッシュされたルート(loなど)のインターフェースにハードウェアアドレスが必要ない場合、これは-1になります。

Arp(キャッシュのみ)-キャッシュされたルートのハードウェアアドレスが最新かどうか。

さて、目の前の質問です。私が今覚えている最も簡単な方法(いつものように、同じことを行う方法はいくつかあります)はを使用することiptrafです。インストールするだけです:

sudo apt-get install iptraf

ルート権限で実行します。 sudo iptraf

メニューでiptraf選択したIPトラフィックモニタして、選択したすべてのインターフェイスを。これにより、すべてのTCP接続と、それらが関連付けられているインターフェイスが表示されます。それは監視目的に適した端末ベースです。


いい答えルイス。次のコマンドも使用できますroute
Panther

1
見回してどこに行くかを確認するのでなく、このルーティングテーブルの情報があれば、正解は「特定のアドレスのトラフィックどこに行くかを確認できます」と言う必要があります。
psusi 2013年

8

ipコマンドを使用して、カーネルルーティングテーブルを照会できます。そのroute getサブコマンドは、カーネルがパケットを宛先アドレスにルーティングする方法を正確に伝えます。

 $ ip route get to 10.0.2.2
 10.0.2.2 dev eth0  src 10.0.2.15

一方

$ ip route get to 192.168.3.5
192.168.3.5 via 10.0.2.2 dev eth0  src 10.0.2.15

そして

$ ip route get to 127.0.1.1
local 127.0.1.1 dev lo  src 127.0.0.1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.