GNU / Linuxでnetstatを使用する方法

Netstatは、TCP接続とUDP接続のすべて、および現在接続をリッスンしているUNIXソケット接続だけでなく、現在接続されているUNIXソケット接続も一覧表示する非常に強力なユーティリティです。多くのホームユーザーはこれについて必ずしも心配する必要はないかもしれませんが、オンラインゲーマー、または将来的にあらゆる種類のサーバーをホストするつもりのある人は、いつかポートを処理する必要があります。

Netstatは、セキュリティとプライバシーにも役立ちます。たとえば、どのプログラムがインターネットと「通信」するかを確認できます。

netstatの使用は、非常に単純なプロセスになる場合もあれば、使用方法によっては非常に複雑で重いものになる場合もあります。今日は、Netstatのより一般的な使用方法をいくつか見ていきます。

約束どおり(私の記事では ' Linuxでネットワーク情報を見つける方法 ? ')netstatコマンドを紹介します。このコマンドは、ルーティングテーブル、ネットワーク接続、インターフェース統計、マスカレード接続、マルチキャストメンバーシップなどのネットワーク情報を検出するための非常に便利なツールです。しかし、他の「ディスカバリー」ツール(ifconfigなど)のように使用するのはそれほど簡単ではありません。 netstatでは、何を探しているのか、どのように見つけるのかを知る必要があります。この記事は、それを理解するのに役立ちます。

インストール?

幸い、あなたのディストリビューションには netstat コマンドがプリインストールされています。これを確認するには、ターミナルウィンドウを開き(とにかくnetstatを使用します)、次のコマンドを発行します。 どのnetstat 。このコマンドは次のようなものを返します / bin / netstat 。これにより、ツールがインストールされていること、および実行可能ファイルがどこにあるかがわかります。

Netstatの基本

基本的なnetstatコマンドは次のようになります。

netstat引数オプション

ARGUMENTは情報が必要なアドレスファミリのタイプであり、OPTIONSは返される情報のタイプを指定するオプションのオプションです。

netstatはこのようなさまざまなオプションを提供しているため、最初に、より有用なオプションのいくつかをリストするのが最善です。

  • :すべてのソケットとルーティングテーブルエントリの状態を表示します。
  • c :情報を継続的に表示します。
  • d :DHCPを使用するすべてのインターフェースの状態を表示します。
  • です :詳細情報を表示します。
  • g :IPv4とIPv6の両方のマルチキャストグループメンバーシップ情報を表示します。
  • :すべてのネットワークインターフェイスの表を表示します。
  • l :統計を定義されたインターフェースに制限します。
  • M :マルチキャストルーティングテーブルを表示します。
  • :デフォルトの記号ではなく、数値としてネットワークアドレスを表示します。
  • p :アドレス解決テーブルを表示します。
  • P :統計を定義されたプロトコルに制限します。
  • r :すべてのルーティングテーブルを表示します。
  • t :TCP接続を表示します。
  • あなた :UDP接続を表示します。
  • v :出力に冗長モードを使用します。

それでは、これらを一緒に使用する方法を見てみましょう。

netstat

単独で(オプションなし)このコマンドは、現在接続しているホストの一般的な統計情報を出力します。

netstat -an

このコマンドは、送信元および宛先のアドレスとポートを含む、ホストへのすべての接続を表示し、それらを数値として表示します。

netstat -rn

このコマンドは、ホストのルーティングテーブルを数値形式で表示します。

netstat -r

このコマンドは、ホストのルーティングテーブルを表示します。

netstat -natp

このコマンドは、アクティブなTCP接続を数値形式で表示します。

netstat -t --listening

これにより、ホストがリッスンしているすべてのTCPポートが表示されます。

netstat-統計

このコマンドは、ホストのインターフェースに関するさまざまな統計を表示します。このコマンドは多くの統計を表示することに注意してください。

ご覧のとおり、このコマンドはかなりの情報を表示します。さらに、このコマンドをより簡単に表示するには、このコマンドをlessコマンドにパイプする必要がある場合があります。その完全なコマンドは、netstat --statistics |のようになります。もっと少なく。このように使用すると、矢印キーを使用して出力を上下にスクロールできます。

Netstatの使用のヒント

netstatを使用する最も基本的で一般的な方法の1つは、待機しているポートを確認することです。

  • netstat -l

これは、新しくインストールしたAntergosシステムでこのようなものを与えます

netstat -l

または、検索の対象をもう少し絞る場合は、別のオプションを追加して、さまざまな種類の接続に合わせて具体的に並べ替えることができます

  • TCPのnetstat -lt#
  • UDPのnetstat -lu#
  • netstat -lx#Unixの場合

