Когда я пытаюсь сбросить некоторый трафик на сетевой интерфейс моего vserver, я получаю сообщение об ошибке, что мне не разрешено это делать:
# tcpdump -p -i eth0
tcpdump: eth0: You don't have permission to capture on that device
(socket: Operation not permitted)
Я предполагаю, что проблема в том, что мой серверный провайдер, похоже, использует решение виртуализации с общим ядром Linux (uname возвращает «2.6.33.7-vs2.3.0.36.30.4-netcup» в качестве версии).
Любым способом, позволяющим мне сбрасывать исходящий трафик от одного процесса?
Вы можете попробовать использовать strace
команда для отслеживания системных вызовов, выполняемых вашим приложением. Что-то вроде этого:
strace -o trace -e trace=read,write -s 8192 /path/to/my/command
Это запустит /path/to/my/command
под контролем strace
. Он будет регистрировать все read
и write
системные вызовы (то есть не только сетевой трафик, но и любой другой ввод-вывод) в файл с именем trace
. Он будет регистрировать до 8192 символов для каждого вызова чтения / записи.
Это может помочь или не помочь в вашей текущей ситуации.