はじめに
この実験では、Linux でネットワークプロトコルが有効になっていて、アクティブに使用されているかどうかを確認する方法を学びます。これを達成するために、3 つの異なる方法を探ります。
まず、netstat -s コマンドを使用して、TCP、UDP、ICMP などのさまざまなネットワークプロトコルの詳細な統計情報を表示し、それらのアクティビティを把握します。次に、カーネルのネットワーク情報を公開している /proc/net ディレクトリを調査し、プロトコルの存在と状態を確認します。最後に、netstat の現代的な代替手段である ss -s コマンドを使用して、プロトコルの使用状況と統計情報を調べます。この実験の終わりまでに、あなたの Linux システムでネットワークプロトコルのアクティビティを診断する実践的なスキルを身につけることができます。
netstat -s でプロトコルの統計情報を確認する
このステップでは、netstat コマンドを使用してネットワークプロトコルの統計情報を確認する方法を探ります。netstat は、ネットワーク接続、ルーティングテーブル、インターフェイスの統計情報、マスカレード接続、マルチキャストメンバーシップを表示するコマンドラインユーティリティです。
netstat の -s オプションは、プロトコルごとの統計情報を表示します。これは、システム上のネットワークアクティビティを理解し、潜在的なネットワーク問題を診断するのに非常に役立ちます。
ターミナルが開いていない場合は、開きます。デスクトップの左側にある Xfce Terminal アイコンをクリックすることで、これを行うことができます。
次に、以下のコマンドを入力し、Enter キーを押します。
netstat -s
次のような出力が表示されます(正確な数値とプロトコルは、システムのアクティビティによって異なります)。
Ip:
Forwarding: 1
... (various IP statistics)
Icmp:
... (various ICMP statistics)
IcmpMsg:
... (various ICMP message statistics)
Tcp:
Active connections openings: 123
Passive connection openings: 45
... (various TCP statistics)
Udp:
InDatagrams: 678
OutDatagrams: 901
... (various UDP statistics)
UdpLite:
... (various UDPLite statistics)
この出力は、IP、ICMP、TCP、UDP などのさまざまなネットワークプロトコルの統計情報の概要を提供します。たとえば、Tcp: セクションでは、アクティブおよびパッシブな接続の開設数を確認できます。Udp: の下では、受信および送信されたデータグラムの数を確認できます。
これらの統計情報を理解することで、特定のプロトコルが高トラフィックやエラーを経験しているかどうかを特定するのに役立ちます。
少し時間をかけて出力を見て、どのプロトコルがリストされているか、それぞれにどのような統計情報が提供されているかを確認してください。
Continue をクリックして次のステップに進みます。
/proc/net 内のプロトコルを確認する
前のステップでは、netstat -s を使用してプロトコルの統計情報を確認しました。今度は、これらの情報の一部が Linux ファイルシステムのどこから来ているかを見てみましょう。
Linux は、プロセス情報やシステム設定の詳細を含む /proc という仮想ファイルシステムを提供しています。/proc の中にある /proc/net ディレクトリには、ネットワークスタックに関する情報が格納されています。
ls コマンドを使用して、/proc/net ディレクトリの内容を一覧表示できます。ターミナルに以下のコマンドを入力し、Enter キーを押します。
ls /proc/net
ネットワーク関連のさまざまな情報を表すファイルやディレクトリのリストが表示されます。出力は次のようになります。
arp dev_mcast ip_mr_vif netlink psched tcp6 udp6
dev if_inet6 ip_tables netstat rpc udplite unix
dev_snmp6 ip_mr_cache ipv6_route packet route udplite6
これらのファイルの多くには、ネットワークプロトコルや接続に関する詳細情報が含まれています。例えば:
tcp:アクティブな TCP 接続に関する情報が含まれています。udp:アクティブな UDP 接続に関する情報が含まれています。netstat:netstat -sが表示するのと同様のさまざまなネットワーク統計情報が含まれています。
/proc/net 内の netstat ファイルの内容を表示してみましょう。cat コマンドを使用してファイルの内容を表示できます。
以下のコマンドを入力し、Enter キーを押します。
cat /proc/net/netstat
出力はネットワーク統計情報の生データになります。netstat -s の出力のように人間が読みやすい形式になっていないため、最初は少し圧倒的に感じるかもしれません。
TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned ...
IpExt: InNoRoutes InTruncatedPkts InEZHeadroomOutMcasts InBcastPktsOutBcastPkts InOctets OutOctets ...
このファイルには、netstat -s などのツールが処理して整形する基となるデータが含まれています。/proc/net 内のファイルを調べることは、高度なネットワークトラブルシューティングやカーネルのネットワーク状態の理解に役立ちます。
現時点では、これらのファイルの存在と内容を確認するだけで、ネットワーク統計情報が /proc ファイルシステムを通じて公開されていることを理解するのに十分です。
Continue をクリックして次のステップに進みます。
ss -s でプロトコルの使用状況を調査する
このステップでは、ソケットを調査するためのユーティリティである ss コマンドを使用します。ss は、より多くの TCP および状態情報を表示できるため、しばしば netstat の代替とされています。
netstat と同様に、ss コマンドにもさまざまなソケットタイプの概要統計情報を表示する -s オプションがあります。これにより、異なるプロトコルの開いている接続とソケットの数をすばやく把握できます。
ターミナルが開いていない場合は、開きます。
以下のコマンドを入力し、Enter キーを押します。
ss -s
異なる状態および異なるプロトコルのソケットの数をまとめた出力が表示されます。出力は次のようになるかもしれません。
Total: 1234 (kernel 5678)
TCP: 90 (estab 50, closed 20, orphaned 5, synrecv 3, timewait 10, ...)
UDP: 15
RAW: 0
UNK: 0
TCP:
ESTAB 50
TIME-WAIT 10
... (other TCP states)
出力を分解してみましょう。
Total:ソケットの総数を表示します。TCP:TCP ソケットの概要を提供します。これには、総数とestab(確立済み)、closed、timewaitなどの異なる状態の数が含まれます。UDP:UDP ソケットの総数を表示します。RAW:生ソケット(raw socket)の総数を表示します。UNK:不明なソケットタイプの数を表示します。
概要行の下には、ss -s はしばしば TCP 状態のより詳細な内訳を提供します。
netstat -s と ss -s の出力を比較すると、ss -s はソケットの状態に重点を置いていることに気づくかもしれません。これは、接続の問題を診断するのに非常に役立ちます。たとえば、TIME-WAIT 状態のソケットが大量にある場合は、接続を効率的に閉じる際に問題があることを示している可能性があります。
ss -s を使用することで、netstat -s とは異なるネットワークアクティビティの視点が得られます。これらのコマンドはどちらも、Linux でのネットワーク監視とトラブルシューティングにとって貴重なツールです。
これで、netstat -s の使用方法、/proc/net の探索方法、および ss -s を使用してネットワークプロトコルの統計情報を調査する方法を学びました。これらは、Linux システム上のネットワークアクティビティを理解するための基本的なスキルです。
Continue をクリックしてこの実験を完了します。
まとめ
この実験では、ネットワーク統計情報とシステムファイルを調べることで、Linux でネットワークプロトコルが有効になっているかどうかを確認する方法を学びました。まず、netstat -s コマンドを使用して、IP、ICMP、TCP、UDP などのさまざまなネットワークプロトコルのプロトコル別の統計情報を表示しました。これは、ネットワークアクティビティの理解と問題の診断に役立ちます。次に、/proc/net ディレクトリ内のファイルを調べることで、プロトコル情報を検証する方法を探索しました。これにより、カーネルのネットワーク状態を確認できます。最後に、ss -s コマンドを使用してプロトコルの使用状況を調査し、異なるプロトコルの要約統計情報を表示する別の方法を紹介しました。これらの方法は、Linux システム上でアクティブなネットワークプロトコルに関する貴重な洞察を提供します。



