Как закрыть соединение windows

Обновлено: 03.07.2024

TCP протокол используется для доступа к SSH серверу, доступа к веб-сайтам и во многих других случаях.

TCP протокол устанавливает подключение для инициализации которого выполняется трёхэтапное рукопожатие, в процессе использования этого подключения происходит контроль целостности передачи данных и повторная передача повреждённых или неполученных пакетов.

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

В этой заметке будет рассказано о нескольких инструментах, с помощью которых вы можете принудительно закрыть TCP подключение.

Как разорвать TCP подключение используя утилиту tcpkill

Tcpkill — это сетевая служебная программа, которая может использоваться для уничтожения соединений с определенным хостом, сетью, портом или их комбинацией. Программа tcpkill входит в пакет dsniff.

Например, я хочу отключить SSH подключение (22й порт) на интерфейсе wlo1:


Фильтры для подключений могут комбинироваться — вы можете использовать любые варианты Фильтров tcpdump и pcap, больше примеров смотрите в Руководстве по tcpdump.

Принцип работы tcpkill основан на том, что она анализирует передаваемый tcp трафик, вычисляет правильное значение пакета в последовательности и отправляет пакеты для сброса соединения. То есть эта программа может работать только для активных соединений, которые обмениваются трафиком после запуска tcpkill.

Как оборвать TCP соединение с помощью killcx

Killcx — это скрипт на Perl для закрытия TCP подключений в Linux независимо от их состояния (полуоткрытые, установоленные, ожидающие или закрывающиеся).

Killcx работает по следующему принципу: программа создаёт фальшивый SYN пакет с фиктивным номером в последовательности, спуфит удалённый IP/порт клиента и отправляет его на сервер. Это приведёт к ответвлению дочернего процесса, который будет захватывать ответ сервера, извлечёт 2 магических значения из пакета ACK и будет использовать их для отправки спуфленного (поддельного) пакета RST. Затем подключение будет закрыто.

Обратите внимание, что SYN отправляется для того, что если по каким-либо причинам подключение застряло (нет входящих/исхоодящих пакетов), killcx всё равно сможет закрыть его.

Как установить Killcx

Начните с установки зависимостей.

Установка зависимостей Killcx в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

кто-нибудь знает, как закрыть сокет TCP или UDP для одного соединения через командную строку windows?

Googling об этом, я видел, что некоторые люди спрашивают то же самое. Но ответы выглядели как ручная страница команд netstat или netsh, сосредоточенных на том, как контролировать порты. Мне не нужны ответы о том, как их контролировать (я уже это делаю). Я хочу закрыть/убить их.

EDIT, для уточнения: предположим, что мой сервер прослушивает TCP-порт 80. Клиент для него выделяется соединение и порт 56789. Затем я обнаруживаю, что это соединение нежелательно (например, этот пользователь делает плохие вещи, мы попросили их остановиться, но соединение не было сброшено где-то по пути). Обычно я добавлял брандмауэр, чтобы выполнить работу, но это заняло бы некоторое время, и я был в чрезвычайной ситуации. Убийство процесса, которому принадлежит соединение, действительно плохая идея здесь, потому что это снимет сервер (все пользователи потеряют функциональность, когда мы просто хотите выборочно и временно отбросить это одно соединение).

Да, это возможно. Вам не обязательно быть текущим процессом, владеющим сокетом, чтобы закрыть его. На мгновение подумайте, что удаленная машина, сетевая карта, сетевой кабель и ваша ОС могут привести к закрытию сокета.

учтите также, что программное обеспечение Fiddler и Desktop VPN может вставляться в сетевой стек и показывать Вам весь ваш трафик или перенаправлять весь ваш трафик.

поэтому все, что вам действительно нужно, это либо для Windows, чтобы предоставить API, который позволяет это напрямую или для кого-то написать программу, которая работает как VPN или скрипач и дает вам возможность закрыть сокеты, которые проходят через него.

существует по крайней мере одна программа (currports также), который делает именно это, и я использовал его сегодня с целью закрытия определенных сокетов в процессе, который был запущен до запуска CurrPorts. Для этого вы должны запустить его как администратор, конечно.

обратите внимание, что это, вероятно, не легко можно заставить программу не прослушивать порт (ну, это возможно, но эта возможность называется брандмауэром. ), но я не думаю, что об этом спрашивали здесь. Я считаю, что вопрос: "как выборочно закрыть одно активное соединение (сокет) с портом, который прослушивает моя программа?". Формулировка вопроса немного отключена, потому что указан номер порта для нежелательного входящего клиентского соединения, и он назывался "порт", но довольно ясно, что это был ссылка на этот сокет, а не на порт прослушивания.

TCP протокол используется для доступа к SSH серверу, доступа к веб-сайтам и во многих других случаях.

TCP протокол устанавливает подключение для инициализации которого выполняется трёхэтапное рукопожатие, в процессе использования этого подключения происходит контроль целостности передачи данных и повторная передача повреждённых или неполученных пакетов.

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

В этой заметке будет рассказано о нескольких инструментах, с помощью которых вы можете принудительно закрыть TCP подключение.

