2014/08/31

CentOS 7でネットワークの状態確認するためのipコマンド、ssコマンドについてメモ

はじめに

CentOS 7ではnet-toolsパッケージ(ifconfigコマンド、netstatコマンド等)が非推奨になりデフォルトではインストールされておらず、iprouteパッケージ(ipコマンド、ssコマンド)が使われることになっています。

慣れていないコマンドはなかなかオプション等を覚えられず、最初は苦労しましたので、すでにいろいろなブログ記事等で紹介されていますが、自分用に簡単な使い方をいくつかメモしておきます。

ipコマンド, ssコマンドによるネットワーク確認

基本的な使い方はhelpで確認できます。必要に応じてmanで確認します。

  • ipコマンドの使い方
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
                   netns | l2tp | tcp_metrics | token }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
                    -4 | -6 | -I | -D | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } |
                    -o[neline] | -t[imestamp] | -b[atch] [filename] |
                    -rc[vbuf] [size]}
  • ssコマンドの使い方
Usage: ss [ OPTIONS ]
       ss [ OPTIONS ] [ FILTER ]
   -h, --help  this message
   -V, --version output version information
   -n, --numeric don't resolve service names
   -r, --resolve       resolve host names
   -a, --all  display all sockets
   -l, --listening display listening sockets
   -o, --options       show timer information
   -e, --extended      show detailed socket information
   -m, --memory        show socket memory usage
   -p, --processes show process using socket
   -i, --info  show internal TCP information
   -s, --summary show socket usage summary
   -b, --bpf           show bpf filter socket information

   -4, --ipv4          display only IP version 4 sockets
   -6, --ipv6          display only IP version 6 sockets
   -0, --packet display PACKET sockets
   -t, --tcp  display only TCP sockets
   -u, --udp  display only UDP sockets
   -d, --dccp  display only DCCP sockets
   -w, --raw  display only RAW sockets
   -x, --unix  display only Unix domain sockets
   -f, --family=FAMILY display sockets of type FAMILY

   -A, --query=QUERY, --socket=QUERY
       QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

   -D, --diag=FILE     Dump raw information about TCP sockets to FILE
   -F, --filter=FILE   read filter information from FILE
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]
ネットワークデバイスの状態確認

ipコマンドのaddressオブジェクトを用いてネットワークデバイスのIPアドレスや状態を確認できます。

構文

  • すべてのデバイスのIPアドレスと状態を確認

ip address show

 ※addressaと短縮可能、showは省略可能

  • 特定のデバイスのIPアドレスと状態を確認

ip address show dev デバイス名

 ※addressaと短縮可能

実行例

以下が実行例です。

  • すべてのデバイスのIPアドレスと状態を確認
% ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
    inet  brd <ブロードキャストアドレス> scope global eth0
       valid_lft forever preferred_lft forever
    inet6  scope link
       valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
4: eth2:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
  • eth0デバイスのIPアドレスと状態を確認
% ip a show dev eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:11:00:42:42 brd ff:ff:ff:ff:ff:ff
    inet  brd <ブロードキャストアドレス> scope global eth0
       valid_lft forever preferred_lft forever
    inet6  scope link
       valid_lft forever preferred_lft forever
ネットワークデバイスのリンクのダウン/アップ、状態確認

ipコマンドのlinkオブジェクトを用いてネットワークデバイスのリンク状態を確認できます。

構文
  • ネットワークデバイスをリンクダウン
ip link set デバイス名 down

 ※linklと短縮可能

  • ネットワークデバイスをリンクアップ
ip link set デバイス名 up

 ※linklと短縮可能

  • 全てのネットワークデバイスのリンク確認
ip link show

 ※linklと短縮可能、showは省略可能

  • 特定のネットワークデバイスのリンク確認
ip link show dev デバイス名

 ※linklと短縮可能

実行例

以下が実行例です。

  • ネットワークデバイスのリンクダウン

# ip l set eth1 down

  • ネットワークデバイスのリンク状態確認

