Сталкивались ли вы с «No Route to Host» при попытке получить доступ к серверу в Linux? Эта ошибка подключения к услуге может раздражать, но вы можете исправить ее, как только определите причину.
Также смотрите нашу статью Как удалить каталог в Linux
«No Route to Host» (Нет маршрута к хосту) обозначает проблему в сети, обычно такую, которая обнаруживается, когда сервер или хост не отвечает. Это может произойти из-за проблем с сетью или из-за неправильной настройки.
Правильны ли настройки вашей сети?
Прежде чем мы рассмотрим более конкретные причины этой проблемы, убедитесь в правильности настроек вашей сети. Можете ли вы подключиться к сети? Ваш DNS правильно настроен?
Запустите эту команду, чтобы узнать:
systemd-resolv –status
Если вы обнаружите там какие-либо проблемы с DNS, вернитесь к конфигурации вашей сети и, если потребуется, повторите ее. Если вы используете стандартную сеть с динамическим IP, номера DNS должны обновляться автоматически.
Чтобы вручную настроить DNS, перейдите в Network Manager и вручную введите IP-адрес на вкладке IPv4.
Если в вашем дистрибутиве Linux нет графического рабочего стола, перейдите в «/etc/systemd/resolved.conf.» И найдите строку DNS.
Измените номера на номера DNS, которые вы хотите, и при необходимости сделайте другие конфигурации.
Кроме того, если вы настроили статический IP-адрес, вы можете захотеть вернуться к динамическому IP-адресу и позволить вашей сети получать информацию о соединении через DHCP.
Не забудьте перезагрузить компьютер, прежде чем пытаться снова подключиться к хосту. Если вы все еще получаете «No Route to Host», продолжайте читать.
Хост-сервер подключен к сети?
Следующим шагом является проверка того, что хост, к которому вы пытаетесь подключиться, действительно подключен. В конце концов, одной из наиболее частых причин ошибки является то, что служба не работает в результате обслуживания или какой-либо другой проблемы.
Если служба не в сети, проверьте, есть ли хост. Иногда служба может быть остановлена или не запущена с самого начала, даже если с самим сервером все в порядке.
Используя systemd, запустите команду…
sudo systemctl status servicename
Если служба работает, вам нужно искать другую причину.
Вы подключаетесь к нужному порту?
Дважды проверьте любую документацию, которую может предоставить хост. Обычно администраторы серверов блокируют порты, которые не используются для повышения безопасности сервера. Злоумышленники часто используют общие порты для нацеливания на службы Linux.
Если вы пытаетесь подключиться к своему собственному серверу, вы можете отследить службу до правильного порта. Для этого вам нужно установить средство безопасности, которое поможет вам увидеть открытые порты - NMAP.
Вот команды для установки NMAP в разных дистрибутивах Linux:
CentOS: ням установить nmap
Debian: apt-get установить nmap
Ubuntu: sudo apt-get установить nmap
После установки NMAP проверьте наличие открытых портов с помощью следующей команды:
sudo nmap -sS target-server-ip
Если у вас нет прямого доступа к серверу, вам придется связаться с хостом. Но прежде чем сделать это, взгляните на некоторые другие возможные причины ошибки «No Route to Host» в Linux.
Правильно ли указано имя хоста?
Вы также можете получить ошибку «No Route to Host», если ваш компьютер и сервер, к которому вы пытаетесь подключиться, используют разные имена хостов. Обе машины должны быть настроены на соединение друг с другом.
Помимо обычной конфигурации хостов, вы должны обратить внимание на файлы hosts.deny и hosts.allow в «/ etc». Если вы пытаетесь подключиться к новому серверу, убедитесь, что вы правильно указали имя хоста сервера.
Iptables блокирует соединение?
iptables очень полезен, когда вы хотите настроить таблицы брандмауэра ядра Linux. Полный контроль над трафиком, который входит и выходит из вашего компьютера, великолепен.
Но из-за простой ошибки конфигурации iptables может заблокировать соединение с портом, к которому вы хотите подключиться, и вызвать ошибку «No Route to Host».
Чтобы проверить, виноват ли iptables, выполните следующую команду:
sudo iptables -S
Посмотрите, блокируют ли установленные вами правила iptables соединение. Возможно, вам придется добавить правило принятия в цепочку INPUT по умолчанию.
Чтобы очистить правила брандмауэра для внешнего брандмауэра, вы можете использовать эту команду:
iptables -F
Заключительные мысли
Как видите, может потребоваться некоторое время, чтобы добраться до сути ошибки «Нет маршрута к хосту», но описанные выше шаги должны помочь вам. Хотя это может выглядеть как сложная проблема, часто это является результатом конфликтующих конфигураций или простых сетевых проблем.
Вы сталкивались с другими потенциальными причинами и исправлениями этой ошибки? Оставьте нам комментарий и расскажите нам об этом.