Я хочу отслеживать сетевую активность команды, я безуспешно пробовал tcpdump и strace.
Например, если я устанавливаю пакет или использую какую-либо команду, которая пытается получить доступ к какому-либо сайту, я хочу просмотреть эту сетевую активность (сайт, к которому она пытается обратиться).
Я думаю, что мы можем сделать это с помощью tcpdump. Я пытался, но он отслеживает всю сетевую активность моей системы. Скажем, если я запускаю несколько команд, связанных с сетью, и хочу отслеживать только конкретные действия командных сетей, то в это время трудно найти точное решение.
Есть способ сделать это?
ОБНОВИТЬ:
Я не хочу отслеживать все, что происходит на моем сетевом интерфейсе. Я просто хочу отслеживать сетевую активность команды (например, #yum install -y vim). Например, сайт пытается достичь.
Ответы:
netstat для простоты
Использование
netstat
и поиск PID или имени процесса:И вы можете использовать
watch
для динамических обновлений:С:
-n
: Показать числовые адреса вместо того, чтобы пытаться определить символические имена хоста, порта или пользователя-p
: Показать PID и название программы, к которой принадлежит каждый сокет.--inet
: Показывать только необработанные сокеты, протоколы TCP и TCP.приступить к многословию
Вы сказали, что пробовали
strace
инструмент, но пробовали ли вы вариантtrace=network
? Обратите внимание, что вывод может быть довольно подробным, поэтому вам может потребоваться некоторая опечатка. Вы можете начать с поиска "sin_addr".Или, для уже запущенного процесса, используйте PID:
источник
netstat
которого ИМХО самое простое и изящное решение.strace
вывод еще немного, сохранив толькоconnect
системные вызовы и удаливdns
запросы (порт 53) с помощью:| grep connect | grep -v 'sin_port=htons(53)'
Я создал бы новое сетевое пространство имен , связал бы его с реальной сетью, а затем контролировал бы мост
tcpdump
.источник
sysdig
позволяет вам отслеживать всю активность ядра или нескольких команд, запущенных в вашей системе, в том числе и не ограничиваясь сетевой активностью.Поскольку выходные данные могут быть большими, вам нужно создать фильтры, страница по умолчанию для большинства основных фильтров вполне понятна.
Он также имеет то преимущество, что его не используют в качестве оболочки приложения
strace
, и он может быть довольно мощным.Из примеров Sysdig
источник
Вы можете использовать wireshark, чтобы прослушивать весь входной и выходной трафик сетевого интерфейса. Если вам нужна опция без графического интерфейса, вы можете использовать tshark.
С обоими вариантами вы можете увидеть весь сетевой трафик и сохранить его для последующего анализа всех установленных соединений.
источник