- Как можно сбросить tcp соединение ?
- Re: Как можно сбросить tcp соединение ?
- Re: Как можно сбросить tcp соединение ?
- Re: Как можно сбросить tcp соединение ?
- Re: Как можно сбросить tcp соединение ?
- Re: Как можно сбросить tcp соединение ?
- Убить tcp соединение в linux
- Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи
- как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Re: как вручную разорвать tcp соединение?
- Как закрыть активное tcp соединение linux?
Как можно сбросить tcp соединение ?
Как можно сбросить tcp соединение ? По netstat видно откуда и на какой порт, а вот как его принудительно убить.
Re: Как можно сбросить tcp соединение ?
Во-первых, можно через netstat -np определить какой процесс (его PID) связан с этим соединением и убить его, если конечно этот процесс больше не связан ни с каким соединением. Во-вторых, можно запретить прием/передачу пакетов в этом соединении с помощью firewall-а; тогда оно само отвалится (возможно по timeout-у, если использовать DROP/DENY). В-третьих, есть программа ettercap, она, при запуске в интерактивном режиме, имеет функцию «kill connection» (включить прослушивание пакетов, выбрать нужное соединение, пару раз нажать «k»).
Re: Как можно сбросить tcp соединение ?
гы-гы а в openbsd есть команда tcpdrop.
Re: Как можно сбросить tcp соединение ?
> Во-вторых, можно запретить прием/передачу пакетов в этом соединении с помощью firewall-а;
хм.. надо попробовать — я где-то читал, что для уже установленных tcp-соединений новое, добавленное уже после установления этих соединений, правило не действует. т.е. это правило будет действовать только на соединения инициируемые после добавления данного правила..
а вообще, close() для сокета и/или порта есть? есть. значит надо найти как его использовать. т.е. я думаю, что необходимая «ручка» есть — надо её лишь найти..
Re: Как можно сбросить tcp соединение ?
$ apt-cache show cutter
Description: disconnect routed IP connections Cutter will send packets to both ends of a tcp/ip connection to close the connection. It is designed to be used on a Linux router to disconnect unwanted connections
Re: Как можно сбросить tcp соединение ?
10x!
у гугля я чё-то не сумел выпытать ничего внятного. видать плохо спрашивал 🙁
Источник
Убить tcp соединение в linux
У меня есть какое-то мертвое соединение в одном приложении, которое находится в зависшем состоянии, если клиентская машина мертва.
Есть ли способ прекратить эти опции из командной строки Linux без перезагрузки сервера?
После поиска я нашел решение под названием tcpkill. Но это не сработает для меня. Так как он постоянно блокирует этот ip.
Чтобы «убить» сокет, вы должны отправить пакет сброса TCP. Чтобы отправить его (и принять другую сторону), вы должны знать фактический порядковый номер TCP.
1) Уже упомянутый tcpkill метод изучает номер SEQ путем пассивного прослушивания в сети и ожидания получения действительных пакетов этого соединения. Затем он использует полученный номер SEQ для отправки пакетов RSET обеим сторонам. Однако, если соединение неактивно / зависло и данные не передаются, оно ничего не будет делать и будет ждать вечно.
2) Другой метод использует скрипт perl, который называется killcx ( ссылка на Sourceforge ). Это активно отправляет поддельные пакеты SYN и узнает номер SEQ из ответа. Затем он отправляет пакеты RSET так же, как tcpkill .
Альтернативный подход (основанный на том, чего вы хотите добиться) — использовать gdb отладчик для подключения к процессу, владеющему этим сокетом / соединением, и close() выполнять системный вызов от его имени — как подробно описано в этом ответе .
Если вы хотите работать только с зависшими соединениями (другая сторона не работает), существуют различные таймауты (например, TCP keepalive), которые должны автоматически закрывать такие соединения, если в системе правильно настроены.
Источник
Выполняю установку, настройку, сопровождение серверов. Для уточнения деталей используйте форму обратной связи
Что делать, если у вас уже есть сетевое соединение с типом ESTABLISHED и его нужно принудительно убить? Не всегда файервол сможет это сделать да и не всегда это удобно. Выход есть:
— tcpkill из набора dsniff (Linux only)
— Killcx (Linux only)
— tcpdrop (BSD/Solaris only)
— CurrPorts (Windows only)
— Cutter (Linux only)
Расскажу вкратце о каждой из них.
tcpkill
Достаточно простая утилита как при установке (не тянет много зависимостей) так и в использовании. Приведу несколько примеров использования:
Общий вид
#tcpkill -i eth0
Убить исходящее соединение с 21-го порта ftp
#tcpkill -i eth0 port 21
Убить все соединения с хоста 192.168.1.2/host12.nixcraft.com
#tcpkill host 192.168.1.2
#tcpkill host host12.nixcraft.com
Убить все соединения между хостом 192.168.1.2 и всеми, кроме хоста 192.168.1.111
#tcpkill ip host 192.168.1.2 and not 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
Работает с файерволом и позволяет убивать только транзинтые соединения, что мягко говоря недостаточно.
Источник
как вручную разорвать tcp соединение?
Собственно вопрос возник.
Есть приложение , устанавливающее множество tcp соединений одновременно. Как в линуксе разорвать какое то конкретное соединение (например зная PID или src/dst порт) , оставив при этом остальные соединения активными?
пс: Только ненадо спрашивать зачем это надо. И говорить что это все неправильно, лишено смысло и поэтому тупо и ненужно.
Re: как вручную разорвать tcp соединение?
В хекс редакторе сформировать FIN ответ с нужным номером фрейма и послать, делов то.
Re: как вручную разорвать tcp соединение?
iptables. закрой порт и открой обратно;)
Re: как вручную разорвать tcp соединение?
гм. есть tcpkill — часть dsniff, есть cutter, но он только для роутеров.
Re: как вручную разорвать tcp соединение?
Re: как вручную разорвать tcp соединение?
>> В хекс редакторе сформировать FIN ответ с нужным номером фрейма и послать, делов то.
приведи пример для соединения 192.168.0.2:51021->192.168.0.1:254
Re: как вручную разорвать tcp соединение?
>> iptables. закрой порт и открой обратно;)
>>quaternion (*) (10.01.2009 0:27:39)
почему оно должно разорваться в этом случае? по таймауту? я правильно понимаю?
Re: как вручную разорвать tcp соединение?
Ну что , товарищи линуксоидики , не существует значит способа разрыва тцп соединения? а вот в Виндовс есть утилита , tcpview , и не обязательно для нее делаться рутером , и перелопачивать всякие дсснифы и в хексредакторах забивать тцп пакеты , чтобы потом их! отправить самому же себе (хаха ,это вообще как такое возможно в трезвом уме то?)) что бы всего лиш разорвать тцп соединение! Ха ХА , вот поистине сетевая ось :)) Или может я не там написал? Может здесь просто слишком низкий уровень , и это делается очень просто но просто напросто никто не знает как это делается 😉 .
Re: как вручную разорвать tcp соединение?
Вот он, виндотролль — слепой, не умеющий читать маны неграмотный идиот.
‘tcpkill’ работает.
Источник
Как закрыть активное tcp соединение linux?
Здравствуйте. У меня проблема. Сервер иногда подвергается ддос атаки одного человека. Есть tcp соединения при блоке которых через Iptables всё ещё остаются запросы: https://prnt.sc/128bi0d
Я заблокировал ип, н ос него всё ещё висят 51 запрос на tcp порт который оно досило. Соединение обрубается только если я перезагружу приложение которое было под атакой.
Его запросы: netstat -na | grep 117.94.104.57 tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35696 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35728 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35784 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35672 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35842 ESTABLISHED tcp 0 0 43.123.xx.xx:6183 117.94.104.57:35716 ESTABLISHED
Трафика с него никакого не идёт: tcpdump host 117.94.104.57 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp1s0f0, link-type EN10MB (Ethernet), capture size 262144 bytes ^Z [12]+ Остановлено tcpdump host 117.94.104.57
Как его разорвать желательно автоматически или вручную без перезагрухки порта/приложения?
например создать какое ни будь правило в файрволе, если соединение неактивно х времени разрывать с ним связь.
Благодарю. Но это вручную и нужно знать пид процесса. Вообще читал мануал в интернете, попробую ан практике. Хотелось бы конечно что бы автоматически такие вот соединения рвались и не висели создавая нагрузку. Почему это стандартно не происходит вопрос ещё тот.
Если ты не знаешь PID своего приложения, то обратись в Job.
соединения такие должно рвать либо само приложение либо проксирующий фронт, очевидно у тебя ни первого не происходит ни второго нет, тогда почему что-то должно происходить автоматически, вопрос тот еще
Ну это всё нужно кодить самому получается я к сожалению в этом профан. Полагаю устройство сетей должно хоть как то работать, имеется ввиду зачем держать откротое соединение которое в бане и которое не посылает никакого трафика. Файрвол это должен делать, поидеи.
Проблема в том что при бане ип через Iptables все активные запросы с Ip включая соединение остаётся неизменным. Просто прекращается идти трафик. Почему это происходит я не знаю.
Прошу прощения. Я не так понял. Пид приложения знаю. Попробую ваш вариант.
sudo ss -K src sport =
sudo ss -K src sport = -bash: ошибка синтаксиса около неожиданной лексемы `6183’ стоит ubuntu
sudo gdb -p 4799 -ex «call close(»$FD»)» -ex «detach» -ex «quit» GNU gdb (Ubuntu 7.11.1-0ubuntu1
16.5) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type «show copying» and «show warranty» for details. This GDB was configured as «x86_64-linux-gnu». Type «show configuration» for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/. For help, type «help». Type «apropos word» to search for commands related to «word». Attaching to process 4799 [New LWP 23445] [New LWP 27368] [New LWP 30050] [New LWP 1372] [New LWP 5619] [New LWP 8942] [New LWP 10733] [New LWP 17700] [New LWP 22303] [Thread debugging using libthread_db enabled] Using host libthread_db library «/lib/x86_64-linux-gnu/libthread_db.so.1». 0x00007fdae9f3a693 in select () at ../sysdeps/unix/syscall-template.S:84 84 ../sysdeps/unix/syscall-template.S: Нет такого файла или каталога. $1 = 0 Detaching from program: /home/user/bin/newmakro/makro++, process 4799
Возможно я что то делаю не так.
Удивительно, как с такими знаниями, у тебя вообще что-то работает.
похоже на оптимизацию бизнес-модели: уволили эникея, он «дудосит» с домашней кофеварки, новый эффективный МЕНЕДЖЕР ВООХОДИТ В ООЙТИ
Ваша оценка моей личности очень важна для меня.
Источник