nsntrace — инструмент для захвата трафика нужного приложения в Linux.
С помощью создания виртуальных интерфейсов и отдельного сетевого пространства имён, nsntrace запускает нужное нам приложение, и выполняет трассировку трафика только для него используя libpcap. Результат работы может быть либо перенаправлен в другое приложение, либо в файл, который можно будет прочитать любой стандартной утилитой, умеющей работать с pcap.
1. Ставим nsntrace из репозитория:
# apt install nsntrace # dnf install nsntrace
2. Пробуем выполнить захват трафика для обычного wget, который обращается к сайту. По-умолчанию, дамп будет иметь имя nsntrace.pcap:
# nsntrace --use-public-dns wget -q -O /dev/null https://sysadmin.pm/ Starting network trace of 'wget' on interface enp1s0. Your IP address in this trace is 172.19.28.255. Use ctrl-c to end at any time. Finished capturing 131 packets.
Аналогично для PHP скрипта, например:
# nsntrace php -f index.php Starting network trace of 'php' on interface enp1s0. Your IP address in this trace is 172.19.213.255. Use ctrl-c to end at any time. Finished capturing 52 packets.
3. Работаем с дампом привычной утилитой, в данном случае tcpick:
# tcpick -r nsntrace.pcap Starting tcpick 0.2.1 at 2023-04-28 12:28 MSK Timeout for connections is 600 tcpick: reading from nsntrace.pcap 1 SYN-SENT 172.19.28.255:40638 > 104.244.78.134:https 1 SYN-RECEIVED 172.19.28.255:40638 > 104.244.78.134:https 1 ESTABLISHED 172.19.28.255:40638 > 104.244.78.134:https 1 FIN-WAIT-1 172.19.28.255:40638 > 104.244.78.134:https 1 FIN-WAIT-2 172.19.28.255:40638 > 104.244.78.134:https 1 RESET 172.19.28.255:40638 > 104.244.78.134:https tcpick: done reading from nsntrace.pcap 131 packets captured 1 tcp sessions detected
Собрать nsntrace из исходников, при необходимости можно так:
# apt install automake docbook-xml docbook-xsl iptables libnl-route-3-dev libpcap-dev pkg-config xsltproc git make gcc # git clone https://github.com/nsntrace/nsntrace # cd nsntrace/ # ./autogen.sh # ./configure # make
Github проекта: https://github.com/nsntrace/nsntrace