MENU

サーバーのNIC設定・IPアドレス・リンク状態をまとめて確認する方法

ネットワークトラブルの切り分けや設定変更後の確認で「今このサーバーのNICにどんな設定が入っているか」を素早く把握したい場面は多くあります。旧来のifconfigコマンドやifcfg-eth0ファイルは現代のディストリビューションでは使われなくなっているため、現行の確認手順を整理します。

目次

まずインターフェース名と状態を把握する

作業の最初の一手は、サーバーに認識されているNICの一覧と現在の状態(UP/DOWN)の確認です。現代のLinuxではeth0という名前は使われず、enp3s0ens33のような「予測可能なインターフェース名」が自動的に割り当てられます。

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN ...
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP ...

state UPと表示されていれば物理リンクが確立しています。state DOWNの場合はケーブルや対向スイッチ側のポートを疑います。特定のNICのみ絞り込みたい場合はip link show dev enp3s0のように dev でインターフェース名を指定します。

IPアドレスとサブネットを確認する

# 全インターフェースを表示
ip addr show

# 特定のNICのみ表示
ip addr show dev enp3s0
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.35/24 brd 192.168.1.255 scope global dynamic enp3s0
       valid_lft 86397sec preferred_lft 86397sec

inet 192.168.1.35/24がIPv4アドレスとプレフィックス長です。/24はサブネットマスク255.255.255.0と同義で、brdがブロードキャストアドレスを示します。dynamicと表示されていればDHCP割り当て、この表示がなければ静的設定です。

デフォルトゲートウェイも合わせて確認するには以下を実行します。

ip route show

default via 192.168.1.1 dev enp3s0の行が外向きトラフィックの出口(デフォルトGW)です。この行が存在しない場合、サーバーから外部ネットワークへの疎通が取れない原因になります。

接続プロファイルの詳細を確認する(DHCP・静的・DNSを含む)

IPアドレスの取得方式やDNSサーバーなど、接続プロファイル全体を確認するにはNetworkManagerのCLIツールnmcliが便利です。RHEL 7以降・Debian・Ubuntuを含む大半の現代的なディストリビューションはNetworkManagerを標準採用しています。

# NICの詳細情報を表示
nmcli device show enp3s0

# 接続プロファイル一覧を確認
nmcli connection show

# 特定プロファイルの全パラメータを表示
nmcli connection show "Wired connection 1"

nmcli device showから読み取れる主な情報:

GENERAL.DEVICE:           enp3s0
GENERAL.STATE:            100 (connected)
GENERAL.CONNECTION:       Wired connection 1
IP4.ADDRESS[1]:           192.168.1.35/24
IP4.GATEWAY:              192.168.1.1
IP4.DNS[1]:               192.168.1.1
IP4.DNS[2]:               8.8.8.8
WIRED-PROPERTIES.CARRIER: on

WIRED-PROPERTIES.CARRIER: onは物理的なリンクパルスが検出されている状態を意味します。offの場合はケーブル未接続か対向ポートがシャットダウンしています。ip addr showでIPが見えているのに通信できない場合、まずこの値を確認するとケーブル・スイッチ側の問題か設定の問題かを素早く切り分けられます。

設定ファイルの場所をディストリビューション別に確認する

スクリプトや自動化での参照のために設定ファイルを直接確認したい場合は、ディストリビューションごとにパスが異なります。

RHEL 9 / Rocky Linux 9 / AlmaLinux 9 以降
NetworkManagerのキーファイル形式が標準です。旧来のifcfg形式はRHEL 9で廃止されています。

ls /etc/NetworkManager/system-connections/
cat /etc/NetworkManager/system-connections/enp3s0.nmconnection

RHEL 7〜8 / CentOS 7〜8 / Rocky Linux 8 / AlmaLinux 8
ifcfg形式の設定ファイルが使われています。インターフェース名に合わせたファイル名になっている点に注意が必要です。

cat /etc/sysconfig/network-scripts/ifcfg-enp3s0

Ubuntu 18.04以降 / Debian 12以降(Netplan環境)
YAMLファイルで定義します。

ls /etc/netplan/
cat /etc/netplan/00-installer-config.yaml

どのディストリビューションか判断しにくい場合や、ファイルを直接編集せず設定値だけ確認したい場合はnmcli connection showを使うのが確実です。設定ファイルを直接変更した場合はnmcli connection reloadで再読み込みが必要になります。

リンク速度とDuplexを確認する

「通信はできているが転送速度が上がらない」「GbEのはずなのに遅い」という症状を調べるには、物理層のリンク速度とDuplex(全二重/半二重)の確認が有効です。

# ethtoolがない場合は先にインストール
# RHEL系: dnf install ethtool
# Debian/Ubuntu系: apt install ethtool

ethtool enp3s0

注目すべき出力項目:

Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Link detected: yes

Speed: 100Mb/sかつDuplex: Halfという組み合わせはオートネゴシエーションの失敗が疑われ、スループットが著しく低下します。ある運用現場では、スイッチ側ポートに固定設定が残っていたため新規サーバーが100M-Halfで動作し続けていたケースがありました。障害として表面化するまでに時間がかかり、ethtoolでの確認によって初めて原因が特定できた例です。

速度を一時的に固定したい場合は以下で設定できます。再起動後は元に戻るため、永続化するにはNetworkManagerのプロファイル設定が別途必要です。

# 1000Mbps / Full Duplex に固定する例(一時設定)
ethtool -s enp3s0 speed 1000 duplex full autoneg off

NICのハードウェア認識とドライバを確認する

NICがip link showに表示されない場合、まずOSがNICをハードウェアとして認識できているかを確認します。

# PCI接続のNICを一覧表示
lspci | grep -i ethernet

# カーネルのNIC認識ログを確認
dmesg | grep -iE "eth|enp|ens|virtio_net" | head -20

lspciにNICが表示されるにもかかわらずip link showに出てこない場合は、ドライバが読み込まれていない可能性があります。KVM・VMwareなどの仮想環境ではvirtio_netvmxnet3などの仮想NICドライバが必要です。

NICに割り当てられているドライバ名を調べるには以下を実行します。

ethtool -i enp3s0
driver: igb
version: 5.6.0-k
firmware-version: 1.67, 0x80000faa

driver行のドライバ名(igbe1000evirtio_netなど)をもとにmodinfo ドライバ名でカーネルモジュールの詳細情報を確認できます。物理サーバーでドライバが当たっていない場合は、ディストリビューションのカーネルバージョンとNICベンダーが提供するドライバの対応表を照合するのが次のステップです。

<PR>この記事に関連するおすすめ書籍

[改訂第3版]シェルスクリプト基本リファレンス

移植性の高いシェルスクリプトを書くための逆引きリファレンス。運用スクリプトの信頼性を高めたい方に。

「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。

ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。

>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)

※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次