【netstat】Linuxコマンド_ネットワークのソケット・インターフェース・経路情報の確認

「netstat」コマンドはネットワークのソケット情報の表示やネットワークインターフェースの接続状況、ルーティングテーブル(経路情報)を確認することができます。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「netstat」コマンドの使い方(Linux)

「netstat」コマンドはソケット情報、インターフェース接続状態を表示することができます。

ソケットは実行中のネットワークプログラム間でのデータ送受信の状況を。
インターフェースはリンク接続状況をそれぞれ確認することができます。

さらに、netstatコマンドでルーティングテーブル(経路情報)も確認することができます。

「netstat」ネットワークのソケット情報を表示

「netstat」コマンドはオプションを付けずにそのまま実行します。
このコマンドを実行するとオープンされているソケットの一覧情報を表示します。

[root@centos8 ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0    164 centos8:ssh             _gateway:63208          ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  3      [ ]         DGRAM                    194434   /run/systemd/notify
unix  2      [ ]         DGRAM                    194435   /run/systemd/cgroups-agent
unix  5      [ ]         DGRAM                    194450   /run/systemd/journal/socket

------中略------

unix  3      [ ]         STREAM     CONNECTED     195091   
Active Bluetooth connections (w/o servers)
Proto  Destination       Source            State         PSM DCID   SCID      IMTU    OMTU Security
Proto  Destination       Source            State     Channel

各箇所の表示は以下の表でまとめました。

名称 説明
Proto プロトコル名(tcp、udp、u_str…)
Recv-Q 受信しなかったデータのバイト数
Send-Q 送信しなかったデータのバイト数
Local Address ローカルホストのホスト名、またはIPアドレス
Foreign Address リモートホストのホスト名またはIPアドレス、ポート番号
State ソケットの状態

「netstat」ネットワークインターフェースのリンク状態を確認

「netstat」コマンドでインターフェースのリンク状態を表示するには「-i」オプションを指定して実行します。

[root@centos8 ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0          1500        0      0      0 0             0      0      0      0 BMU
eth0             1500     7747      0      0 0          6572      0      0      0 BMRU
lo              65536        0      0      0 0             0      0      0      0 LRU

各箇所の説明は以下で表で表でまとめました。

名称 説明
Iface インターフェース名
MTU 一度に送信できる最大のデータ量
RX-OK 正常に受信したパケット数
RX-ERR 受信エラーパケット数
RX-DRP 受信パケットドロップ数
RX-OVR 受信オーバーロードパケット数
TX-OK 正常に送信したパケット数
TX-ERR 送信エラーパケット数
TX-DRP 送信パケットドロップ数
TX-OVR 送信オーバーロードパケット数

「netstat」ルーティングテーブル(経路情報)を表示

「netstat」コマンドで「-r」オプションを使用することで経路情報を表示することができます。
また、以下のように「n」オプションも追加することにより、名前解決をせず、数字で経路情報を表示してくれます。

[root@centos8 ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG        0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 eth0
172.18.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0

「netstat」コマンドオプション

「netstat」コマンドのオプションは以下の通りとなります。

$ netstat -h
usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vWnNcaeol] [<Socket> ...]
       netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

        -r, --route              display routing table
        -I, --interfaces=<Iface> display interface table for <Iface>
        -i, --interfaces         display interface table
        -g, --groups             display multicast group memberships
        -s, --statistics         display networking statistics (like SNMP)
        -M, --masquerade         display masqueraded connections

        -v, --verbose            be verbose
        -W, --wide               don't truncate IP addresses
        -n, --numeric            don't resolve names
        --numeric-hosts          don't resolve host names
        --numeric-ports          don't resolve port names
        --numeric-users          don't resolve user names
        -N, --symbolic           resolve hardware names
        -e, --extend             display other/more information
        -p, --programs           display PID/Program name for sockets
        -o, --timers             display timers
        -c, --continuous         continuous listing

        -l, --listening          display listening server sockets
        -a, --all                display all sockets (default: connected)
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB
        -Z, --context            display SELinux security context for sockets

  <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}
           {-x|--unix} --ax25 --ipx --netrom
  <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

「netstat」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!