Привет, некоторые скриптовые дети ломают игровые серверы моих клиентов (которые основаны на Linux). Чтобы обеспечить лучший сервис, я ищу способ узнать, какие пакеты отправляют сбойщики, чтобы я мог заблокировать их позже.
Итак, мне нужна простая программа, которая будет регистрировать каждый пакет, отправленный или полученный / от серверного программного обеспечения от ВСЕХ клиентов. Как я уже сказал, программное обеспечение игрового сервера основано на Linux (Ubuntu 9.10), поэтому программа должна поддерживать Linux. Программное обеспечение игрового сервера не является открытым исходным кодом.
Спасибо.
На ум приходит Wireshark - или tshark для консольной версии. Оба должны быть доступны в репозиториях Karmic Koala.
Обратите внимание, что все трафик может означать десятки, сотни или тысячи Мб / сек, поэтому проверьте средний трафик вашего сервера и подготовьтесь к этому (данные должны храниться где-то, а НЕ в сети на том же интерфейсе (в противном случае вы будете генерировать бесконечную цикл данных)).
Изменить: как говорит @William, если сам игровой сервер вылетаетданные не могут быть записаны на диск вовремя; но в этом случае они могут даже не быть отправлены вовремя из другого сетевого интерфейса. На мой взгляд, это менее вероятно, чем просто сбой приложения, но если это так, я бы сделал следующее:
Поместите другой компьютер с двумя сетевыми картами перед вашим сервером, соедините их вместе и выполните захват на этом хосте в беспорядочном режиме (эти интерфейсы даже не должны иметь IP-адреса).
[game server[eth0]]------[[eth1]capturing computer[eth0]]-----[[eth1]your router, the Net etc]
Что я здесь делаю: захватывающий компьютер делает вид, что между вашим игровым сервером и маршрутизатором есть один сегмент сети (хотя физически их сейчас два). Таким образом, захватывающий компьютер будет видеть весь трафик между игровым сервером и маршрутизатором, но сам трафик TCP и UDP не изменяется. Теперь, даже если игровой сервер выйдет из строя, весь предыдущий трафик останется у вас.
Описанный метод может немного замедлить линию (поскольку захватывающий компьютер должен передавать пакеты туда и обратно), но если вы не имеете дело с гигабитной пропускной способностью, это не должно быть слишком заметно.
Вы можете использовать tcpdump для регистрации пакетов.
Опция, направленная на анализ трафика, может быть snort ( http://www.snort.org/).