3

Я делал это в мире Windows с помощью инструмента под названием TCPView: просто выберите установленное соединение (УСТАНОВЛЕНО), затем выберите "Закрыть соединение". Я не могу найти путь к этому на Mac OSX или Linux (мне нужны оба). Единственный известный мне способ - убить процесс, у которого открыт порт.

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

2 ответа2

2

Вы можете присоединить к вашему процессу, используя gdb, и close() файловый дескриптор, соответствующий соединению. Вы можете узнать номер дескриптора файла, используя lsof -a -i4 -p $PID .

1
  • tcpkill -i eth0 { expression }
    (основная команда / опции)

  • tcpkill -i eth0 port 21
    (Убить все исходящие соединения ftp (порт 21))

  • tcpkill host 192.168.1.2
    или же
    tcpkill host hostname.domainname.com
    (Убить все пакеты, поступающие на хост 192.168.1.2 или покидающие его)

  • tcpkill ip host 192.168.1.2 and not 192.168.1.111
    (Чтобы уничтожить все IP-пакеты между 192.168.1.2 и любым хостом, кроме 192.168.1.111)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .