Это вопрос разработчика, но поскольку он больше связан с операционными системами и сетевыми подключениями, я опубликую его здесь, а не в переполнении стека.
Я пытаюсь смоделировать ситуацию, когда сетевое соединение закрывается из-за сетевой проблемы или ошибки, чтобы проверить поведение, которое я реализовал в одном из моих приложений. Я мог бы просто отключить сетевой кабель или закрыть сетевой интерфейс, но я сделал свое приложение для повторного подключения сразу после этого, так что это займет слишком много времени, пока сеть снова не будет работать (из-за согласования DHCP и т. Д.).
Есть ли способ, в Unix или OS X, просто отключить определенное приложение от Интернета, а затем позволить ему немедленно восстановить соединение? Может быть, имитировать ошибку «сброс соединения по одноранговым сетям» или что-то в этом роде (я не профессионал, когда речь идет о работе в сети, извините за мой язык новичка).
Спасибо.
источник
Ответы:
Различные способы сделать это, но самый простой, который приходит мне в голову - это использовать ifconfig (ipconfig для windows). Синтаксис будет несколько отличаться, но
Вы можете сделать аналогичные вещи с маршрутом, удалив маршрут к серверу приложения.
Или вы можете очистить кэш arp (см. Man arp), а затем использовать другой хост (реальный или виртуальный), подменяющий MAC этой машины.
Существует пакетный вызов hping (я думаю, что в версии 3), который может симулировать различные виды пакетов. Вы можете использовать это для установки пакетов сброса от места назначения до хоста, на котором запущено приложение.
Таким образом, вы можете поместить это в сценарий
Если у вас есть сервер в вашей сети, вы можете отключить процесс на сервере. Например. остановите сервер httpd, если ваше приложение является веб-приложением.
Более ранний плакат о работе с брандмауэром на машине, которую должны пересылать пакеты вашего приложения.
Также ищите инъекционные атаки и атаки типа «отказ в обслуживании».
Если на сервере или промежуточном хосте работает linux, вы запускаете pf на этом хосте. Загружая и выгружая данное правило, вы можете открывать или закрывать данную комбинацию порт / протокол / ip. Вы также можете регулировать скорость соединения, пропуская столько пакетов в секунду.
источник