# ip l show eth1
3: eth1:  mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000 
    link/ether  brd ff:ff:ff:ff:ff:ff

  • ネットワークデバイスのリンクアップ

# ip link set eth1 up

  • ネットワークデバイスのリンク状態確認

# ip link show dev eth1
3: eth1:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
パケットの処理情報確認

ipコマンドの-sオプションでデバイスのより詳細な情報を表示できます。linkオブジェクトと組み合わせることで、パケットの処理状態を表示できます。

構文
  • 全てのネットワークデバイスのパケットの処理情報を表示
ip -s link show

 ※linklと短縮可能、showは省略可能

  • 全てのネットワークデバイスのパケットの処理情報を表示
ip -s link show dev デバイス名

 ※linklと短縮可能

実行例
# ip -s l
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    2060       19       0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    2060       19       0       0       0       0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    53242888   780447   0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    4936364    25919    0       0       0       0
3: eth1:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    468        6        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
4: eth2:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    468        6        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
# ip -s l show dev eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether  brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    53909617   790762   0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    5012886    26334    0       0       0       0
ルーティングテーブル確認

ipコマンドのrouteオブジェクトを用いてルーティングテーブルのエントリを確認できます。

構文
ip route show

 ※routerと短縮可能、showは省略可能

実行例
# ip r
default via <デフォルトゲートウェイアドレス> dev eth0  proto static  metric 1024
<サブネットIPアドレス> dev eth0  proto kernel  scope link  src 
arpキャッシュ確認

ipコマンドのneighbourオブジェクトを用いてARPやNDISCのキャッシュ状態を確認できます。

構文
ip neighbour show

 ※neighbournと短縮可能、showは省略可能

実行例
# ip n
 dev eth0 lladdr  STALE
 dev eth0 lladdr  DELAY
TCP通信状態確認
構文

ssコマンドの-aオプションを指定すると全ての通信ソケットが表示され、-tオプションを指定するとtcp通信のコネクション状況を確認できます。-nオプションを指定すると、通信しているサービスの名前ではなくポート番号が表示されます。

ss -a -t (-n)
実行例
#  ss -ant
State       Recv-Q Send-Q                                                               Local Address:Port                                                                 Peer Address:Port
LISTEN      0      100                                                                      127.0.0.1:25                                                                              *:*
LISTEN      0      128                                                                              *:22                                                                              *:*
ESTAB       0      52                                                                  xxx.xxx.xxx.xxx:22                                                                  xxx.xxx.xxx.xxx:59702
ESTAB       0      76                                                                  xxx.xxx.xxx.xxx:22                                                                  xxx.xxx.xxx.xxx:55329
TIME-WAIT   0      0                                                                   xxx.xxx.xxx.xxx:22                                                                  xxx.xxx.xxx.xxx:59080
LISTEN      0      100                                                                            ::1:25                                                                             :::*
LISTEN      0      128                                                                             :::22                                                                             :::*
UDP通信状態確認
構文

ssコマンドの-aオプションを指定すると全ての通信ソケットが表示され、-uオプションを指定するとudp通信のコネクション状況を確認できます。-nオプションを指定すると、通信しているサービスの名前ではなくポート番号が表示されます。

ss -a -u (-n)
実行例
# ss -a -n -u
State       Recv-Q Send-Q                                                               Local Address:Port                                                                 Peer Address:Port
UNCONN      0      0                                                                                *:123                                                                             *:*
UNCONN      0      0                                                                                *:5353                                                                            *:*
UNCONN      0      0                                                                                *:51496                                                                           *:*
UNCONN      0      0                                                                        127.0.0.1:323                                                                             *:*
UNCONN      0      0                                                                               :::123                                                                            :::*
UNCONN      0      0                                                                              ::1:323                                                                            :::*

おわりに

よく使いそうなものをメモがてら書き連ねました。ただ、ネットワークはデフォルトでNetworkManagerで管理されるようになっているのでそのやり方も確認しておく必要がありそうです。

0 Comments:

コメントを投稿