「インターネットが繋がらない」
「ファイル共有できない」
「リモートアクセスがうまくいかない」
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:ネットワーク設定にアクセス
- 画面右上のネットワークアイコンをクリック
- Wi-Fi接続中:電波マークのアイコン
- 有線接続中:ケーブルのアイコン
- 接続なし:「×」または「!」マーク
- 「設定」をクリック
- またはメニューから「設定」アプリを直接開く
- 左側メニューから「ネットワーク」を選択
ステップ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以前)での確認
基本手順
- 右上のネットワークアイコンをクリック
- 「ネットワーク接続を編集する」を選択
- 該当する接続を選択して「編集」
- 「IPv4設定」タブで詳細を確認
KDE Plasma デスクトップでの確認
KDE環境での手順
- システムトレイのネットワークアイコンをクリック
- 「ネットワーク設定を設定」を選択
- 「システム設定」→「接続」で詳細確認
コマンドラインでの確認方法

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設定画面での基本情報確認
ping
とip 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 # サービス再起動
コメント