Ubuntuでネットワーク状態を確認する方法:GUIとコマンドライン両対応

Linux

「インターネットが繋がらない」
「ファイル共有できない」
「リモートアクセスがうまくいかない」
Ubuntu を使っていると、こうしたネットワーク関連の問題に遭遇することがよくあります。

問題を解決するためには、まず現在のネットワーク状態を正確に把握することが重要です。

IPアドレスは取得できているのか、DNSは正常に機能しているのか、どのネットワークインターフェースが使用されているのか──これらの情報を効率的に確認する方法を知っておくことで、トラブルシューティングが格段に楽になります。

この記事では、Ubuntu初心者から中級者まで、GUIとコマンドライン両方でネットワーク状態を確認する方法を詳しく解説します。

スポンサーリンク

ネットワークの基礎知識

Ubuntuのネットワーク管理システム

NetworkManager
Ubuntu のデスクトップ版では、NetworkManager がネットワーク接続を管理しています。これにより、Wi-Fi、有線LAN、VPNなどの接続を統一的に扱うことができます。

Netplan(Ubuntu 18.04以降)
サーバー版や一部の環境では、Netplan という新しい設定システムが使用されています。YAML形式で設定を記述し、NetworkManager や systemd-networkd を背後で制御します。

ネットワークインターフェースの種類

有線接続

  • eth0, enp0s3, enp0s25 など
  • Ethernet の略で、物理的なLANケーブル接続

無線接続

  • wlan0, wlp3s0, wlx123456789abc など
  • Wi-Fi や無線LAN接続

ループバック

  • lo (localhost)
  • 自分自身への通信用(127.0.0.1)

仮想インターフェース

  • docker0, virbr0, tun0 など
  • Docker、仮想マシン、VPN用

GUI(グラフィカル)での確認方法

Ubuntu Desktop(GNOME)での確認

ステップ1:ネットワーク設定にアクセス

  1. 画面右上のネットワークアイコンをクリック
    • Wi-Fi接続中:電波マークのアイコン
    • 有線接続中:ケーブルのアイコン
    • 接続なし:「×」または「!」マーク
  2. 「設定」をクリック
    • またはメニューから「設定」アプリを直接開く
  3. 左側メニューから「ネットワーク」を選択

ステップ2:接続詳細の確認

  1. 有線接続の場合
    • 「有線」セクションで歯車アイコンをクリック
    • 接続の詳細情報が表示される
  2. Wi-Fi接続の場合
    • 接続中のWi-Fiネットワーク名の横の歯車アイコンをクリック
    • 「詳細」タブで情報を確認

表示される主な情報

IPv4アドレス:     192.168.1.100
サブネットマスク: 255.255.255.0
デフォルトルート: 192.168.1.1
DNS:             8.8.8.8, 8.8.4.4
MAC アドレス:     aa:bb:cc:dd:ee:ff

Unity デスクトップ(Ubuntu 16.04以前)での確認

基本手順

  1. 右上のネットワークアイコンをクリック
  2. 「ネットワーク接続を編集する」を選択
  3. 該当する接続を選択して「編集」
  4. 「IPv4設定」タブで詳細を確認

KDE Plasma デスクトップでの確認

KDE環境での手順

  1. システムトレイのネットワークアイコンをクリック
  2. 「ネットワーク設定を設定」を選択
  3. 「システム設定」→「接続」で詳細確認

コマンドラインでの確認方法

ip コマンド:現代的で推奨される方法

基本的な使用法

# 全ネットワークインターフェースの表示
ip addr show
# 短縮形
ip a

実際の出力例

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

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3
       valid_lft 86395sec preferred_lft 86395sec

3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

情報の読み方

  • lo: ループバックインターフェース
  • enp0s3: 有線LANインターフェース(状態: UP = 接続中)
  • wlp3s0: Wi-Fiインターフェース(状態: DOWN = 未接続)
  • 192.168.1.100/24: IPアドレスとサブネットマスク
  • 08:00:27:12:34:56: MACアドレス

特定インターフェースのみ表示

# 特定のインターフェースのみ
ip addr show enp0s3

# アクティブなインターフェースのみ
ip addr show up

# IPv4アドレスのみ
ip -4 addr show

