Eu quis dizer "aplicativo" no sentido de "o que você quer fazer com ele".
Se você quiser monitorar o tráfego de rede de algo complicado, que potencialmente tem vários processos e threads, eu definitivamente recomendaria colocá-lo em um namespace de rede, fazer um veth-pair no namespace principal e, em seguida, apenas capturar o par veth com wireshark etc.
Aqui está um script que tem como ponto de partida:
#!/bin/bash
# Setup network namespace with veth pair, start xterm in it
# nsterm ns0 veth0 10.0.0 yellow 24
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
NS=${1:-ns0}
DEV=${2:-veth0}
DEV_A=${DEV}a
DEV_B=${DEV}b
ADDR=${3-:10.0.0}
ADDR_A=${ADDR}.254
ADDR_B=${ADDR}.1
MASK=${5:-24}
COL=${4:-yellow}
# echo ns=$NS dev=$DEV col=$COL mask=$MASK
ip netns add $NS
ip link add $DEV_A type veth peer name $DEV_B netns $NS
ip addr add $ADDR_A/$MASK dev $DEV_A
ip link set ${DEV}a up
ip netns exec $NS ip addr add $ADDR_B/$MASK dev $DEV_B
ip netns exec $NS ip link set ${DEV}b up
ip netns exec $NS ip route add default via $ADDR_A dev $DEV_B
ip netns exec $NS su -c "xterm -bg $COL &" USERNAME
Substitua USERNAME
pelo seu usuário, execute como root
nsterm ns0 veth0 10.0.0 yellow
e você obtém 10.0.0.1/24
no namespace ns0
, 10.0.0.254/24
no namespace da rede principal e um xterm amarelo onde você pode iniciar programas como o skype, firefox, chrome.
No namespace principal, você precisa ativar o encaminhamento e o mascaramento, digamos para wlan0
:
echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Em seguida, tcpdump -i veth0a
ou wireshark.