ネットワーク接続の確認、設定、診断などを行うコマンドです。
指定したホストとの接続を確認します。
オプション | 説明 |
---|---|
-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アドレスのみを表示