Como posso editar / proc / net / tcp?

0

Eu preciso editar 1 linha em /proc/net/tcp enquanto o arquivo também é usado pelo kernel linux para atualizar outras linhas dele pelo kernel.

Plano de fundo: Cada linha em /proc/net/tcp representa um soquete TCP. O kernel usa esse arquivo para mostrar o estado e as estatísticas de cada soquete no sistema. Eu quero falsificar as estatísticas de 1 socket no sistema, porque eu estou capturando seu tráfego e passando-o diretamente para a placa de rede, sem o conhecimento do kernel.

    
por avner 21.04.2015 / 14:58

1 resposta

3

/proc/net/tcp não é um arquivo real, que pode ser editado. Cada vez que você lê, o kernel aloca um buffer temporário chamado arquivo seq , e grava estatísticas lá dos dados atuais no kernel.

Você só pode aceitar isso alterando o código em tcp4_seq_show() in net/ipv4/tcp_ipv4.c e funções subseqüentes.

Note que /proc/net/tcp é na verdade um link simbólico para /proc/self/net/tcp , então se você colocar seu processo em um namespace, ele não verá suas conexões.

    
por 21.04.2015 / 15:13