Ви натрапили на "Без шляху до хоста", намагаючись дістатися до сервера в Linux? Ця помилка підключення до послуги може дратувати, але ви можете її виправити, виявивши причину.
Також дивіться нашу статтю Як видалити каталог у Linux
"Немає маршруту до хоста" позначає мережну проблему, як правило, таку, яка відображається, коли сервер або хост не відповідають. Це може статися через проблеми з мережею або через неправильне налаштування.
Чи правильні ваші мережеві налаштування?
Перш ніж ми розберемо більш конкретні причини цієї проблеми, переконайтеся, що ваші мережеві налаштування правильні. Чи можете ви підключитися до Інтернету? Правильно налаштований ваш DNS?
Виконайте цю команду, щоб дізнатися:
systemd-resolution –status
Якщо ви виявили там будь-які проблеми з DNS, поверніться до конфігурації мережі та повторіть її, якщо потрібно. Якщо ви використовуєте стандартну мережу з динамічним IP, номери DNS повинні автоматично оновлюватися.
Щоб налаштувати DNS вручну, перейдіть до Менеджера мережі та введіть вручну IP-адресу на вкладці IPv4.
Якщо у вашому дистрибутиві Linux немає графічного робочого столу, перейдіть до “/etc/systemd/used.conf.” Та знайдіть рядок DNS.
Змініть номери з номерами потрібного DNS і зробіть інші конфігурації, якщо потрібно.
Крім того, якщо ви встановили статичний IP-адрес, можливо, ви захочете повернутися до динамічного IP-адреси та дозволити вашій мережі отримати інформацію про з'єднання через DHCP.
Не забудьте перезавантажити комп'ютер, перш ніж спробувати підключитися до хоста. Якщо ви все ще отримуєте "Нема маршруту до господаря", продовжуйте читати.
Чи хост-сервер в Інтернеті?
Наступним кроком є перевірка того, що хост, з яким ви намагаєтеся підключитися, насправді в Інтернеті. Зрештою, однією з найчастіших причин помилок є те, що сервіс не працює внаслідок технічного обслуговування чи іншої проблеми.
Якщо послуга не є в Інтернеті, перевірте, чи є хост. Іноді сервіс, можливо, припинився або не почався з нього, навіть якщо з самим сервером немає нічого поганого.
За допомогою systemd запустіть команду…
sudo systemctl ім'я статусу служби
Якщо послуга запущена, потрібно шукати іншу причину.
Ви підключаєтесь до потрібного порту?
Двічі перевірте будь-яку документацію, яку хост надав. Це звичайна практика для менеджерів серверів блокувати порти, які не використовуються для покращення безпеки сервера. Зловмисники часто використовують загальні порти для націлювання на служби Linux.
Якщо ви намагаєтеся підключитися до власного сервера, ви можете простежити повернення послуги до потрібного порту. Для цього потрібно встановити інструмент захисту, який допоможе вам бачити відкриті порти - NMAP.
Ось команди для установки NMAP в різних дистрибутивах Linux:
CentOS: yum встановити nmap
Debian: apt-get install nmap
Ubuntu: sudo apt-get install nmap
Після встановлення NMAP перевірте, чи немає відкритих портів із такою командою:
sudo nmap -sS target-server-ip
Якщо у вас немає прямого доступу до сервера, вам доведеться зв’язатися з хостом. Але перш ніж це зробити, погляньте на деякі інші можливі причини помилки "Без шляху до хоста" в Linux.
Чи правильно ім'я хоста?
Ви також можете отримати помилку "Без маршруту до хоста", якщо ваш комп'ютер і сервер, до якого ви намагаєтеся підключитися, використовували різні імена хостів. Обидві машини повинні бути налаштовані на з'єднання один з одним.
Крім звичайної конфігурації хостів, ви хочете звернути увагу на файли hosts.deny і hosts.allow у розділі "/ і т.д.". Якщо ви намагаєтеся підключитися до нового сервера, переконайтеся, що правильно вказано ім'я хоста сервера.
Чи блокує iptables з'єднання?
iptables досить корисний, коли ви хочете налаштувати таблиці брандмауера ядра Linux. Повний контроль, який він дає вам над трафіком, який надходить і виходить з вашого комп'ютера, чудово.
Але через просту помилку конфігурації iptables можуть перекрити з'єднання з портом, до якого ви хочете дістатися, і призвести до помилки "No Route to Host".
Щоб перевірити, чи винен iptables, запустіть таку команду:
sudo iptables -S
Подивіться, чи встановлені блоком правила iptables блокують з'єднання. Можливо, вам доведеться додати правило прийняття до ланцюга INPUT за замовчуванням.
Щоб очистити правила брандмауера для зовнішнього брандмауера, ви можете скористатися цією командою:
iptables -F
Заключні думки
Як бачимо, може знадобитися деякий час, щоб дійти до нижньої частини помилки "Без маршруту до хоста", але кроки вище повинні допомогти вам. Хоча це може виглядати як складна проблема, часто це результат конфліктних конфігурацій або простих мережевих проблем.
Чи стикалися ви з будь-якими іншими потенційними причинами та виправленнями цієї помилки? Залиште нам коментар і розкажіть про це.