linuxが入ったPCを使っていたり、新しくサーバを立ち上げたときなど、突然「あれ?ネットにつながらない」「SSH接続できない」といったトラブルは日常茶飯事です。
そんな時、「どこに原因があるのか」を切り分けるために使うのが、今回紹介する ip と ping コマンドです。 「内側(自分の設定)」を確認する ip と、「外側(通信相手)」を確認する ping。この2つがあれば、ネットワークトラブルの8割は原因を特定できます。
前回記事 shutdown
前回は、マシンの電源を安全に切る・再起動する shutdown / reboot コマンドについて解説しました。
指定された記事(ID: 3597)は現在公開されていません。
ip コマンド:自分の「住所」を確認する
まずは、自分のマシンが正しいネットワーク設定になっているかを確認します。 昔は ifconfig というコマンドが使われていましたが、現在は ip コマンド が標準(推奨)です。
基本構文
ipコマンドの使い方はシンプルです。addr(addressの略)または a を付けます。
ip addrまたは、
ip a出力の見方
コマンドを打つとズラッと情報が出てきますが、見るべきポイントは決まっています。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
inet 127.0.0.1/8 scope host lo ...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic eth0 ...lo (Loopback): 自分自身を表す特別なインターフェースです。ここはあまり気にしなくてOK。
eth0 / enp3s0 など: これが実際のネットワークカード(LANポート)です。
inet: ここの後ろにある数字(例: 192.168.1.15)が、あなたのマシンの IPv4アドレス です。ここが表示されていれば、少なくともルーターから住所(IP)はもらえています。
UP: インターフェースの状態です。「UP」ならケーブルが刺さっていて稼働中。「DOWN」なら物理的な結線や設定を疑いましょう。
小話:ifconfig vs ip
古い環境を使っていた経験があると、手癖でつい ifconfig と打ってしまいがちです。「Command not found」と怒られて、「ああ、そうだった……時代は変わったんだった」と哀愁を感じながら ip a を打ち直すのは、Linuxエンジニアの通過儀礼のようなものです。
なぜ変わったのか? 実は ifconfig が含まれる net-tools パッケージは長らくメンテナンスが止まっており、Linuxカーネルの進化に追いつけなくなったからです。対して ip コマンド(iproute2 パッケージ)は多機能で処理も高速。
とはいえ、ifconfig の出力は見やすくて人気があります。もし使いたい場合は以下でインストール可能です。
# (誤入力防止用に$をつけてあるので、消して実行してください)
$ sudo apt install net-tools
$ ifconfig推奨の ip も使えるようになっておきつつ、自分の環境で使いやすい方を選択するのが賢いですね。
ip コマンド主要なオプション
-s : 詳細を確認する
-s (statistics/統計) オプションです。
アップロードとダウンロードの通信量の確認などができます。
ip -s a
# または 通信量を確認したいなら
# ip -s link※ ip -s a でも表示されますが、link の方が通信量の確認にはすっきりして見やすい場合があります。
出力の見方:RXとTXに注目
実行すると、以下のような少し複雑な数値が表示されます。
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
RX: bytes packets errors dropped overrun mcast
15493204 12432 0 0 0 0
TX: bytes packets errors dropped carrier collsns
849201 842 0 0 0 0ここで注目すべきは RX と TX の行です。
- RX (Receive): 受信データ(ダウンロード)。
RX: bytesの下の数字が増えていれば、データを受け取れています。
- TX (Transmit): 送信データ(アップロード)。
TX: bytesの下の数字が増えていれば、データを送れています。
トラブルシューティング:「errors」を見る
もし「ネットが遅い」「プツプツ切れる」という場合、この出力にある errors や dropped の数字を見てください。
- ここが 0 なら正常です。
- もしここが 増え続けている なら、設定の問題ではなく、「LANケーブルが断線しかけている」「ハブが壊れている」 といった物理的なトラブルの可能性が高いです。
「dropped」って何?
インターネットの世界は「ベストエフォート(Best Effort)」という考え方で動いています。「できるだけ頑張って届けるけど、無理だったらごめんね」というルールです。
もし、この dropped の数字が増えていたら、それはあなたのPCが「通信がたくさん来すぎて、処理しきれずに捨ててしまった(忙しすぎてパンクした)」ことを意味します。 PCの性能不足や、何らかの攻撃を受けている可能性のヒントになります。
-c : 見やすく色づけする
そのままだと白黒でちょっと見づらいですよね。そんな時は -c (color) オプションをつけましょう。
ip -c aこれだけでIPアドレス部分が強調表示され、視認性が劇的に向上します。ぜひ試してみてください。
ping コマンド:相手に「声」が届くか確認する
自分の状態(IP、通信量)が確認できたら、次は「外の世界」と繋がっているか確認します。そこで使うのが ping(ピン / ピング) です。
基本構文
ping [相手のIPアドレス または ドメイン名]1. ipアドレスで確認してみよう
例えば、GoogleのパブリックDNS(8.8.8.8)に対して打ってみましょう。
ping 8.8.8.8(初心者用メモ:無限に出るときはctrl + c で停止できます)
2. ドメイン名で確認してみよう
普段インターネットをする時、数字のIPアドレスではなく「google.com」のようなドメイン名を使いますよね。ping もドメイン名で実行できます。 ここでは、回数を指定する -c (count) オプションを使って、5回だけ確認してみましょう。
ping google.com -c 5正常であれば、以下のように応答が返ってきます。
64 bytes from ... time=14.2 ms
...
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, ...これで「0% packet loss」なら、通信はバッチリです。
トラブルシューティング:自身のerror?or DNSが原因?
もしトラブルが起きた時、以下の2つを順番に試してみてください。
- IPアドレスで打つ (
ping 8.8.8.8) → 成功! - ドメイン名で打つ (
ping google.com) → 失敗… (“Temporary failure in name resolution” 等のエラー)
もしこのパターンになった場合、「インターネット回線そのものは繋がっているけれど、DNS(ドメインからipに読み替えてくれるサーバ)が壊れている」 ことが確定します。
まとめ
ip a: 自分の住所(IPアドレス)を確認する。inetの後ろを見る。ping [相手]: 通信できるか確認する。※ Ctrl + C: 無限に続くpingを強制停止する
これで、「自分の場所」と「相手との道」が確認できました。
次回へ
これで、「自分の場所」と「相手との道」が確認できました。
「IPはある、Pingも通る、でもWebサイトが見られない……」そんな時は、名前解決(DNS)に問題があるかもしれません。
次は nslookup コマンドを使って、ドメイン名とIPアドレスの変換(名前解決)について学んでいきましょう。
【nslookup】DNSの確認コマンド【Linuxコマンド入門 Part3-11】
Linuxでのnslookupコマンドの使い方と、DNS(名前解決)の仕組みを初心者向けに解説。基本のIPアドレス確認から、特定のDNSサーバーを指定するオプション、メール設定(MXレコード)の確認まで。ネットワークトラブルの原因特定に必須のスキルです。
第三回”Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~”では、linuxでどのようにCPUやメモリの状態を確認するか、ネットワークとの接続チェックなどの基本操作を解説しています。
13 記事
Linuxコマンド入門 Part3 ~システムの状態確認とネットワークの基本~
Linuxのシステム管理コマンドや基本的なネットワーク関係コマンドを理解しよう。
ここまで読んでいただきありがとうございます。
では、次の記事で。 lumenHero