# IPv6アドレスのみ
ip -6 addr show

ルーティングテーブルの確認

# ルーティング情報の表示
ip route show
# 短縮形
ip r

出力例

default via 192.168.1.1 dev enp0s3 proto dhcp metric 100
169.254.0.0/16 dev enp0s3 scope link metric 1000
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.100 metric 100

nmcli コマンド:NetworkManager の制御

基本的な状態確認

# 全デバイスの状態確認
nmcli device status
# 短縮形
nmcli d

出力例

DEVICE   TYPE      STATE         CONNECTION
enp0s3   ethernet  connected     Wired connection 1
wlp3s0   wifi      disconnected  --
lo       loopback  unmanaged     --

詳細な接続情報

# 特定デバイスの詳細情報
nmcli device show enp0s3

# 全デバイスの詳細情報
nmcli device show

接続プロファイルの確認

# 設定済み接続の一覧
nmcli connection show

# 特定接続の詳細
nmcli connection show "Wired connection 1"

Wi-Fi関連の操作

# 利用可能なWi-Fiネットワーク一覧
nmcli device wifi list

# Wi-Fi接続状態の確認
nmcli device wifi show-password

従来のコマンド(互換性のため)

ifconfig コマンド

# net-tools パッケージが必要
sudo apt install net-tools

# 全インターフェース表示
ifconfig

# 特定インターフェース表示
ifconfig enp0s3

# アクティブなインターフェースのみ
ifconfig -a

route コマンド

# ルーティングテーブル表示
route -n

# IPv6ルーティング
route -6 -n

接続テストコマンド

ping:基本的な接続テスト

# 外部への接続テスト
ping -c 4 google.com

# 数値指定(DNSを使わない)
ping -c 4 8.8.8.8

# 継続的なping(Ctrl+Cで停止)
ping google.com

# IPv6での接続テスト
ping6 -c 4 google.com

dig/nslookup:DNS解決テスト

# DNS解決の確認
dig google.com

# 簡潔な出力
dig +short google.com

# 特定のDNSサーバーを指定
dig @8.8.8.8 google.com

# nslookup の使用
nslookup google.com

traceroute:経路確認

# パケットの経路を確認
traceroute google.com

# ホップ数を制限
traceroute -m 10 google.com

wget/curl:HTTP接続テスト

# HTTP接続テスト
curl -I http://google.com

# タイムアウト設定
curl --connect-timeout 10 http://google.com

# wget での接続テスト
wget --spider http://google.com

ポートとサービスの確認

ss コマンド:アクティブな接続確認

基本的な使用法

# 全ての接続を表示
ss -tuln

# TCPのみ
ss -tln

# UDPのみ
ss -uln

# リスニング状態のポートのみ
ss -ln

オプションの説明

  • -t: TCP接続
  • -u: UDP接続
  • -l: リスニング状態
  • -n: 数値で表示(ホスト名解決しない)

実際の出力例

State    Recv-Q    Send-Q       Local Address:Port        Peer Address:Port
LISTEN   0         128          0.0.0.0:22               0.0.0.0:*
LISTEN   0         5            127.0.0.1:631            0.0.0.0:*
ESTAB    0         0            192.168.1.100:45678      142.250.196.14:443

プロセス情報付きで表示

# プロセス名も表示
ss -tulnp

# 特定ポートの確認
ss -tuln | grep :80
ss -tuln | grep :443

netstat コマンド(従来の方法)

基本的な使用法

# net-tools パッケージが必要
sudo apt install net-tools

# 全接続の表示
netstat -tuln

# プロセス名付き
netstat -tulnp

# 統計情報
netstat -s

lsof コマンド:ファイルとポートの使用状況

ネットワーク関連の確認

# 特定ポートを使用しているプロセス
lsof -i :80
lsof -i :443

# 特定プロトコルのみ
lsof -i tcp
lsof -i udp

# 特定ユーザーのネットワーク使用
lsof -u username -i

高度な診断ツール

iftop:リアルタイムネットワーク監視

インストールと使用

# インストール
sudo apt install iftop

# 実行(管理者権限必要)
sudo iftop

# 特定インターフェースの監視
sudo iftop -i enp0s3

nethogs:プロセス別ネットワーク使用量

