【Ubuntu】ifconfigではなくipコマンドによるIPアドレス確認

【Ubuntu】ifconfigではなくipコマンドによるIPアドレス確認 サーバー

「LinuxでIPアドレスを確認したい」
「ifconfigコマンドが使えない・・・」

このような場合には、ipコマンドを使いましょう。
この記事では、ipコマンドについて解説しています。

本記事の内容

  • ifconfigコマンドがデフォルトでは使えない
  • ipコマンドを使いましょう
  • ipコマンドの使い方

それでは、上記に沿って解説していきます。

ifconfigコマンドがデフォルトでは使えない

LinuxでIPアドレスを確認する場合、ifconfigを使っていました。
しかし、もうifconfigはオワコンらしいです。

実際、Ubuntuではデフォルトでifconfigコマンドが使えません。
Ubuntu 18系以降なら、おそらくそのはずです。

例えば、Ubuntu 20.04 LTSで確認してみましょう。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=20.04 
DISTRIB_CODENAME=focal 
DISTRIB_DESCRIPTION="Ubuntu 20.04.4 LTS"

上記OSのマシンにログインして、ifconfigコマンドを実行。

$ ifconfig 
コマンド 'ifconfig' が見つかりません。次の方法でインストールできます: 
apt install net-tools 
管理者に確認してください。

上記メッセージが表示されます。
ここで、安直にnet-toolsをインストールしてはいけません。

Ubuntuがnet-toolsを外したのには、それなりの理由があるはずです。
それを尊重して、net-toolsをインストールするのはやめておきましょう。

なお、net-toolsパッケージはすぐにインストール可能です。

$ sudo apt info net-tools 
Package: net-tools 
Version: 1.60+git20180626.aebd88e-1ubuntu1 
Priority: optional 
Section: net 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: net-tools Team <team+net-tools@tracker.debian.org> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 864 kB 
Depends: libc6 (>= 2.14), libselinux1 (>= 1.32) 
Homepage: http://sourceforge.net/projects/net-tools/ 
Task: ubuntukylin-desktop 
Download-Size: 196 kB 
APT-Sources: http://archive.ubuntu.com/ubuntu focal/main amd64 Packages 
Description: NET-3 networking toolkit 
 This package includes the important tools for controlling the network 
 subsystem of the Linux kernel.  This includes arp, ifconfig, netstat, 
 rarp, nameif and route.  Additionally, this package contains utilities 
 relating to particular network hardware types (plipconfig, slattach, 
 mii-tool) and advanced aspects of IP configuration (iptunnel, ipmaddr). 
 . 
 In the upstream package 'hostname' and friends are included. Those are 
 not installed by this package, since there is a special "hostname*.deb".

以上より、ifconfigコマンドがデフォルトでは使えないことがわかりました。
では、我々は一体どのコマンドを使えばよいのでしょうか?

それは、ipコマンドです。
次は、そのipコマンドついて確認します。

ipコマンドを使いましょう

ipコマンドが、デフォルトの状態で利用できます。
ipコマンドのバージョンを確認してみましょう。

$ ip -V 
ip utility, iproute2-ss200127

どうでしょうか?
上記のように表示されたはずです。

iproute2というパッケージが、デフォルトでインストールされています。
このパッケージの中に、ipコマンドが含まれているのです。

インストール状況を確認してみましょう。

$ sudo apt list iproute2 
一覧表示... 完了 
iproute2/focal,now 5.5.0-1ubuntu1 amd64 [インストール済み、自動]

デフォルトでインストール済みですね。
では、iproute2のパッケージ情報を確認してみます。

