Я пытаюсь проверить, как программное обеспечение будет вести себя в случае сбоя в сети. Это программное обеспечение использует tcp send()
и recv()
для связи.
Ранее я заставлял программное обеспечение взаимодействовать, помещая их в две разные машины в локальной сети. Итак, для симуляции сбоя сети я использовал приведенное ниже правило.
sudo iptables -A INPUT -p tcp -s 10.100.52.234 -j REJECT --reject-with tcp-reset
Предположим, что 10.100.52.234
- это IP одной из систем. Это привело к провалу в одно мгновение. Все хорошо.
Теперь я пытаюсь смоделировать это на одной машине, используя адрес обратной связи 127.0.0.1
. Все работает так же, как и в предыдущей настройке, но вышеприведенная команда не работает. Это не сбой сетевого подключения, и программное обеспечение просто зависает. Не происходит никакого общения, но оно также не подведет.
Я использовал команду
sudo iptables -A INPUT -p tcp -s 127.0.0.1 -j REJECT --reject-with tcp-reset
а также
sudo iptables -A INPUT -p tcp -i lo -j REJECT --reject-with tcp-reset
оба не работают. Программное обеспечение очень долго терпит неудачу.
Есть ли другой способ немедленно разорвать соединение по адресу обратной связи?