インストールと使用

# インストール
sudo apt install nethogs

# 実行
sudo nethogs

# 特定インターフェースの監視
sudo nethogs enp0s3

nmap:ネットワークスキャン

基本的な使用法

# インストール
sudo apt install nmap

# ローカルネットワークのスキャン
nmap 192.168.1.0/24

# 特定ホストのポートスキャン
nmap 192.168.1.1

# OSとサービス検出
nmap -O -sV 192.168.1.1

トラブルシューティング手順

段階的な診断方法

レベル1:基本的な接続確認

# 1. インターフェースの状態確認
ip a

# 2. ルーティング確認
ip r

# 3. 基本的な接続テスト
ping -c 4 127.0.0.1  # ローカルループバック
ping -c 4 192.168.1.1  # ゲートウェイ
ping -c 4 8.8.8.8     # 外部DNS

レベル2:詳細な診断

# 4. DNS解決確認
nslookup google.com

# 5. 経路確認
traceroute 8.8.8.8

# 6. ポート確認
ss -tuln | grep :80

レベル3:ハードウェア・ドライバ確認

# 7. ネットワークハードウェア確認
lspci | grep -i network
lsusb | grep -i wireless

# 8. ドライバ状況確認
lsmod | grep -E "(e1000|iwlwifi|rtl)"

# 9. カーネルメッセージ確認
dmesg | grep -E "(eth|wlan)"

よくある問題と解決法

問題1:IPアドレスが取得できない

症状確認

ip a show enp0s3
# inet の行がない、または 169.254.x.x(APIPA)

解決手順

# 1. DHCP設定の確認
nmcli device show enp0s3 | grep IP4.METHOD

# 2. 接続の再起動
sudo nmcli device disconnect enp0s3
sudo nmcli device connect enp0s3

# 3. NetworkManager の再起動
sudo systemctl restart NetworkManager

# 4. DHCPクライアントの手動実行
sudo dhclient enp0s3

問題2:DNS解決ができない

症状確認

# IPアドレスでは接続可能だが、ホスト名では不可
ping 8.8.8.8      # OK
ping google.com   # NG

解決手順

# 1. DNS設定確認
cat /etc/resolv.conf

# 2. systemd-resolved の確認
systemctl status systemd-resolved

# 3. DNS設定の変更
nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8,8.8.4.4"
nmcli connection up "Wired connection 1"

# 4. DNS キャッシュのクリア
sudo systemd-resolve --flush-caches

問題3:Wi-Fi接続ができない

症状確認

# Wi-Fiアダプタの認識確認
ip a show wlp3s0
nmcli device status | grep wifi

解決手順

# 1. Wi-Fiの有効化
nmcli radio wifi on

# 2. 利用可能ネットワークの確認
nmcli device wifi list

# 3. 手動接続
nmcli device wifi connect "SSID名" password "パスワード"

# 4. ドライバの確認
lsmod | grep -E "(iwlwifi|rtl|ath)"

# 5. ハードウェアキルスイッチの確認
rfkill list
rfkill unblock wifi

パフォーマンス監視

帯域幅の測定

iperf3 による速度測定

# インストール
sudo apt install iperf3

# サーバー側
iperf3 -s

# クライアント側
iperf3 -c サーバーのIPアドレス

speedtest-cli によるインターネット速度測定

# インストール
sudo apt install speedtest-cli

# 速度測定実行
speedtest-cli

# 結果を簡潔に表示
speedtest-cli --simple

リアルタイム監視

vnstat による長期統計

# インストール
sudo apt install vnstat

# 現在の統計
vnstat

# 日別統計
vnstat -d

# 月別統計
vnstat -m

nload による視覚的監視

# インストール
sudo apt install nload

# 実行
nload

# 特定インターフェース
nload enp0s3

セキュリティ確認

ファイアウォール状態の確認

ufw(Uncomplicated Firewall)

# ファイアウォール状態確認
sudo ufw status verbose

# 詳細なルール表示
sudo ufw status numbered

# ログの確認
sudo tail -f /var/log/ufw.log

iptables の直接確認

# 現在のルール表示
sudo iptables -L -n -v

# NAT テーブル
sudo iptables -t nat -L -n -v

