Ми}{алы4

Блог хеллоуворлдщика

Ускоряем работу Docker и/или Vagrant

05.02.2021 lookup, dns, ssh, docker, vagrant, slow, workenv

Если вы заметили, что Docker или Vagrant быстрее работает с отключенной сетью интернет, а с ней наоборот работает медленно, то эта статья для вас.

Я столкнулся с этой проблемой после переезда: у меня изменился роутер. И первое на что я обратил внимание это то, что попытка подключения по локальным адресам занимала до 30 секунд и более, хотя раньше это работало намного быстрей. Так как я не самый продвинутый специалист в сетях и маршрутизации, то какое-то время, можно сказать, бился в закрытую дверь, хотя понимал, что дело именно в попытке разрешить локальный адрес через интернет или что-то вроде этого. Спустя год, после возникновения проблемы и различных проб и ошибок, я готов поделиться решением.

Решение оказалось простым и заключается в отключении попытки проверить имя хоста, к которому вы обращаетесь. В /etc/ssh/sshd_config указываем

UseDNS no

UseDNS это reverse dns lookups для SSH со всеми вытекающими. После его отключения у меня больше не было задержек в соединении с хостом.

Дополнительно рекомендую убедиться, что в настройках вашего роутера DNS сервер не равен DHCP шлюзу. Это приводит к "закольцовыванию" запроса до выхода тайм-аута. В полях для указания DNS серверов ничего не должно быть (пустые поля) или должны быть "нули" (0.0.0.0). Все зависит от роутера.

Также можно улучшить ситуацию, если прописать в настройках подключения (или настройках роутера) публичные DNS от Google или Яндекс.

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

Полезные ссылки