Как разорвать TCP подключение используя утилиту tcpkill

Tcpkill — это сетевая служебная программа, которая может использоваться для уничтожения соединений с определенным хостом, сетью, портом или их комбинацией. Программа tcpkill входит в пакет dsniff.

Например, я хочу отключить SSH подключение (22й порт) на интерфейсе wlo1:


Фильтры для подключений могут комбинироваться — вы можете использовать любые варианты Фильтров tcpdump и pcap, больше примеров смотрите в Руководстве по tcpdump.

Принцип работы tcpkill основан на том, что она анализирует передаваемый tcp трафик, вычисляет правильное значение пакета в последовательности и отправляет пакеты для сброса соединения. То есть эта программа может работать только для активных соединений, которые обмениваются трафиком после запуска tcpkill.

Как оборвать TCP соединение с помощью killcx

Killcx — это скрипт на Perl для закрытия TCP подключений в Linux независимо от их состояния (полуоткрытые, установоленные, ожидающие или закрывающиеся).

Killcx работает по следующему принципу: программа создаёт фальшивый SYN пакет с фиктивным номером в последовательности, спуфит удалённый IP/порт клиента и отправляет его на сервер. Это приведёт к ответвлению дочернего процесса, который будет захватывать ответ сервера, извлечёт 2 магических значения из пакета ACK и будет использовать их для отправки спуфленного (поддельного) пакета RST. Затем подключение будет закрыто.

Обратите внимание, что SYN отправляется для того, что если по каким-либо причинам подключение застряло (нет входящих/исхоодящих пакетов), killcx всё равно сможет закрыть его.

Как установить Killcx

Начните с установки зависимостей.

Установка зависимостей Killcx в Debian, Linux Mint, Ubuntu, Kali Linux и их производные:

Когда вы подключаете свой компьютер к Интернету, приложения отправляют и получают информацию через сетевое соединение. Как правило, вам не о чем беспокоиться об этом обмене данными, поскольку он требуется для правильной работы некоторых приложений и функций системы. Однако в общедоступных или незащищенных сетях нужно проявлять особую осторожность.


И наоборот, блокировка исходящих подключений может помочь предотвратить подключение ваших приложений к небезопасной интернет-сети. Это эффективный способ помешать подозрительному приложению / вредоносному ПО загружать дополнительные вредоносные программы или связываться с сервером.

Блокировать входящее соединение в Windows 10

Вы можете ограничить входящие соединения с помощью настройка параметров брандмауэра Windows 10. Вот как это сделать.

  1. Введите панель управления в строке поиска Windows и выберите в результате пункт Панель управления.



Примечание. Если вы не нашли параметр «Брандмауэр Защитника Windows» на панели управления компьютера, установите для параметра «Просмотр по» в правом верхнем углу значение «Крупные значки» или «Маленькие значки» и проверьте еще раз.


В меню брандмауэра Защитника Windows вы должны увидеть свой профиль подключения: частные или общедоступные / гостевые сети.


  1. Выберите «Изменить настройки уведомлений» на левой боковой панели.


  1. В разделе «Настройки общедоступной сети» установите флажок «Блокировать все входящие подключения, включая те, которые находятся в списке разрешенных приложений». Выберите ОК, чтобы сохранить изменения.


Если вы не полностью доверяете безопасности своей частной сети (сетей), вы также можете заблокировать входящие соединения для таких сетей в разделе «Настройки частной сети».

Совет от профессионалов: чтобы изменить профиль подключения Wi-Fi или Ethernet, перейдите в «Настройки»> «Сеть и Интернет»> «Wi-Fi» или «Ethernet». Выберите имя сети и укажите, частная это или общедоступная сеть, в разделе Профиль сети.

Блокировать исходящие подключения в Windows 10

Есть два способа остановить исходящие соединения в Windows 10. Ознакомьтесь с ними ниже.

Метод 1: заблокировать исходящие подключения для всех приложений

Вы можете легко ограничить исходящие соединения для всех приложений, изменив дополнительные параметры безопасности брандмауэра Windows. В меню брандмауэра Защитника Windows выберите Дополнительные параметры на левой боковой панели.


Щелкните правой кнопкой мыши «Брандмауэр Защитника Windows с повышенной безопасностью на локальном компьютере» и выберите «Свойства».



Щелкните раскрывающийся список Исходящие подключения и выберите Заблокировать. Выберите Применить, а затем ОК, чтобы сохранить изменения.


Метод 2: заблокировать исходящие соединения для определенной программы

Допустим, вы хотите заблокировать исходящие соединения только для вашего веб-браузера, Windows позволяет вам сделать это эффективно. Это также может служить инструментом родительского контроля для предотвращения доступа ваших детей в Интернет.

В меню «Дополнительная безопасность брандмауэра» выберите и щелкните правой кнопкой мыши «Правила для исходящего трафика». Чтобы продолжить, выберите «Новое правило» в контекстном меню.


Выберите Программа и нажмите Далее.


Нажмите Обзор, чтобы выбрать приложение.


Перейдите на Локальный диск (C :)> Program Files (x86), чтобы найти приложения, установленные на вашем ПК. Используйте поле поиска, чтобы найти приложение, которого нет в папке Program Files. Выберите исполняемый файл приложения (.exe) и нажмите «Открыть».


