как решить NT_STATUS_HOST_UNREACHABLE в CentOS при подключении к файловому серверу (Windows) через SAMBA

Вопрос или проблема

Я использую CentOS и мне нужно подключиться к файловому серверу, работающему на Windows. Мой друг сказал мне, что мне нужно установить SAMBA, чтобы иметь возможность это сделать. Итак, я установил samba, и когда я пытаюсь проверить, успешна ли установка, эта команда

smbclient //[hostname]/[sharename] -U [username]

выдает мне это

timeout connecting to XXX.XXX.XXX.XXX:XXX
Error Connecting to XXX.XXX.XXX.XXX (No route to host)
Connection to XXX.XXX.XXX.XXX failed (Error NT_STATUS_HOST_UNREACHABLE)

Как я могу это исправить?

Вот пошаговая инструкция о том, как я установил SAMBA. Пожалуйста, проверьте, не пропустил ли я что-то.

  1. Проверьте, установлен ли SAMBA, используя команду ниже:
    $ rpm -q samba

  2. Если SAMBA еще не установлен, введите команду, указанную ниже, чтобы получить доступ root: $ su –

  3. Затем вам будет предложено ввести свой пароль.

  4. Скачайте и установите пакет Linux SAMBA, используя команду:
    yum install samba

  5. Настройте брандмауэр Linux так, чтобы он разрешал трафик SAMBA, следуя шагам ниже.
    a. Нажмите Система >> Администрирование > Уровень безопасности и брандмауэр
    b. Введите пароль root> в предоставленное текстовое поле
    c. На вкладке “Опции брандмауэра” отметьте SAMBA > Выпадающий список.
    d. Примените изменения и нажмите ok.

  6. Настройте конфигурационный файл SAMBA. В терминале у вас должен быть доступ root (сделайте, как указано в пункте 2) и введите команду ниже.

    gedit /etc/samba/smb.conf
    

это откроет smb.conf, и он готов к изменению.

Найдите часть конфигурационного файла, которая содержит рабочую группу. Измените эту
часть, изменив значение на “workgroup”

   workgroup = workgroup

И добавьте этот раздел
[NetApps]

path = /data/network-applications 
  writeable = yes
  browseable = yes
valid users = administrator Сохраните все изменения.
  1. Создайте пользователя SAMBA
    a. Вы должны получить привилегии root, выполнив команду из пункта 2.
    b. Добавьте администратора как пользователя smbpasswd -a > administrator
    c. Затем вас попросят ввести пароль для этого > аккаунта.
    d. Чтобы узнать, есть ли у вас какие-либо ошибки в конфигурации, используйте > эту команду Testparm

  2. Запустите сервис SAMBA и NetBios
    a. Чтобы запустить сервис SAMBA и NetBios /etc/init.d/smb {start|stop|restart|reload|status|condrestart}

  3. Доступ к общим ресурсам Windows с CentOS
    a. Получите привилегии root, выполнив пункт 2.
    b. Скачайте и установите samba-client $ Yum install > samba-client

Я пишу это с точки зрения сервера samba.

Если у вас нет доступа к графическому интерфейсу или вы предпочитаете делать все из командной строки, вы можете заменить шаг 5 следующим образом:

Сначала узнайте, на каких портах прослушивает samba. Это можно сделать с помощью этой команды:

netstat -tulpn | egrep “samba|smbd|nmbd|winbind”

Вы увидите что-то вроде этого:

tcp 0 0 127.0.0.1:139 0.0.0.0:* LISTEN 43270/smbd
tcp 0 0 10.0.0.1:139 0.0.0.0:* LISTEN 43270/smbd
tcp 0 0 10.0.0.1:88 0.0.0.0:* LISTEN 43273/samba
tcp 0 0 127.0.0.1:88 0.0.0.0:* LISTEN 43273/samba
tcp 0 0 127.0.0.1:445 0.0.0.0:* LISTEN 43270/smbd
tcp 0 0 10.0.0.1:445 0.0.0.0:* LISTEN 43270/smbd

Приведенный выше пример показывает, что сервисы слушают на локальном хосте (127.0.0.1) и интерфейсе с IP 10.0.0.1 – каждый на перечисленных портах (139, 88, 445 и так далее). Дополнительную информацию о использовании портов samba можно найти здесь: https://wiki.samba.org/index.php/Samba_port_usage

