Eu costumava fazer isso no mundo Windows com uma ferramenta chamada TCPView: basta selecionar uma conexão estabelecida (ESTABELECIDA) e selecionar "Fechar Conexão". Não consigo encontrar uma maneira de fazer isso no Mac OSX ou Linux (preciso de ambos). A única maneira que conheço é encerrar o processo que está com a porta aberta.
Meu principal caso de uso é simular interrupções na conectividade para testar o failover, como desconectar um cabo ou perder um roteador ou situações de middleware.
Responder1
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
.
Responder2
tcpkill -i eth0 { expression }
(comando/opções básicas)tcpkill -i eth0 port 21
(Elimine todas as conexões FTP de saída (porta 21))tcpkill host 192.168.1.2
ou
tcpkill host hostname.domainname.com
(Elimina 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 eliminar todos os pacotes IP entre 192.168.1.2 e qualquer host, exceto 192.168.1.111)