Wireshark vem à mente - ou tshark para a versão console. Ambos devem estar disponíveis nos repositórios Karmic Koala.
Observe que o tráfego all pode significar dezenas, centenas ou milhares de Mb / s, portanto verifique o tráfego médio do servidor e prepare-se para isso (os dados precisam ser armazenados em algum lugar, NÃO em uma rede na mesma interface (caso contrário, você estará gerando um loop infinito de dados)).
Editar: Como o @William diz, se o próprio servidor do jogo estiver travando , os dados podem não ser gravados no disco a tempo; mas nesse caso, eles podem nem ser enviados de outra interface de rede no tempo. Na minha opinião, isso é menos provável do que apenas a falha do aplicativo, mas se for o caso, eu faria isso:
Coloque outro computador com duas NICs na frente do seu servidor, junte-as e capture no host em modo promíscuo (essas interfaces nem precisam ter um endereço IP).
[game server[eth0]]------[[eth1]capturing computer[eth0]]-----[[eth1]your router, the Net etc]
O que estou fazendo aqui: o computador de captura finge que há um único segmento de rede entre o servidor do jogo e o roteador (embora, fisicamente, haja dois). Portanto, o computador de captura verá todo o tráfego entre o servidor do jogo e o roteador, mas o tráfego TCP e UDP em si não é alterado. Agora, mesmo que o servidor do jogo falhe, você ainda terá todo o tráfego precedente.
O método descrito pode retardar um pouco a linha (já que o computador de captura precisa fazer a ponte entre os pacotes), mas, a menos que você esteja lidando com uma taxa de transferência gigabit, isso não deve ser perceptível.