Eliminar conexiones TCP en una Mac en Terminal

9

Solo quiero matar una conexión tcp específica en mi mac (similar a tcpkill en linux). Por puerto o ip, preferiblemente puerto pero lo resolveré. No quiero pagar un servicio o descargar otro software, quiero el comando de terminal simple que me permitirá hacer esto como tcpkill.

Intenté arreglar las reglas en mi firewall e intenté hacer un script bash para que se ejecute, pero no tuve éxito porque el tutorial que encontré era muy antiguo.

¿Por qué parece ser una tarea tan difícil de encontrar o hacer?

Aj Blank
fuente

Respuestas:

5

Opción 1

Puedes instalar tcpkill. Es parte del paquete dsniff que se encuentra en MacPorts . Dijiste que no quieres instalar otro software. Sin embargo, MacPorts es realmente útil si trabaja desde la línea de comandos. Te sugiero que lo revises.

opcion 2

En StackOverflow hay una publicación relacionada: Buscar (y matar) el proceso de bloqueo del puerto 3000 en Mac . La solución sugerida es crear una función que elimine todas las conexiones en un puerto específico:

function killport() { lsof -i TCP:$1 | awk '/LISTEN/ {print $2}' | xargs kill -9 }

Si cambia la función quitando el argumento, la función debería eliminar todas las aplicaciones que tengan una conexión TCP abierta.

function killport() { lsof -i TCP | awk '/LISTEN/ {print $2}' | xargs kill -9 }

Descargo de responsabilidad: no he probado esto.

Descargo de responsabilidad 2: es un método de fuerza bruta y puede tener algunos efectos secundarios graves. Recomendaría contra este enfoque.

Volsk
fuente
Encontré algunos binarios de OS X para dsniff aquí (en caso de que no sea un usuario de MacPorts) aquí: FWIW packages.macports.org/dsniff (al parecer, homebrew ya no tiene una receta para ello)
rogerdpack
Hay una receta casera en el homebrew/boneyardgrifo.
D_4_ni
Hay un tenedor dsniff que contiene una tcpkillversión funcional : github.com/ggreer/dsniff
Michael Böckling