Убей TCP соединения на Mac в Терминале

9

Я просто хочу уничтожить определенное соединение tcp на моем mac (аналогично tcpkill в linux). По порту или IP, желательно порт, но я улажу. Я не хочу платить за услугу или загружать другое программное обеспечение, я хочу простую команду терминала, которая позволит мне делать это как tcpkill.

Я попытался исправить правила на своем брандмауэре и попытался создать скрипт bash, чтобы он работал, но безуспешно, потому что учебник, который я нашел, был очень старым.

Почему это кажется такой сложной задачей, чтобы найти информацию или сделать?

Aj Blank
источник

Ответы:

5

Опция 1

Вы можете установить tcpkill. Это часть пакета dsniff, который есть в MacPorts . Вы сказали, что не хотите устанавливать другое программное обеспечение. Тем не менее MacPorts действительно полезен, если вы работаете из командной строки. Я предлагаю вам проверить это.

Вариант 2

На StackOverflow есть соответствующая статья: Найти (и убить) процесс блокировки порта 3000 на Mac . Предлагаемое решение заключается в создании функции, которая уничтожает все соединения на определенном порту:

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

Если вы измените функцию, убрав аргумент, функция должна завершить работу всех приложений, имеющих открытое TCP-соединение.

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

Отказ от ответственности: я не проверял это.

Отказ от ответственности 2: Это метод грубой силы и может иметь некоторые серьезные побочные эффекты. Я бы рекомендовал против такого подхода.

Вольск
источник
Я нашел несколько бинарных файлов OS X для dsniff здесь (на случай, если вы не пользователь MacPorts) здесь: FWIW packages.macports.org/dsniff (очевидно, у homebrew нет рецепта для этого больше, на сегодняшний день)
rogerdpack
В homebrew/boneyardкране есть рецепт для домашнего приготовления .
D_4_ni
Существует разветвление dsniff, которое содержит рабочую tcpkillверсию: github.com/ggreer/dsniff
Майкл Беклинг