Запишите порт и связанные с ним tcp/udp, затем добавьте строки, которые открывают эти порты и протоколы в /etc/sysconfig/iptables (вероятно, будет неплохая идея сделать резервную копию iptables перед редактированием).

Если мы возьмем верхнюю строку вывода из примера выше, мы хотели бы открыть TCP порт 139 в iptables. Это можно сделать, добавив следующую строку текста в /etc/sysconfig/iptables:

-A INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT

Если вы хотите открыть UDP порт 137, вы можете сделать это, добавив следующую строку текста в /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m udp -p ucp –dport 137 -j ACCEPT

Вам нужно будет продолжать добавлять строки для любых других портов, которые вам нужно открыть.

Затем сохраните изменения и перезапустите IPtables (service iptables restart).

Надеюсь, это поможет.

Ответ или решение

Решение проблемы NT_STATUS_HOST_UNREACHABLE в CentOS при подключении к файловому серверу Windows через SAMBA

При попытке подключиться к файловому серверу Windows с помощью SAMBA в CentOS возникает ошибка NT_STATUS_HOST_UNREACHABLE. Эта проблема может быть вызвана несколькими факторами, включая настройки сети, файрвола и конфигурацию SAMBA. В данном руководстве мы рассмотрим основные шаги по диагностике и решению этой проблемы.

Общая информация

Согласно вашему описанию, вы установили SAMBA и столкнулись с проблемой подключения. Вы привели детальный план установки, который, в принципе, выглядит корректным. Однако, чтобы успешно подключиться к файловому серверу, необходимо провести несколько дополнительных проверок и настройку.

Шаги по устранению проблемы

  1. Проверка сетевого подключения:

    • Убедитесь, что CentOS и сервер Windows находятся в одной подсети. Для этого используйте команду:
      ping [IP_адрес_сервера]
    • Если вы не получаете ответа, возможно, проблема в физическом подключении, настройках маршрутизации или в сети.
  2. Проверка доступности порта:

    • Убедитесь, что порты, используемые для SAMBA, открыты и доступны. Для этого выполните на сервере следующую команду:
      netstat -tulpn | egrep "samba|smbd|nmbd|winbind"
    • Убедитесь, что порты 137 (UDP), 138 (UDP), 139 (TCP) и 445 (TCP) прослушиваются. Если они слушаются только на локальном интерфейсе (127.0.0.1), это может быть причиной проблемы.
  3. Настройка файрвола:

    • Если файрвол установлен, необходимо убедиться, что он не блокирует необходимые порты. Для управления iptables добавьте правила для открытых портов:
      iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
      iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
      iptables -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
      iptables -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
    • Сохраните изменения и перезапустите iptables:
      service iptables restart
  4. Проверка конфигурации SAMBA:

    • Убедитесь, что файл конфигурации SAMBA (/etc/samba/smb.conf) настроен правильно. Особое внимание обратите на параметр workgroup, который должен соответствовать рабочей группе (или домену) Windows-сервера.
    • Проверьте секцию [NetApps], чтобы убедиться, что путь и разрешения настроены верно.
  5. Тестирование конфигурации SAMBA:

    • После внесения изменений в конфигурацию SAMBA полезно выполнить тест:
      testparm
    • Это позволит убедиться, что файл конфигурации не содержит ошибок.
  6. Перезапуск служб SAMBA:

    • После внесения изменений необходимо перезапустить службы SAMBA:
      systemctl restart smb
      systemctl restart nmb
  7. Проверка доступности на уровне сети:

    • Убедитесь, что с вашего CentOS можно выполнить запрос к серверу через SMB, используя команды:
      smbclient -L //hostname -U [username]
    • Эта команда покажет доступные ресурсы на сервере.

Заключение

Ошибка NT_STATUS_HOST_UNREACHABLE может быть многогранной и может потребовать анализа на уровне сети и конфигурации. Следуя этим шагам, вы сможете устранить большинство проблем, связанных с подключением SAMBA к файловым серверам Windows. Если проблема не устраняется, рекомендуется обратиться к сетевому администратору для более глубокого анализа конфигурации сети и серверов.

Оцените материал
Добавить комментарий

Капча загружается...