Вопрос или проблема
Я использую 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. Пожалуйста, проверьте, не пропустил ли я что-то.
Проверьте, установлен ли SAMBA, используя команду ниже:
$ rpm -q sambaЕсли SAMBA еще не установлен, введите команду, указанную ниже, чтобы получить доступ root: $ su –
Затем вам будет предложено ввести свой пароль.
Скачайте и установите пакет Linux SAMBA, используя команду:
yum install sambaНастройте брандмауэр Linux так, чтобы он разрешал трафик SAMBA, следуя шагам ниже.
a. Нажмите Система >> Администрирование > Уровень безопасности и брандмауэр
b. Введите пароль root> в предоставленное текстовое поле
c. На вкладке “Опции брандмауэра” отметьте SAMBA > Выпадающий список.
d. Примените изменения и нажмите ok.Настройте конфигурационный файл 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 Сохраните все изменения.
Создайте пользователя SAMBA
a. Вы должны получить привилегии root, выполнив команду из пункта 2.
b. Добавьте администратора как пользователя smbpasswd -a > administrator
c. Затем вас попросят ввести пароль для этого > аккаунта.
d. Чтобы узнать, есть ли у вас какие-либо ошибки в конфигурации, используйте > эту команду TestparmЗапустите сервис SAMBA и NetBios
a. Чтобы запустить сервис SAMBA и NetBios /etc/init.d/smb {start|stop|restart|reload|status|condrestart}Доступ к общим ресурсам 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 и столкнулись с проблемой подключения. Вы привели детальный план установки, который, в принципе, выглядит корректным. Однако, чтобы успешно подключиться к файловому серверу, необходимо провести несколько дополнительных проверок и настройку.
Шаги по устранению проблемы
-
Проверка сетевого подключения:
- Убедитесь, что CentOS и сервер Windows находятся в одной подсети. Для этого используйте команду:
ping [IP_адрес_сервера]
- Если вы не получаете ответа, возможно, проблема в физическом подключении, настройках маршрутизации или в сети.
- Убедитесь, что CentOS и сервер Windows находятся в одной подсети. Для этого используйте команду:
-
Проверка доступности порта:
- Убедитесь, что порты, используемые для SAMBA, открыты и доступны. Для этого выполните на сервере следующую команду:
netstat -tulpn | egrep "samba|smbd|nmbd|winbind"
- Убедитесь, что порты 137 (UDP), 138 (UDP), 139 (TCP) и 445 (TCP) прослушиваются. Если они слушаются только на локальном интерфейсе (127.0.0.1), это может быть причиной проблемы.
- Убедитесь, что порты, используемые для SAMBA, открыты и доступны. Для этого выполните на сервере следующую команду:
-
Настройка файрвола:
- Если файрвол установлен, необходимо убедиться, что он не блокирует необходимые порты. Для управления 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
- Если файрвол установлен, необходимо убедиться, что он не блокирует необходимые порты. Для управления iptables добавьте правила для открытых портов:
-
Проверка конфигурации SAMBA:
- Убедитесь, что файл конфигурации SAMBA (
/etc/samba/smb.conf
) настроен правильно. Особое внимание обратите на параметрworkgroup
, который должен соответствовать рабочей группе (или домену) Windows-сервера. - Проверьте секцию
[NetApps]
, чтобы убедиться, что путь и разрешения настроены верно.
- Убедитесь, что файл конфигурации SAMBA (
-
Тестирование конфигурации SAMBA:
- После внесения изменений в конфигурацию SAMBA полезно выполнить тест:
testparm
- Это позволит убедиться, что файл конфигурации не содержит ошибок.
- После внесения изменений в конфигурацию SAMBA полезно выполнить тест:
-
Перезапуск служб SAMBA:
- После внесения изменений необходимо перезапустить службы SAMBA:
systemctl restart smb systemctl restart nmb
- После внесения изменений необходимо перезапустить службы SAMBA:
-
Проверка доступности на уровне сети:
- Убедитесь, что с вашего CentOS можно выполнить запрос к серверу через SMB, используя команды:
smbclient -L //hostname -U [username]
- Эта команда покажет доступные ресурсы на сервере.
- Убедитесь, что с вашего CentOS можно выполнить запрос к серверу через SMB, используя команды:
Заключение
Ошибка NT_STATUS_HOST_UNREACHABLE может быть многогранной и может потребовать анализа на уровне сети и конфигурации. Следуя этим шагам, вы сможете устранить большинство проблем, связанных с подключением SAMBA к файловым серверам Windows. Если проблема не устраняется, рекомендуется обратиться к сетевому администратору для более глубокого анализа конфигурации сети и серверов.