본문으로 건너뛰기
🛠️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.