- Linux закрыть сетевое соединение
- Убить tcp соединение в linux
- unixforum.org
- как закрыть соединение
- как закрыть соединение
- Re: как закрыть соединение
- Re: как закрыть соединение
- Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи
- Рабочий метод разрыва конкретного активного соединения из командной строки linux (drop/kill/cut/close ESTABLISHED connection)
Linux закрыть сетевое соединение
Простите за тупой вопрос, но надо срочно, а я сижу и офигеваю от того, что непонимаю как это сделать.
Нужно (для тестировани демона) жестко порвать established tcp соединение.
P.S. На Винде это можео сделать с помощью TcpView от Sysinternal.
Оглавление |
|
Сообщения по теме | [Сортировка по времени, UBB] |
1. «Как разорвать ESTABLISHED соединение? (Linux)» | |
Сообщение от jonatan | |
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх |
2. «Как разорвать ESTABLISHED соединение? (Linux)» | |
Сообщение от StSphinx | |
| |
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх |
3. «Как разорвать ESTABLISHED соединение? (Linux)» | |
Сообщение от lomo | |
нету такого в RHEL4ES ;-/ ну или я не нашел. | |
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх |
4. «Как разорвать ESTABLISHED соединение? (Linux)» | |
Сообщение от idle | |
Источник Убить tcp соединение в linuxУ меня есть какое-то мертвое соединение в одном приложении, которое находится в зависшем состоянии, если клиентская машина мертва. Есть ли способ прекратить эти опции из командной строки Linux без перезагрузки сервера? После поиска я нашел решение под названием tcpkill. Но это не сработает для меня. Так как он постоянно блокирует этот ip. Чтобы «убить» сокет, вы должны отправить пакет сброса TCP. Чтобы отправить его (и принять другую сторону), вы должны знать фактический порядковый номер TCP. 1) Уже упомянутый tcpkill метод изучает номер SEQ путем пассивного прослушивания в сети и ожидания получения действительных пакетов этого соединения. Затем он использует полученный номер SEQ для отправки пакетов RSET обеим сторонам. Однако, если соединение неактивно / зависло и данные не передаются, оно ничего не будет делать и будет ждать вечно. 2) Другой метод использует скрипт perl, который называется killcx ( ссылка на Sourceforge ). Это активно отправляет поддельные пакеты SYN и узнает номер SEQ из ответа. Затем он отправляет пакеты RSET так же, как tcpkill . Альтернативный подход (основанный на том, чего вы хотите добиться) — использовать gdb отладчик для подключения к процессу, владеющему этим сокетом / соединением, и close() выполнять системный вызов от его имени — как подробно описано в этом ответе . Если вы хотите работать только с зависшими соединениями (другая сторона не работает), существуют различные таймауты (например, TCP keepalive), которые должны автоматически закрывать такие соединения, если в системе правильно настроены. Источник unixforum.orgФорум для пользователей UNIX-подобных систем
как закрыть соединениеМодератор: Bizdelnick как закрыть соединениеСообщение masterprime » 21.07.2009 20:06 Re: как закрыть соединениеСообщение nesk » 21.07.2009 20:40 если добавить к команде netstat -a ключик -p можно увидеть PID процессов, которые держат соединения. Вот если их типа kill-нуть, соединение будет прервано. Кроме того, если уже это ssh сессия, то можно посмотреть вывод команды who. Посмотреть какие пользователи зашли, посмотреть их процессы ps -u имяпользователя. И kill-нуть их все (хотя достаточно убить только, тот процесс, который является лидером сессии) Внимание: У меня под рукой нет машины с Linux. Я не использую эту ОС. Ответы я даю либо по памяти, либо мне помогает гугл. Тщательно читайте маны по тем командам и конфигурационным файлам, которые я упоминаю. Re: как закрыть соединениеСообщение masterprime » 21.07.2009 20:49 если добавить к команде netstat -a ключик -p можно увидеть PID процессов, которые держат соединения. Вот если их типа kill-нуть, соединение будет прервано. Кроме того, если уже это ssh сессия, то можно посмотреть вывод команды who. Посмотреть какие пользователи зашли, посмотреть их процессы ps -u имяпользователя. И kill-нуть их все (хотя достаточно убить только, тот процесс, который является лидером сессии) однако netstat с ключами -а -р, показывает PID-ы самих процессов сервисов и убивая по этим PID-ам я и грохну тотже sshd, например, а мне эт не нада. Источник Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связиЧто делать, если у вас уже есть сетевое соединение с типом ESTABLISHED и его нужно принудительно убить? Не всегда файервол сможет это сделать да и не всегда это удобно. Выход есть: — tcpkill из набора dsniff (Linux only) Расскажу вкратце о каждой из них. tcpkill Достаточно простая утилита как при установке (не тянет много зависимостей) так и в использовании. Приведу несколько примеров использования: Общий вид Убить исходящее соединение с 21-го порта ftp Убить все соединения с хоста 192.168.1.2/host12.nixcraft.com Убить все соединения между хостом 192.168.1.2 и всеми, кроме хоста 192.168.1.111 Killcx Официальный сайт http://killcx.sourceforge.net/ Написана на perl’e и тянет много зависимых модулей, и при этом умеет убивать соединения только по признаку dest. tcpdrop Входит в стандартную поставку BSD систем (проверял на FreeBSD/OpenBSD, для Solaris нужно искать pkg, но он есть на http://www.sunfreeware.com/) и по своей сути тоже проста. Но требует обязательно указания src/dst а так же портов src/dst. Синтаксис таков: #tcpdrop local-address local-port foreign-address foreign-port Сейчас tcpdrop для Solaris недоступен. Есть некий аналог его, но это немного не то. Либо попробовать собрать из исхдников CurrPorts Официальный сайт http://www.nirsoft.net/utils/cports.html Программа для windows пользователей с приятным интерфейсом. Показывает текущие открытые соединения и при надобности их можно завершить. Cutter Работает с файерволом и позволяет убивать только транзинтые соединения, что мягко говоря недостаточно. Источник Рабочий метод разрыва конкретного активного соединения из командной строки linux (drop/kill/cut/close ESTABLISHED connection)Иногда бывает необходимо принудительно разорвать активное соединение. Самый распространенный способ: netstat -na Проблема в том, что один воркер может одновременно обслуживать несколько соединений, поэтому правильнее будет убить соединение а не воркер. Для этого на многих форумах рекомендуют использовать tcpkilll, cutter или awk+hping3. Однако, хоть эти утилиты и находятся в официальных репозиториях, мне не удалось заставить их разрывать соединения. После продолжительных поисков был обнаружен perl скрипт killcx, разрывающий соединение по удаленному хосту и порту. killcx 94.133.119.242:4403 [PARENT] checking connection with [94.133.119.242:4403] Для его работы требуется целый набор библиотек. apt-get install \ cpan -i \ Источник |