または、完全に反対側の端に行き、すべての接続をリストすることができます

  • netstat -a

必要に応じて、覚えておくと便利なもう1つのオプションは「n」オプションを使用することです。たとえばnetstat -nまたはnetstat -ltnを使用すると、すべてのホスト名が解決されなくなり、次の例のようにIPアドレスのみが表示されます。

netstat-ltn

ご覧のように、名前のlocalhostは「n」オプションを使用した後に数値に解決されました

netstatを使用するもう1つの方法は、netstat -ieです。インターフェイスの「i」と「拡張」の「e」は、より人間が読みやすい出力を提供するのに役立ちます。

netstat -ie#これにより、ネットワークインターフェイスのリストと各デバイスに関する情報が表示されます。

netstat ie

Netstatの高度なヒント

私たちがやりたいことは、tcp接続をリッスンしている特定のアプリケーションの出力を提供するようにnetstatに指示することです。これを行うには、次のコマンドを発行します。

  • netstat --tcp --listening --programs

このコマンドの出力は次のようになります。

Proto Recv-Q Send-Qローカルアドレス外部アドレス統計PID /プログラム
tcp 0 0 *:ssh *:* LISTEN 25469 / sshd
tcp 0 0 *:httpd *:* LISTEN 26754 / httpd
tcp 0 0 localhost:ipp *:* LISTEN-

これで、実際に役立つ情報を確認できます。上記の出力では、sshdとhttpdの両方が着信接続をリッスンしていることがわかります。上記は、出力がどのように見えるかのほんの一部です。このコマンドについて非常に便利なのは、リッスンしてはならない着信接続をリッスンするコマンドまたはローカルアドレスがあるかどうかを示すことです。リッスンしてはいけないアプリケーションを見つけたら、安全のためにそれを殺してください。

ルート

Netstatは、次のコマンドを使用して、マシンのカーネルルーティングテーブルをすばやく出力できます。

netstat -r

このコマンドの出力は次のようになります。

カーネルIPルーティングテーブル
宛先ゲートウェイGenmaskフラグMSSウィンドウirtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
デフォルト192.168.1.1 0.0.0.0 UG 0 0 0 eth0

統計学

これは、netstatツールの便利な機能の1つです。これにより、各プロトコルの統計情報を正確に見つけることができます。基本的なコマンド構造は次のとおりです。

netstat-統計

これにより、必要以上の情報が得られます。たとえば、TCPプロトコルの統計情報のみを表示したいとします。このために、次のコマンドを発行できます。

netstat -t-統計

上記のコマンドの出力には、次のような情報が含まれます。

TCP:
4343のアクティブな接続の開口部
8つのパッシブ接続開口部
接続失敗5回
178個の接続リセットを受信しました
6つの接続が確立されました
受信した59075セグメント
60033セグメントが送信
76セグメントを再送
受信した不良セグメントは0です。
303リセットが送信されました

または、次のコマンドを使用してUDPに関する情報を取得することもできます。

netstat -u --statistics

これにより、UDPプロトコルに対して同様の出力が得られます。

クリエイティブに

サーバーに接続されているすべての一意のIPアドレスを表示したい場合はどうでしょうか。次のように、netstat(および他のいくつかのツールの助け)を使用してそれを行うことができます。

netstat -nat | awk '{print $ 5}' |カット-d:-f1 | sed -e '/ ^ $ / d | uniq

上記のコマンドの出力は、マシン/サーバーが取得しているトラフィックの量によって異なります。ただし、サーバーに接続しようとするすべての一意のIPアドレスが含まれます。

サーバーがDOS攻撃を受けているかどうかを確認するのはどうですか?これは、次のようにnetstatで実行できます。
netstat -anp | grep 'tcp | udp' | awk '{print $ 5}' |カット-d:-f1 |並べ替え| uniq -c |ソート-n

上記のコマンドは、サーバーへの最大量の接続を要求するIPアドレスをリストします。想定よりもはるかに高い数値が表示された場合は、サービス拒否攻撃を受けている可能性が高いです。

最終的な考え

Netstatは、突然必要になるまで、本当に必要だとは決して思わないツールの1つです。少なくとも基本的なレベルで必要が生じた場合の使用方法を知っておくことは常に良いことです。 netstatコマンドとそのオプションの使用方法の詳細については、次のように入力してマニュアルページを確認してください。 男netstat

では、あなた: ネットワーク情報を確認するために使用するユーティリティは何ですか。なぜですか。コメントで教えてください!

関連記事