$ echo “hello” > /dev/tcp/192.168.2.101/58549
$ echo “hello” > /dev/udp/192.168.2.101/58549
Где udp/tcp - тип протокола, 192.168.2.101 - ip-адрес получателя, 58549 - порт.
Если требуется что-то посерьёзней - можно воспользоваться утилитой sendip
$ echo “hello” > /dev/tcp/192.168.2.101/58549
$ echo “hello” > /dev/udp/192.168.2.101/58549
$ export HISTFILE=/dev/null
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' <application>
Пример для tcpdump:$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/tcpdump
Посмотреть разрешения для программы можно с помощью getcap, например:
$ getcap /usr/sbin/tcpdump
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip
В Debian утилита setcap предоставляется пакетом libcap2-bin
compress_savefile:execlp(myscript.sh, dump-2012-11-13-1148): Permission denied
Что с этим делать? И ни в какую не работает, даже из-под рута... Ответ нашёлся в рассылке wireshark: проблема специфична для Ubuntu из-за соответствующего правила (профиля) AppArmor. sudo grep tcpdump /sys/kernel/security/apparmor/profiles
/usr/sbin/tcpdump (enforce)
sudo aa-complain /usr/sbin/tcpdump
Вуаля! Усё работает!