$ sudo apt info iproute2 
Package: iproute2 
Version: 5.5.0-1ubuntu1 
Priority: important 
Section: net 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: Alexander Wirt <formorer@debian.org> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 2,796 kB 
Provides: arpd 
Depends: debconf (>= 0.5) | debconf-2.0, libbsd0 (>= 0.0), libc6 (>= 2.29), libcap2 (>= 1:2.10), libdb5.3, libelf1 (>= 0.131), libmnl0 (>= 1.0.3-4~), libselinux1 (>= 2.0.15), libxtables12 (>= 1.6.0+snapshot20161117), libcap2-bin 
Recommends: libatm1 (>= 2.4.1-17~) 
Suggests: iproute2-doc 
Conflicts: arpd, iproute (<< 20130000-1) 
Replaces: iproute 
Homepage: https://wiki.linuxfoundation.org/networking/iproute2 
Task: minimal, ubuntu-core 
Download-Size: 858 kB 
APT-Manual-Installed: no 
APT-Sources: http://archive.ubuntu.com/ubuntu focal/main amd64 Packages 
Description: networking and traffic control tools 
 The iproute2 suite is a collection of utilities for networking and 
 traffic control. 
 . 
 These tools communicate with the Linux kernel via the (rt)netlink 
 interface, providing advanced features not available through the 
 legacy net-tools commands 'ifconfig' and 'route'.

Ubuntu 20.04では、iproute2 v5.5.0がパッケージとして認識されています。
ここで注目すべきは、次のメッセージです。

 These tools communicate with the Linux kernel via the (rt)netlink 
 interface, providing advanced features not available through the 
 legacy net-tools commands 'ifconfig' and 'route'.

また、Ubuntu 21系の場合はiproute2 v5.7.0を確認できます。
v5.7.0では、日本語表記に対応しています。

 これらのツールは Linux カーネルと (rt)netlink インターフェース経由 でやりとりし、時代遅れになった net-tools
 のコマンド 'ifconfig' や 'route' では 実現不能な先進的な機能を提供します。

iproute2が、公式にnet-toolsをディスっています。
そして、そのiproute2がUbuntuではOS標準で採用されているのです。

以上より、ipコマンドを使うべき理由がわかりました。
次は、ipコマンドの使い方を確認します。

ipコマンドの使い方

ヘルプが、何よりも正しいです。
ネットの記事は、基本的には古かったりするので注意してください。

もちろん、それはこの記事も含めてです。
そのため、利用する際はヘルプを確認してください。

$ ip help 
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } 
       ip [ -force ] -batch filename 
where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable | 
                   tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | 
                   netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila | 
                   vrf | sr | nexthop } 
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | 
                    -h[uman-readable] | -iec | -j[son] | -p[retty] | 
                    -f[amily] { inet | inet6 | mpls | bridge | link } | 
                    -4 | -6 | -I | -D | -M | -B | -0 | 
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] | 
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] | 
                    -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] | 
                    -c[olor]}

まずは、オプションを付けずにIPアドレスの情報を表示します。

$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 6c:3b:e5:28:4c:f4 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    inet 192.168.11.25/24 brd 192.168.11.255 scope global dynamic noprefixroute eno1
       valid_lft 169964sec preferred_lft 169964sec
    inet6 fe80::5323:5946:cb4d:2453/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

この表示では、何が何やらよくわかりません。
そこで、IPアドレスがわかりやすように表示させましょう。

「-br」オプションにより、IPアドレスを抽出することができます。
「-br」は「-breief」の短縮形です。

$ ip -br address
lo               UNKNOWN        127.0.0.1/8 ::1/128 
eno1             UP             192.168.11.25/24 fe80::5323:5946:cb4d:2453/64
$ ip -brief address
lo               UNKNOWN        127.0.0.1/8 ::1/128 
eno1             UP             192.168.11.25/24 fe80::5323:5946:cb4d:2453/64

これだけで、IPアドレスがわかりやすくなりました。
さらに、わかりやすくできます。

「-4」オプションにより、IPv4のみを抽出できます。
これが、最もよく使うコマンドになるかもしれません。

$ ip -br -4  address
lo               UNKNOWN        127.0.0.1/8 
eno1             UP             192.168.11.25/24

同じように「-6」オプションにより、IPv6のみを抽出できます。

$ ip -br -6  address
lo               UNKNOWN        ::1/128 
eno1             UP             fe80::5323:5946:cb4d:2453/64

もうお腹一杯かもしれませんが、最後にデザートをどうぞ。
「-c」オプションにより、IPアドレスに色を付けることができます。

スクリーンショットが必要な場合には、カラーでIPアドレスが強調されて効果的と言えますね。

以上、ipコマンドの使い方を説明しました。

タイトルとURLをコピーしました