como fechar uma conexão de rede estabelecida no linux e osx

3

Eu costumava fazer isso no mundo do Windows com uma ferramenta chamada TCPView: basta selecionar uma conexão estabelecida (ESTABLISHED) e, em seguida, selecionar "Fechar conexão". Não consigo encontrar uma maneira para isso no Mac OSX ou Linux (eu preciso de ambos). A única maneira que conheço é matar o processo que tem a porta aberta.

Meu principal caso de uso é simular interrupções na conectividade para testar o failover, como desconectar um cabo ou perder uma situação de roteador ou middleware.

    
por Rodrigo Gonzalez 26.02.2013 / 15:21

2 respostas

2

Você pode anexar ao seu processo usando gdb e close() o descritor de arquivo correspondente à conexão. Você pode descobrir o número do descritor de arquivo usando lsof -a -i4 -p $PID .

    
por 26.02.2013 / 15:41
1
  • tcpkill -i eth0 { expression }
    (comando básico / opções)

  • tcpkill -i eth0 port 21
    (Mate toda a conexão de ftp (porta 21) de saída)

  • tcpkill host 192.168.1.2
    ou tcpkill host hostname.domainname.com
    (Mate todos os pacotes que chegam ou partem do host 192.168.1.2)

  • tcpkill ip host 192.168.1.2 and not 192.168.1.111
    (Para matar todos os pacotes IP entre 192.168.1.2 e qualquer host exceto 192.168.1.111)

por 18.01.2014 / 12:39