Netstat Commands Reference
Полный справочник команд netstat и ss для Linux, macOS и Windows с доступными по поиску примерами.
List all connections
netstat -ass -aList listening ports (TCP+UDP)
netstat -tulnss -tulnShow TCP connections
netstat -tnss -tnShow UDP connections
netstat -unss -unShow process PIDs
netstat -tulnpss -tulnp⚠ Linux/macOS may require root for PID visibility
Show routing table
netstat -rip routeShow network statistics
netstat -sss -sCount connections by state
netstat -an | awk '{print $6}' | sort | uniq -c | sort -rnss -tan | awk 'NR>1 {print $1}' | sort | uniq -cFind process using a port
netstat -tulnp | grep :8080ss -tulnp | grep :8080⚠ Replace 8080 with your port number
Show socket summary
netstat -iss -iОб этом инструменте
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.