ネットワーク接続の確認、設定、診断などを行うコマンドです。
指定したホストとの接続を確認します。
| オプション | 説明 |
|---|---|
| -c N | N回のみpingを送信して終了 |
| -i N | N秒間隔でpingを送信 |
| -s N | パケットサイズをNバイトに設定 |
| -t N | TTL(Time To Live)値をNに設定 |
| -w N | タイムアウト時間をN秒に設定 |
例:
ping google.com - Googleのサーバーに継続的にpingを送信ping -c 5 192.168.1.1 - 指定したIPアドレスに5回pingを送信ping -i 2 -c 10 example.com - 2秒間隔で10回pingを送信ping -c 5 google.com | grep "time=" - 応答時間のみを表示ping -c 10 google.com | grep "time=" | awk '{print $7}' | cut -d "=" -f 2 - 応答時間の数値のみを抽出ping -c 5 google.com | tail -1 | awk '{print $4}' | cut -d '/' -f 2 - 平均応答時間を抽出for ip in 192.168.1.{1..10}; do ping -c 1 -W 1 $ip | grep "from" && echo "$ip is up"; done - 複数のIPアドレスに対してpingを実行ping -c 5 -q google.com | grep "packet loss" | awk '{print $6}' - パケットロス率を抽出ping -c 1 -W 1 google.com > /dev/null 2>&1 && echo "Internet is up" || echo "Internet is down" - インターネット接続を確認ping -c 5 -s 1500 google.com - 大きなパケットサイズでMTUを確認ping -c 5 google.com | tee ping_results.txt - 結果をファイルに保存しながら表示
ネットワークインターフェースの情報を表示したり、設定したりします。
注: 最近のLinuxディストリビューションではipコマンドが推奨されています。
| 構文/オプション | 説明 |
|---|---|
| ifconfig | すべてのアクティブなインターフェースの情報を表示 |
| ifconfig -a | すべてのインターフェース(非アクティブも含む)の情報を表示 |
| ifconfig [interface] | 特定のインターフェースの情報を表示 |
| ifconfig [interface] up/down | インターフェースを有効化/無効化 |
| ifconfig [interface] [ip] netmask [mask] | IPアドレスとネットマスクを設定 |
例:
ifconfig - すべてのアクティブなネットワークインターフェースの情報を表示ifconfig eth0 - eth0インターフェースの情報を表示sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 - eth0にIPアドレスとネットマスクを設定ifconfig | grep -A 1 "inet " - すべてのインターフェースのIPv4アドレスを表示ifconfig | grep -o -E 'inet ([0-9]{1,3}\.){3}[0-9]{1,3}' | cut -d' ' -f2 - IPアドレスのみを抽出ifconfig | grep "ether" | awk '{print $2}' - すべてのインターフェースのMACアドレスを抽出ifconfig eth0 | grep "RX packets" | awk '{print "Received: " $3 " packets, " $5 " bytes"}' - 受信パケット数とバイト数を整形して表示ifconfig eth0 | grep "TX packets" | awk '{print "Transmitted: " $3 " packets, " $5 " bytes"}' - 送信パケット数とバイト数を整形して表示for i in $(ifconfig | grep -o '^[a-zA-Z0-9]*:' | sed 's/://'); do echo "===$i==="; ifconfig $i | grep "inet "; done - 各インターフェースのIPアドレスを整形して表示ifconfig | grep "mtu" | awk '{print $1, "MTU:", $NF}' - 各インターフェースのMTU値を表示ifconfig eth0 | grep "errors" | awk '{print "RX errors: " $3 ", TX errors: " $7}' - 送受信エラー数を表示
IPアドレス、ルーティング、ネットワークデバイスなどを設定・管理します。
| サブコマンド | 説明 |
|---|---|
| ip addr | IPアドレスの表示・設定 |
| ip link | ネットワークインターフェースの表示・設定 |
| ip route | ルーティングテーブルの表示・設定 |
| ip neigh | ネイバーテーブル(ARPテーブル)の表示・設定 |
| ip tunnel | トンネルの表示・設定 |
例:
ip addr show - すべてのインターフェースのIPアドレス情報を表示ip link set eth0 up - eth0インターフェースを有効化ip route show - ルーティングテーブルを表示sudo ip addr add 192.168.1.100/24 dev eth0 - eth0にIPアドレスを追加
ネットワーク接続、ルーティングテーブル、インターフェース統計などを表示します。
注: 最近のLinuxディストリビューションではssコマンドが推奨されています。
| オプション | 説明 |
|---|---|
| -a | すべての接続を表示(リッスン中のソケットを含む) |
| -t | TCP接続のみを表示 |
| -u | UDP接続のみを表示 |
| -n | ホスト名、ポート名、ユーザー名を数値で表示 |
| -p | 接続に関連するプロセスIDとプログラム名を表示 |
| -r | ルーティングテーブルを表示 |
| -i | ネットワークインターフェースの統計を表示 |
例:
netstat -tuln - リッスン中のTCPとUDPポートを数値で表示netstat -anp - すべての接続とそれに関連するプロセスを表示netstat -r - ルーティングテーブルを表示
ソケット統計を表示します。netstatの代替として使用されます。
| オプション | 説明 |
|---|---|
| -a | すべてのソケットを表示(リッスン中のソケットを含む) |
| -t | TCPソケットのみを表示 |
| -u | UDPソケットのみを表示 |
| -n | ホスト名、ポート名を数値で表示 |
| -p | ソケットに関連するプロセスを表示 |
| -l | リッスン中のソケットのみを表示 |
| -i | 内部TCPの情報を表示 |
例:
ss -tuln - リッスン中のTCPとUDPポートを数値で表示ss -anp - すべてのソケットとそれに関連するプロセスを表示ss -i - 内部TCPの情報を表示
HTTPやFTPなどのプロトコルを使用してファイルをダウンロードします。
| オプション | 説明 |
|---|---|
| -O [file] | ダウンロードしたファイルを指定した名前で保存 |
| -c | 部分的にダウンロードしたファイルの続きからダウンロード |
| -b | バックグラウンドでダウンロード |
| -r | 再帰的にダウンロード |
| -P [dir] | ファイルを指定したディレクトリに保存 |
| --limit-rate=[rate] | ダウンロード速度を制限(例: 200k) |
例:
wget https://example.com/file.zip - ファイルをダウンロードwget -O output.zip https://example.com/file.zip - ファイルを指定した名前で保存wget -c https://example.com/large-file.iso - 中断したダウンロードを再開
様々なプロトコルを使用してデータを送受信します。
| オプション | 説明 |
|---|---|
| -o [file] | 出力を指定したファイルに保存 |
| -O | リモートファイルと同じ名前で保存 |
| -L | リダイレクトに従う |
| -I, --head | HTTPヘッダーのみを取得 |
| -X [method] | HTTPリクエストメソッドを指定(GET, POST, PUT, DELETEなど) |
| -d, --data [data] | POSTデータを送信 |
| -H [header] | HTTPヘッダーを指定 |
例:
curl https://example.com - ウェブページの内容を表示curl -o page.html https://example.com - ウェブページを指定したファイルに保存curl -I https://example.com - HTTPヘッダーのみを取得curl -X POST -d "name=value" https://example.com/api - POSTリクエストを送信curl -s https://example.com | grep "title" | sed 's/<[^>]*>//g' - ウェブページからタイトルを抽出してHTMLタグを削除curl -s https://api.github.com/users/username | jq '.name, .location' - GitHub APIからJSONデータを取得して特定のフィールドを抽出curl -u username:password https://example.com/protected - Basic認証を使用してアクセスcurl -H "Authorization: Bearer token123" https://api.example.com - Bearer認証トークンを使用してAPIにアクセスcurl -F "file=@document.pdf" https://example.com/upload - ファイルをアップロード(multipart/form-data)curl -s -w "\nHTTP Status: %{http_code}\nTotal time: %{time_total}s\n" https://example.com -o /dev/null - パフォーマンス統計を表示curl --limit-rate 200K https://example.com/large-file.iso -o large-file.iso - ダウンロード速度を制限for i in {1..5}; do curl -s -o /dev/null -w "%{http_code}\n" https://example.com; done - 複数回リクエストを送信してHTTPステータスコードを確認curl -s -L https://bit.ly/shorturl - リダイレクトに従ってショートURLの最終的な宛先を取得
パケットが目的地に到達するまでの経路を表示します。
| オプション | 説明 |
|---|---|
| -n | IPアドレスを名前解決せずに表示 |
| -w [seconds] | 応答を待つ時間を指定 |
| -m [max_ttl] | 最大TTL(ホップ数)を指定 |
| -p [port] | 使用するポート番号を指定 |
例:
traceroute google.com - Googleサーバーまでの経路を表示traceroute -n 8.8.8.8 - 名前解決せずに経路を表示traceroute -m 15 example.com - 最大15ホップまでの経路を表示traceroute -T -p 443 example.com - TCPトレースルートをポート443で実行traceroute -I example.com - ICMPプロトコルを使用してトレースルートtraceroute -4 example.com - IPv4のみを使用してトレースルートtraceroute -w 1 example.com - 応答待ち時間を1秒に設定(高速化)traceroute example.com | grep -v "\*\*\*" - タイムアウトしたホップを除外traceroute example.com | awk '{print $2}' - ホップのIPアドレスまたはホスト名のみを抽出traceroute -q 1 example.com | grep -v "\*" | awk '{print $2}' | xargs -n 1 whois | grep "Country" - 経路上のIPアドレスの国情報を表示for ip in 8.8.8.8 1.1.1.1; do echo "=== $ip ==="; traceroute -n -w 1 $ip | tail -n +2 | head -n 5; done - 複数の宛先への最初の5ホップを比較traceroute example.com 2>&1 | tee traceroute_$(date +%Y%m%d_%H%M%S).log - トレースルート結果をタイムスタンプ付きのログファイルに保存
ドメイン名やIPアドレスのDNS情報を取得します。
| コマンド/オプション | 説明 |
|---|---|
| nslookup [domain] | ドメインのIPアドレスを取得 |
| nslookup -type=[record_type] [domain] | 特定のDNSレコードタイプを取得(MX, NS, SOAなど) |
| dig [domain] | ドメインのDNS情報を詳細に取得 |
| dig [domain] [record_type] | 特定のDNSレコードタイプを取得 |
| dig +short [domain] | 簡潔な結果のみを表示 |
例:
nslookup google.com - GoogleのIPアドレスを取得nslookup -type=MX example.com - ドメインのメールサーバー情報を取得dig google.com - GoogleのDNS情報を詳細に取得dig example.com MX - ドメインのメールサーバー情報を取得dig +short example.com - IPアドレスのみを表示