ネットワークデバッグコマンド
ipコマンド
ip は、従来の ifconfig コマンドを置き換えます。
| コマンド | 説明 |
|---|---|
ip link show | すべてのネットワークインターフェースを表示 |
ip addr show | IPアドレスを表示する |
ip -4 addr show | IPv4 アドレスのみを表示 |
ip -6 addr show | IPv6 アドレスのみを表示 |
ip route show | ルーティングテーブルを表示する |
ip route get 8.8.8.8 | 特定のIPへのルートを表示する |
sudo ip link set enp0s3 up | ネットワークインターフェースを有効にする |
sudo ip link set enp0s3 down | ネットワークインターフェースを無効にする |
sudo ip addr add 192.168.1.100/24 dev enp0s3 | IPを一時的に追加する |
sudo ip route add 10.0.0.0/8 via 192.168.1.1 | ルートを一時的に追加する |
ip neigh show | 近隣テーブルの表示 (ARP) |
ssコマンド
ss は、従来の netstat コマンドを置き換えます。フラグ: -t TCP、-u UDP、-l リスニング、-n 名前解決なし、-p プロセスを表示。
| コマンド | 説明 |
|---|---|
ss -tlnp | すべてのリスニングポートを表示 |
ss -tnp | すべての TCP 接続を表示 |
ss -ulnp | すべての UDP ポートを表示 |
ss -tlnp | grep :80 | 特定のポートを確認する |
ss -tlnp sport = :443 | ポート番号によるフィルター |
ss -s | 接続統計を表示する |
ss -tnp | grep process-name | プロセスのネットワーク接続を表示する |
ピング
| コマンド | 説明 |
|---|---|
ping -c 4 8.8.8.8 | 接続性をテストする |
ping -c 10 -i 0.5 -s 1400 target-IP | カウント、間隔、パケット サイズを指定する |
ping6 ::1 | IPv6 ping |
ping -c 1 -W 1 192.168.1.1 && echo "online" || echo "offline" | ホストのオンライン クイック チェック |
トレースルート / トレースパス
| コマンド | 説明 |
|---|---|
traceroute www.example.com | トレースルートパス |
sudo traceroute -I www.example.com | ICMPを使用したトレース |
sudo traceroute -T -p 80 www.example.com | TCP を使用したトレース (ファイアウォールの侵入) |
tracepath www.example.com | トレースルート (root は必要ありません) |
mtr www.example.com | ping +traceroute の組み合わせ (mtr-tiny をインストール) |
ディグ/nslookup
| コマンド | 説明 |
|---|---|
dig www.example.com | DNSルックアップ |
dig +short www.example.com | ショート出力 |
dig MX example.com | MX レコードのクエリ |
dig AAAA www.example.com | IPv6レコードのクエリ |
dig NS example.com | クエリネームサーバー |
dig TXT example.com | TXTレコードのクエリ |
dig @8.8.8.8 www.example.com | 特定のDNSサーバーを使用してクエリを実行する |
dig -x 8.8.8.8 | 逆引き |
nslookup www.example.com | 単純なDNSルックアップ |
nslookup www.example.com 8.8.8.8 | DNSサーバーを指定する |
カールする
| コマンド | 説明 |
|---|---|
curl https://www.example.com | GETリクエスト |
curl -I https://www.example.com | 応答ヘッダーを表示する |
curl -v https://www.example.com | 詳細な情報を表示する |
curl -o /dev/null -s -w "%{http_code}\n" https://www.example.com | HTTPステータスコードのみを表示 |
curl -X POST -d "key=value" https://api.example.com | POSTリクエスト |
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com | JSONポスト |
curl -O https://example.com/file.zip | ファイルをダウンロード (元の名前を維持) |
curl -o newname.zip https://example.com/file.zip | ダウンロードファイル(カスタム名) |
curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://www.example.com | 接続タイミングのテスト |
curl -x http://proxy:8080 https://www.example.com | 代理申請 |
ウィゲット
| コマンド | 説明 |
|---|---|
wget https://example.com/file.zip | ファイルをダウンロードする |
wget -c https://example.com/large-file.iso | 中断されたダウンロードを再開する |
wget -b https://example.com/large-file.iso | バックグラウンドダウンロード |
wget --limit-rate=1M https://example.com/file.zip | レート制限付きダウンロード |
ネットワークマネージャーコマンド
| コマンド | 説明 |
|---|---|
nmcli general status | 接続ステータスを確認する |
nmcli connection show | すべての接続を表示 |
nmcli device wifi list | Wi-Fi ネットワークをリストする |
nmcli device status | デバイスのステータスを表示する |
sudo systemctl restart NetworkManager | ネットワークを再起動する |
ファイアウォールのデバッグ
| コマンド | 説明 |
|---|---|
sudo ufw status verbose | UFWステータス |
sudo iptables -L -n -v | iptables ルール |
sudo nft list ruleset | nftables ルール |
総合的なトラブルシューティングの流れ
| ステップ | コマンド | 説明 |
|---|---|---|
| 1 | ip link show | インターフェイスが起動しているかどうかを確認する |
| 2 | ip addr show | IPアドレスを確認する |
| 3 | ip route show | ゲートウェイをチェックする |
| 4 | ping -c 2 gateway-IP | ゲートウェイ接続のテスト |
| 5 | ping -c 2 8.8.8.8 | インターネット接続をテストする |
| 6 | dig www.example.com | DNSをテストする |
| 7 | curl -I https://www.example.com | HTTPをテストする |