「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コマンドの使い方を説明しました。