Unix/Linuxにおけるネットワーク系コマンド
🌐 はじめに
このページでは、Unix/Linuxにおけるネットワーク系コマンドを目的別に整理し、文法と実行例をコードブロック形式で掲載します。ネットワークトラブルの切り分け、接続確認、ファイル転送など、実務でも頻出の操作をスムーズにできるようになります。
🧭 ネットワーク情報の確認
ip
コマンド(ネットワークの全体像を把握)
文法:
ip [オプション] [サブコマンド]
例:
ip a # IPアドレス一覧(旧 ifconfig)
ip link # ネットワークインターフェース一覧
ip r # ルーティングテーブルの確認
hostname
, uname
, dnsdomainname
(システム識別情報)
文法:
hostname
uname [オプション]
dnsdomainname
例:
hostname # ホスト名の表示
uname -a # カーネルバージョンと詳細情報
dnsdomainname # ドメイン名の表示(空欄のことも多い)
📡 接続の確認と経路調査
ping
(疎通確認)
文法:
ping [オプション] 宛先ホスト
例:
ping google.com # google.com にパケットを送って応答を確認
ping -c 5 8.8.8.8 # 5回だけpingする
traceroute
(経路確認)
文法:
traceroute 宛先ホスト
例:
traceroute yahoo.co.jp
tracepath
コマンドでも同様の結果が得られます(非rootでもOK)
dig
, nslookup
, host
(DNS確認)
文法:
dig ドメイン名
nslookup ドメイン名
host ドメイン名
例:
dig google.com
nslookup example.com
host yahoo.co.jp
🧰 ポートと接続状況の監視
ss
(ソケットの状態確認)
文法:
ss [オプション]
例:
ss -tuln # TCP/UDPのリスニングポート一覧
ss -p # プロセスと対応づけて表示
lsof -i
(開いているポートの確認)
文法:
lsof -i[ポート or プロトコル指定]
例:
lsof -i # すべてのネットワーク接続
lsof -i :22 # 22番ポート(SSH)を使用しているプロセスを確認
tcpdump
(パケットキャプチャ)
文法:
tcpdump [オプション] [条件式]
例:
sudo tcpdump -i eth0 port 80 # eth0のHTTP通信をキャプチャ
🔄 ファイル転送とリモート接続
scp
(ファイルをリモートにコピー)
文法:
scp [オプション] 転送元 転送先
例:
scp file.txt user@remote:/home/user/
scp -r ./mydir user@host:/path/
rsync
(差分付きの効率的な転送)
文法:
rsync [オプション] ソース 宛先
例:
rsync -avz ./dir user@host:/remote/dir
curl
, wget
(HTTPアクセス・ファイル取得)
文法:
curl [オプション] URL
wget [オプション] URL
例:
curl https://example.com
wget https://example.com/sample.zip
🔐 SSH関連
ssh
(リモートログイン)
文法:
ssh [オプション] user@host
例:
ssh user@192.168.0.10
ssh -L 8080:localhost:80 user@host
ssh-keygen
(鍵ペアの生成)
文法:
ssh-keygen [オプション]
例:
ssh-keygen -t rsa -b 4096
🔍 その他の便利コマンド
nmap
(ポートスキャン)
文法:
nmap [オプション] 対象ホスト
例:
nmap 192.168.1.0/24 # サブネット内のポート調査
nc
(ポートの開閉を確認)
文法:
nc -zv ホスト ポート番号
例:
nc -zv 192.168.0.1 22
arp
, ip neigh
(近隣ホスト確認)
例:
arp -a
ip neigh
🏁 まとめ
以下のようにグループごとに覚えるのが効率的です:
分類 | 代表コマンド |
---|---|
接続確認 | ping , traceroute , dig |
接続状況確認 | ss , lsof , tcpdump |
ファイル転送 | scp , rsync , curl , wget |
リモート接続 | ssh , ssh-keygen , nmap , nc |
【情報】コマンドの使用時には権限(sudoの要否)とファイアウォールの影響も確認しましょう。
🛡️【おまけ】 sudoの要否まとめ
以下は、代表的なネットワーク系コマンドにおいて、通常ユーザーで実行可能か、sudo
が必要かをまとめた早見表です。
コマンド | 概要 | sudo 必要性 | 備考 |
---|---|---|---|
ip |
IP・ルーティング確認 | ❌ 不要(表示)✅ 一部必要(設定) | ip addr などの表示系は不要、ip link set などの設定は必要 |
hostname |
ホスト名の確認 | ❌ 不要 | hostnamectl set-hostname などは要sudo |
uname |
OS/カーネル情報 | ❌ 不要 | |
ping |
疎通確認 | ❌ 不要(Linux)✅ 要sudo(一部UNIX) | 一部UNIX環境ではroot権限が必要なことがある |
traceroute |
経路追跡 | ❌ 不要 | |
dig , host |
DNS確認 | ❌ 不要 | |
nslookup |
DNS確認(旧式) | ❌ 不要 | |
ss |
ソケット情報確認 | ❌ 不要(通常)✅ 一部オプションで必要 | -p オプションは root 権限が必要なことも |
lsof -i |
使用中ポートの確認 | ✅ 必要(実用レベルでは) | 他ユーザーのプロセスを調べるため |
tcpdump |
パケットキャプチャ | ✅ 必要 | ネットワークインターフェースへのアクセスに必要 |
scp |
ファイル転送 | ❌ 不要(通常)✅ 転送元/先がroot権限必要な場合 | |
rsync |
差分付き転送 | ❌ 不要(通常)✅ rootディレクトリ対象時 | |
curl , wget |
HTTPアクセス・取得 | ❌ 不要 | |
ssh |
リモートログイン | ❌ 不要 | |
ssh-keygen |
SSH鍵作成 | ❌ 不要 | |
nmap |
ポートスキャン | ✅ 要sudo(正確な結果のため) | 非特権ユーザーでも一部可能 |
nc |
手動接続確認 | ❌ 不要 | |
ip neigh , arp |
ARPキャッシュ確認 | ❌ 不要 |
この一覧があれば、「なぜか動かない!」の原因がsudo不足だったというありがちなトラブルを防げます。