コンテンツへスキップ
🛠️ToolsShed

Netstat Commands Reference

Linux、macOS、Windows用のnetstatおよびssコマンドの完全なリファレンス(検索可能な例付き)です。

List all connections

netstat
netstat -a
ss (modern)
ss -a

List listening ports (TCP+UDP)

netstat
netstat -tuln
ss (modern)
ss -tuln

Show TCP connections

netstat
netstat -tn
ss (modern)
ss -tn

Show UDP connections

netstat
netstat -un
ss (modern)
ss -un

Show process PIDs

netstat
netstat -tulnp
ss (modern)
ss -tulnp

Linux/macOS may require root for PID visibility

Show routing table

netstat
netstat -r
ss (modern)
ip route

Show network statistics

netstat
netstat -s
ss (modern)
ss -s

Count connections by state

netstat
netstat -an | awk '{print $6}' | sort | uniq -c | sort -rn
ss (modern)
ss -tan | awk 'NR>1 {print $1}' | sort | uniq -c

Find process using a port

netstat
netstat -tulnp | grep :8080
ss (modern)
ss -tulnp | grep :8080

Replace 8080 with your port number

Show socket summary

netstat
netstat -i
ss (modern)
ss -i
ss はnetstatの最新の置き換えです。より高速で詳細な出力を提供します。Linuxシステムでのパフォーマンス向上に最適です。

このツールについて

NetstatとssはLinux、macOS、Windowsシステムでアクティブなネットワーク接続、ルーティングテーブル、インターフェイス統計、ソケット情報を表示するコマンドラインユーティリティです。Netstatは数十年間の伝統的な選択肢でしたが、ss(ソケット統計)はLinuxシステムの最新の代替品です—より高速で、より読みやすく、詳細なソケット状態情報を表示します。これらのツールを理解することは、接続の問題を診断し、どのアプリケーションがネットワークリソースを使用しているかを特定し、ポートアクティビティを監視し、予期しない接続とリッスンするサービスを追跡するネットワーク管理者にとって不可欠です。

このリファレンスガイドは、最も有用なnetstatおよびssコマンドをタスク別に整理しています。どのポートがリッスンしているか確認する、アクティブな接続を表示する、ネットワークアクティビティに関連するプロセスIDを見つける、トラフィックをプロトコル別に分析する、異なる状態のすべてのソケットをリストアップする、ネットワークインターフェイス統計を監視する、といったタスクを含みます。各コマンドは目的と典型的な出力形式とともに説明されているため、数十のフラグを暗記することなく、必要なとおりの構文を簡単に見つけることができます。検索可能な形式により、コマンド名、プロトコルタイプ、またはユースケース別に素早くフィルタリングできます—ハングしたサービスのトラブルシューティング、セキュリティのためのオープンポートの監査、またはスイッチの帯域幅消費の調査のいずれであっても。

システム管理者、DevOpsエンジニア、セキュリティプロフェッショナルは、システムネットワーク動作を理解し、ポート競合を検出し、サービスが適切にリッスンしていることを確認し、許可されていないネットワークアクセスを特定するためにこれらのコマンドを毎日使用しています。これらのツールを初めて使用する場合でも、正しい構文の迅速なリマインダーが必要な場合でも、このリファレンスは、特定のネットワーク診断またはモニタリングタスク用に即座にコピーして適応させることができる実用的な例を提供することで時間を節約します。

よくある質問

コード実装

import subprocess
import platform

def run_netstat(args: list[str]) -> str:
    """Run netstat command and return output."""
    try:
        result = subprocess.run(["netstat"] + args, capture_output=True, text=True, timeout=10)
        return result.stdout
    except FileNotFoundError:
        # Try ss on Linux if netstat not found
        if platform.system() == "Linux":
            result = subprocess.run(["ss"] + args, capture_output=True, text=True, timeout=10)
            return result.stdout
        return "netstat not found"

# Show all listening TCP ports
print("=== Listening TCP ports ===")
system = platform.system()
if system == "Linux":
    print(run_netstat(["-tlnp"]))   # or ss -tlnp
elif system == "Darwin":  # macOS
    print(run_netstat(["-an", "-p", "tcp"]))
elif system == "Windows":
    print(run_netstat(["-ano", "-p", "TCP"]))

# Parse listening ports
def get_listening_ports() -> list[dict]:
    """Parse ss output on Linux to get listening ports."""
    result = subprocess.run(["ss", "-tlnp"], capture_output=True, text=True)
    ports = []
    for line in result.stdout.splitlines()[1:]:
        parts = line.split()
        if len(parts) >= 4 and parts[0] == "LISTEN":
            ports.append({"state": parts[0], "local": parts[3], "process": parts[6] if len(parts) > 6 else ""})
    return ports

if system == "Linux":
    for p in get_listening_ports():
        print(p)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.