Чтобы продолжить, выберите «Далее». После этого выберите «Блокировать соединение» и нажмите «Далее».


Укажите сетевой профиль (ы), для которых вы хотите, чтобы Windows блокировала исходящее соединение приложения. Чтобы продолжить, выберите «Далее».

Дайте исходящему правилу имя или описание и нажмите Готово.


Чтобы разблокировать исходящие соединения для приложения, дважды щелкните правило для исходящего трафика в меню «Дополнительная безопасность брандмауэра». Выберите Разрешить подключение, затем нажмите Применить и ОК.


Кроме того, вы можете щелкнуть правило правой кнопкой мыши и выбрать «Удалить» или «Отключить правило». Эти параметры также предоставят приложению доступ для инициирования исходящих подключений.


Блокировать входящие подключения на Mac

Ограничить входящие соединения на Mac также просто. Прочтите инструкции ниже.

    Перейдите в Системные настройки> Безопасность и конфиденциальность.

На вкладке «Брандмауэр» щелкните значок замка в нижнем левом углу.


Введите пароль вашего Mac или используйте Touch ID для доступа к меню настроек безопасности.

  1. Чтобы продолжить, выберите «Параметры брандмауэра».


  1. Чтобы заблокировать общесистемные (входящие) подключения для всех приложений и служб, установите флажок Блокировать все входящие подключения и выберите ОК.


Ваш Mac останется видимым для других устройств и сетей, когда вы заблокируете все входящие подключения. Однако ни одно устройство или человек не могут установить соединение с вашим Mac.

Обратите внимание, что это также будет предоставлять услуги обмена файлами (например, AirDrop) и инструменты удаленного доступа (например, общий доступ к экрану) временно недоступен.

    Чтобы блокировать входящие соединения только для встроенного программного обеспечения, снимите флажок Автоматически разрешать встроенному программному обеспечению принимать входящие соединения.

Если вы хотите заблокировать входящие соединения для определенного приложения или службы, щелкните значок плюса (+).



Совет для профессионалов: чтобы выбрать несколько приложений, удерживайте Command и щелкните приложения.

  1. Щелкните стрелки вверх и вниз рядом с приложениями и выберите Блокировать входящие подключения.


Блокировать исходящие подключения на Mac

В macOS отсутствует собственный инструмент или встроенный метод для блокировки исходящих подключений. Есть обходной путь, который включает в себя блокировку IP-адреса или доменного имени веб-сайта, но это не так просто. Аналогичным образом, этот метод можно использовать только для блокировки исходящих подключений к веб-сайтам, но не к приложениям. Следуйте инструкциям ниже, чтобы попробовать.

  1. Запустите окно Finder, выберите «Приложения»> «Утилиты» и откройте приложение «Терминал».
  1. Вставьте команду ниже в консоль терминала и нажмите Return.

sudo cp / private / etc / hosts


    Введите пароль вашего Mac и нажмите Return.

Вставьте следующую команду в Терминал и нажмите Return.

судо нано / частный / и т. д. / хосты


Это дает вам административное разрешение на изменение файла Hosts. Введите пароль вашего Mac и нажмите Return, чтобы продолжить.


    Нажмите Control + O и нажмите Return на клавиатуре.

После этого нажмите Control + X.

Наконец, введите или вставьте dscacheutil -flushcache и нажмите Return.

Разблокировать исходящие подключения на Mac

Вы не можете разблокировать исходящее соединение приложения, введя некоторые коды или команды терминала. Вам нужно будет восстановить файл резервной копии Hosts, созданный при блокировке подключения приложения. Следуйте инструкциям ниже, чтобы сделать это.

  1. Перейдите в Finder> Documents, дважды щелкните файл резервной копии hosts и скопируйте его содержимое.


  1. На рабочем столе Mac выберите «Перейти» в строке меню и выберите «Перейти в папку».


  1. Вставьте указанный ниже путь в диалоговое окно и выберите «Перейти».

/ частные / и т. д. / хосты



  1. Дважды щелкните файл на рабочем столе, удалите его содержимое и замените его содержимым файла резервной копии hosts (на шаге 1 выше).

Закройте окно TextEditor и перетащите файл хоста обратно в папку / private / etc /.

  1. Выберите «Заменить» в появившемся на экране запросе. Вам также может потребоваться ввести пароль вашего Mac или пройти аутентификацию через Touch ID.


Посетите веб-сайт в своем браузере и убедитесь, что он больше не заблокирован.

Используйте сторонние приложения

Управление исходящими соединениями в macOS довольно утомительно. Интересно, что есть сторонние приложения вроде Маленький снитч а также Радио Тишина которые упрощают задачу. Эти приложения не бесплатны, но они предлагают щедрые пробные режимы, которые позволяют вам использовать их без оплаты в течение определенного периода. Little Snitch (от 48,99 долларов США) имеет демонстрационный режим с 3-часовым ограничением на сеанс, а Radio Silence (9 долларов США) предлагает 30-дневную бесплатную пробную версию.

Читайте также: