Linuxサーバや開発環境で「このマシンちゃんとインターネットに繋がってるの?」と確認したい場面は多いですよね。
特にリモート環境やクラウドサーバでは、設定ミスやファイアウォールが原因で接続できないこともあります。
この記事では:
- Linuxでインターネット接続を確認する基本コマンド
- DNS、ルーティング、ファイアウォールの問題を体系的に調べる方法
- ネットワークトラブルを効率的に切り分けるステップ
- 具体的な設定確認と修復テクニック
をわかりやすく解説します。これを読めば、サクッとネットワーク状況を把握し、問題を迅速に解決できるようになりますよ!
インターネット接続確認の基本アプローチ

段階的な確認手順
ネットワークトラブルの原因を効率的に特定するため、以下の順序で確認することが重要です:
- 物理層・データリンク層:ネットワークインターフェースの状態
- ネットワーク層:IPアドレス設定とルーティング
- インターネット層:外部サーバとの疎通
- DNS層:名前解決の動作
- アプリケーション層:HTTPなどの具体的なサービス
OSI参照モデルに基づく診断
この段階的アプローチにより、問題の発生箇所を効率的に特定し、無駄な作業を避けることができます。
基本的な接続確認コマンド
pingによる基本的な疎通確認
IPアドレスでの接続テスト
最も基本的な確認
ping -c 4 8.8.8.8
コマンドの詳細説明
8.8.8.8
:Googleのパブリック DNS サーバー(信頼性が高い)-c 4
:4回送信して終了(-c
なしだと無限に送信)
正常時の出力例
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=15.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=14.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=15.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=14.9 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss
time 3005ms
rtt min/avg/max/mdev = 14.8/15.0/15.2/0.2 ms
この結果から分かること:
- packet loss 0%:パケットロスなし=接続良好
- time:応答時間(一般的に50ms以下が良好)
- ttl:Time To Live(経由ルーター数の目安)
複数のテスト先での確認
異なるサーバーでのテスト
ping -c 3 8.8.8.8 # Google DNS
ping -c 3 1.1.1.1 # Cloudflare DNS
ping -c 3 208.67.222.222 # OpenDNS
複数のサーバーでテストすることで、特定のサーバーの問題なのか、自分の接続の問題なのかを判別できます。
DNS名前解決の確認
ドメイン名での接続テスト
名前解決を含むテスト
ping -c 4 google.com
成功時の出力例
PING google.com (142.250.207.14) 56(84) bytes of data.
64 bytes from nrt20s02-in-f14.1e100.net (142.250.207.14): icmp_seq=1 ttl=119 time=15.3 ms
失敗時の出力例
ping: google.com: Name or service not known
この場合、DNS設定に問題があります。
DNS専用確認コマンド
nslookupを使用
nslookup google.com
digを使用(より詳細)
dig google.com
hostコマンドを使用
host google.com
より高度な接続確認
curlによるHTTP/HTTPS接続確認
基本的なHTTP接続テスト
curl -I http://www.google.com
HTTPS接続テスト
curl -I https://www.google.com
詳細な接続情報を表示
curl -v https://www.google.com
成功時の出力例
HTTP/2 200
date: Wed, 01 Jul 2025 12:00:00 GMT
expires: -1
cache-control: private, max-age=0
content-type: text/html; charset=ISO-8859-1
wgetによる接続確認
ファイルダウンロードテスト
wget --spider https://www.google.com
--spider
オプションにより、実際にはダウンロードせずに接続のみテストします。
ネットワーク設定の詳細確認

インターフェース状態の確認
IPアドレス設定の確認
ip addrコマンド
ip addr show
ifconfigコマンド(従来方式)
ifconfig
確認すべきポイント
- インターフェースが UP 状態か
- 適切なIPアドレスが設定されているか
- サブネットマスクが正しいか
インターフェースの状態確認
リンク状態の確認
ip link show
出力例
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
重要な状態表示:
- UP:インターフェースがアクティブ
- LOWER_UP:物理的な接続が確立
- state UP:リンクが有効
ルーティング設定の確認
デフォルトゲートウェイの確認
ip routeコマンド
ip route
出力例
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
routeコマンド(従来方式)
route -n
ルーティングテーブルの詳細確認
全てのルーティングテーブル表示
ip route show table all
特定の宛先への経路確認
ip route get 8.8.8.8
DNS設定の確認と修復

DNS設定ファイルの確認
/etc/resolv.confの確認
現在のDNS設定表示
cat /etc/resolv.conf
正常な設定例
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com
systemd-resolvedの確認(現代的な方法)
systemd-resolved状態確認
systemd-resolve --status
DNS統計情報の確認
systemd-resolve --statistics
DNS問題のトラブルシューティング
DNS設定の一時的な変更
一時的なDNSサーバー設定
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
注意: この方法は一時的で、再起動やNetworkManager再起動で設定が戻る場合があります。
NetworkManagerでのDNS設定
現在の接続確認
nmcli connection show
DNS設定の変更
sudo nmcli connection modify "接続名" ipv4.dns "8.8.8.8,8.8.4.4"
sudo nmcli connection up "接続名"
高度なネットワーク診断

tracerouteによる経路確認
パケットの経路追跡
基本的なtraceroute
traceroute google.com
出力例
traceroute to google.com (142.250.207.14), 30 hops max, 60 byte packets
1 192.168.1.1 (192.168.1.1) 1.234 ms 1.123 ms 1.098 ms
2 10.0.0.1 (10.0.0.1) 15.234 ms 15.123 ms 15.098 ms
3 * * *
4 142.250.207.14 (142.250.207.14) 25.234 ms 25.123 ms 25.098 ms
mtr(My traceroute)による継続的な監視
リアルタイム監視
mtr google.com
mtrは traceroute + ping を組み合わせたツールで、継続的にパケットロスや遅延を監視できます。
ポート疎通確認
特定ポートの接続確認
netcatを使用
nc -zv google.com 80 # HTTP
nc -zv google.com 443 # HTTPS
telnetを使用
telnet google.com 80
nmap による詳細なポートスキャン
基本的なポートスキャン
nmap -p 80,443 google.com
よく使われるポートのスキャン
nmap google.com
ファイアウォール設定の確認

iptables による確認(従来方式)
現在のルール確認
すべてのルール表示
sudo iptables -L -n -v
特定のチェイン確認
sudo iptables -L OUTPUT -n -v
firewalld による確認(現代的な方式)
firewalld状態確認
サービス状態確認
sudo systemctl status firewalld
アクティブなゾーン確認
sudo firewall-cmd --get-active-zones
許可されているサービス確認
sudo firewall-cmd --list-all
ufw による確認(Ubuntu等)
ufw状態確認
sudo ufw status verbose
体系的なトラブルシューティング手順

ステップ1:基本接続の確認
# 1. インターフェース状態確認
ip addr show
# 2. 基本的な疎通確認
ping -c 4 8.8.8.8
# 3. ローカルネットワーク確認
ping -c 4 $(ip route | grep default | awk '{print $3}')
ステップ2:DNS動作確認
# 1. DNS設定確認
cat /etc/resolv.conf
# 2. 名前解決テスト
nslookup google.com
# 3. ドメイン名でのping
ping -c 4 google.com
ステップ3:アプリケーション層確認
# 1. HTTP接続確認
curl -I http://www.google.com
# 2. HTTPS接続確認
curl -I https://www.google.com
# 3. 詳細な接続情報
curl -v https://www.google.com
ステップ4:経路・セキュリティ確認
# 1. ルーティング確認
ip route
traceroute google.com
# 2. ファイアウォール確認
sudo iptables -L -n
# または
sudo firewall-cmd --list-all
よくある問題と解決方法
問題パターンと対処法
症状 | 考えられる原因 | 確認コマンド | 対処法 |
---|---|---|---|
ping 8.8.8.8 失敗 | 物理接続・ルーティング | ip link , ip route | ケーブル確認、ルート設定 |
IP疎通OK、名前解決NG | DNS設定 | cat /etc/resolv.conf | DNS設定修正 |
ping OK、curl NG | ファイアウォール | iptables -L | ファイアウォール設定 |
間欠的な接続断 | ネットワーク不安定 | mtr , ping -f | 回線品質調査 |
具体的な修復手順
DNS設定の修復
NetworkManager環境での修復
# 現在の設定確認
nmcli connection show
# DNS設定追加
sudo nmcli connection modify "System eth0" ipv4.dns "8.8.8.8,8.8.4.4"
sudo nmcli connection modify "System eth0" ipv4.ignore-auto-dns yes
# 設定適用
sudo nmcli connection up "System eth0"
ルーティング設定の修復
デフォルトルートの追加
# 現在のルート確認
ip route
# デフォルトルート追加
sudo ip route add default via 192.168.1.1
# 永続化(CentOS/RHEL系)
echo "GATEWAY=192.168.1.1" | sudo tee -a /etc/sysconfig/network
ネットワークサービスの再起動
NetworkManager環境
sudo systemctl restart NetworkManager
systemd-networkd環境
sudo systemctl restart systemd-networkd
sudo systemctl restart systemd-resolved
従来のnetworkサービス
sudo systemctl restart network
監視とログ分析

ネットワーク関連ログの確認
journalによるログ確認
NetworkManagerのログ
journalctl -u NetworkManager -f
systemd-resolvedのログ
journalctl -u systemd-resolved -f
従来のログファイル確認
ネットワーク関連ログ
tail -f /var/log/messages | grep -i network
syslogでの確認
tail -f /var/log/syslog | grep -E "(dhcp|network|dns)"
継続的な監視設定
pingによる継続監視
簡単な監視スクリプト
#!/bin/bash
while true; do
if ping -c 1 8.8.8.8 > /dev/null 2>&1; then
echo "$(date): Internet connection OK"
else
echo "$(date): Internet connection FAILED" >&2
fi
sleep 60
done
高度な監視設定
systemdサービスとしての監視
# /etc/systemd/system/network-monitor.service
[Unit]
Description=Network Connectivity Monitor
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/network-monitor.sh
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
まとめ
Linuxでのインターネット接続確認は、体系的なアプローチが効果的です。重要なポイントを整理すると:
基本的な確認手順
- 物理層確認:
ip link show
でインターフェース状態 - IP疎通確認:
ping 8.8.8.8
で基本接続 - DNS確認:
ping google.com
で名前解決 - アプリケーション確認:
curl -I
でHTTP/HTTPS接続
効率的なトラブルシューティング
- 段階的診断:下位層から上位層へ順次確認
- 複数手法の組み合わせ:ping、curl、traceroute等を使い分け
- ログ分析:systemdログや従来ログでの詳細調査
常用コマンドセット
基本確認
ip addr show # インターフェース状態
ip route # ルーティング確認
ping -c 4 8.8.8.8 # 基本疎通
ping -c 4 google.com # DNS動作確認
詳細調査
curl -I https://google.com # HTTP/HTTPS接続
traceroute google.com # 経路確認
dig google.com # DNS詳細確認
ss -tuln # ポート使用状況
トラブル対応
sudo systemctl restart NetworkManager # ネットワーク再起動
sudo iptables -L -n # ファイアウォール確認
journalctl -u NetworkManager # ログ確認
コメント