# 詳細な統計情報
sudo iptables -L -n -v --line-numbers

セキュリティスキャン

基本的なセキュリティチェック

# 開放ポートの確認
ss -tuln | grep LISTEN

# 不審な接続の確認
ss -tuln | grep ESTABLISHED

# システムログの確認
sudo journalctl -u NetworkManager -f

設定ファイルの確認と編集

NetworkManager の設定

設定ファイルの場所

# 接続プロファイル
ls /etc/NetworkManager/system-connections/

# メイン設定
cat /etc/NetworkManager/NetworkManager.conf

# 現在の設定値
nmcli general

Netplan の設定(Ubuntu 18.04以降)

設定ファイルの確認

# Netplan設定ファイル
ls /etc/netplan/

# 設定内容の表示
cat /etc/netplan/*.yaml

# 設定の適用
sudo netplan apply

# 設定のテスト
sudo netplan try

基本的なNetplan設定例

# /etc/netplan/00-installer-config.yaml
network:
  ethernets:
    enp0s3:
      dhcp4: true
  version: 2
  wifis:
    wlp3s0:
      optional: true
      access-points:
        "MyWiFi":
          password: "mypassword"
      dhcp4: true

スクリプト化と自動化

ネットワーク診断スクリプト

基本的な診断スクリプト

#!/bin/bash
# network_check.sh

echo "=== ネットワーク診断レポート ==="
echo "実行日時: $(date)"
echo

echo "--- インターフェース状態 ---"
ip -brief addr show

echo
echo "--- ルーティング情報 ---"
ip route show

echo
echo "--- DNS設定 ---"
cat /etc/resolv.conf | grep nameserver

echo
echo "--- 接続テスト ---"
echo -n "ローカルホスト: "
ping -c 1 -W 2 127.0.0.1 >/dev/null 2>&1 && echo "OK" || echo "NG"

echo -n "ゲートウェイ: "
gateway=$(ip route | grep default | awk '{print $3}' | head -1)
ping -c 1 -W 2 $gateway >/dev/null 2>&1 && echo "OK ($gateway)" || echo "NG"

echo -n "外部DNS: "
ping -c 1 -W 2 8.8.8.8 >/dev/null 2>&1 && echo "OK" || echo "NG"

echo -n "DNS解決: "
nslookup google.com >/dev/null 2>&1 && echo "OK" || echo "NG"

echo
echo "=== 診断完了 ==="

実行方法

chmod +x network_check.sh
./network_check.sh

監視スクリプト

接続監視スクリプト

#!/bin/bash
# connection_monitor.sh

log_file="/var/log/network_monitor.log"

while true; do
    timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    # 外部接続テスト
    if ping -c 1 -W 5 8.8.8.8 >/dev/null 2>&1; then
        status="UP"
    else
        status="DOWN"
        # 接続が切れた場合の詳細ログ
        echo "$timestamp [ERROR] Network connection lost" >> $log_file
        ip addr show >> $log_file
        ip route show >> $log_file
    fi
    
    echo "$timestamp [INFO] Network status: $status" >> $log_file
    sleep 60
done

まとめ:効率的なネットワーク管理の習慣化

Ubuntu でのネットワーク状態確認は、適切なツールと手順を知っていれば、迅速で正確な診断が可能です。GUIとコマンドラインを使い分けることで、様々なシチュエーションに対応できます。

レベル別推奨アプローチ

初心者レベル

  • GUI設定画面での基本情報確認
  • pingip a コマンドの習得
  • NetworkManager の基本操作

中級者レベル

  • nmcli コマンドの活用
  • 基本的なトラブルシューティング手順
  • ログファイルの確認方法

上級者レベル

  • 高度な診断ツールの活用
  • スクリプトによる自動化
  • セキュリティ面での監視

日常的に覚えておきたいコマンド

最重要コマンド

ip a                    # インターフェース状態
ip r                    # ルーティング情報
ping google.com         # 接続テスト
nmcli device status     # デバイス状態

トラブル時に役立つコマンド

ss -tuln               # ポート確認
dig google.com         # DNS確認
traceroute 8.8.8.8     # 経路確認
sudo systemctl restart NetworkManager  # サービス再起動

コメント

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