Вопрос или проблема
Я установил Samba на CentOS, чтобы подключиться к общей папке Windows.
Я использовал эту команду, чтобы проверить успешность установки:
smbclient //[hostname]/[sharename] -U [username]
Вернул:
время ожидания подключения к XXX.XXX.XXX.XXX:XXX
Ошибка подключения к XXX.XXX.XXX.XXX (Нет маршрута к хосту)
Подключение к XXX.XXX.XXX.XXX не удалось
(Ошибка NT_STATUS_HOST_UNREACHABLE)
Как это исправить?
Шаги по установке SAMBA:
1. Проверьте, установлена ли SAMBA, используя команду:
$ rpm -q samba
2. Если SAMBA еще не установлена, введите команду ниже для получения прав суперпользователя $su
3. Затем вам будет предложено ввести ваш пароль.
4. Загрузите и установите пакет Linux SAMBA с помощью команды:
yum install samba
5. Настройте брандмауэр Linux так, чтобы он разрешал трафик SAMBA, следуя шагам ниже.
a. Нажмите Система >> Администрирование > Уровень безопасности и брандмауэр
b. Введите пароль суперпользователя> в предоставленное поле
c. На вкладке "Параметры брандмауэра" установите флажок SAMBA > Выпадающий список.
d. Примените изменения и нажмите "ОК".
6. Настройте файл конфигурации SAMBA. В терминале введите команду ниже.
gedit /etc/samba/smb.conf
это откроет smb.conf и готово к любым изменениям.
Найдите часть конфигурационного файла, содержащую рабочую группу. Измените эту часть, установив значение "workgroup"
workgroup = workgroup
И добавьте этот раздел
[NetApps]
path = /data/network-applications
writeable = yes
browseable = yes
valid users = administrator
Сохраните все изменения.
7. Создайте пользователя SAMBA
a. Вы должны получить права суперпользователя, выполнив команду под номером 2.
b. Добавьте администратора как пользователя smbpasswd -a administrator
c. Затем вам будет предложено ввести пароль для этой учетной записи.
d. Чтобы узнать, есть ли у вас ошибки в конфигурации, используйте эту команду Testparm
8. Запустите службу SAMBA и NetBios
a. Чтобы запустить службу SAMBA и NetBios /etc/init.d/smb {start|stop|restart|reload|status|condrestart}
9. Доступ к общим папкам Windows из CentOS
a. Получите права суперпользователя, выполнив номер 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).
Надеюсь, это поможет.
Ответ или решение
Ошибка "No route to host" при подключении к расшаренной папке Windows с использованием smbclient
в CentOS может возникнуть по нескольким причинам. Давайте рассмотрим возможные проблемы и шаги по их устранению, исходя из вашего описания.
1. Проверка подключения к сети
Первая вещь, которую нужно сделать, это убедиться, что сервер с Samba имеет доступ к сети, где находится Windows-хост. Используйте команду ping
для проверки связи:
ping [hostname]
Если пинг не проходит, возможно, проблема связана с настройками сети, маршрутизацией или физическим подключением.
2. Настройки брандмауэра
Одной из наиболее распространённых причин возникновения ошибки "No route to host" может быть неправильная конфигурация брандмауэра на CentOS или на целевой машине Windows. Убедитесь, что файрвол на CentOS настроен правильно:
- Для проверки, открыты ли необходимые порты, выполните следующую команду:
iptables -L -n
- Вам необходимо открыть порты для Samba. Обычно Samba использует порты 137 (UDP), 138 (UDP), 139 (TCP) и 445 (TCP). Для этого добавьте следующие правила в
/etc/sysconfig/iptables
:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
После внесения изменений не забудьте перезагрузитьiptables:
service iptables restart
3. Проверка настроек Samba
Убедитесь, что Samba правильно настроена для доступа к расшаренной папке. Проверьте файл конфигурации smb.conf
, который обычно находится в /etc/samba/smb.conf
. Убедитесь, что настройки в секции вашего шары корректны:
[NetApps]
path = /data/network-applications
writable = yes
browseable = yes
valid users = administrator
4. Активация сетевых служб Samba
Убедитесь, что службы Samba запущены. Проверьте, активны ли сервисы smbd
и nmbd
:
service smb status
service nmb status
Если они не запущены, запустите их:
service smb start
service nmb start
5. Проверка маршрутизации
Если проблема все еще остается, проверьте настройки маршрутизации на CentOS с помощью команды:
ip route
Убедитесь, что маршруты настроены правильно и что нет запрещенных маршрутов к хосту Windows.
6. Проверка конфигурации сети на Windows
Убедитесь, что на стороне Windows настроены все необходимые параметры для доступа к расшаренной папке. Проверьте, что включен общий доступ к файлам и принтерам, и что firewall на Windows позволяет трафик на необходимые порты.
Заключение
Следуя указанным шагам, вы сможете диагностировать и устранить проблему с подключением к Windows file share через smbclient
. Если ни один из вышеперечисленных шагов не помог, вам стоит обратиться за поддержкой к системному администратору или изучить системные журналы для выявления возможных ошибок.