メインコンテンツへスキップ

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不足だったというありがちなトラブルを防げます。