Как разрешить имена хостов с помощью Raspbian 05.05.2015?

[114220] Если у вас есть баш 4, подумайте об использовании вместо него Globstar. Это даст вам рекурсивный глобус.

Это решение будет работать через файлы с сумасшедшими символами в их именах и позволит избежать подоболочки.

Но если bash 4 не вариант, вы можете воссоздать это решение, используя [114566]find -exec +[114567]:

Однако, это зависит от ARG_MAX вашей системы (в отличие от вышеприведенного), так что если количество файлов очень велико, вы все равно можете получить несколько запусков через подмножества файлов.[114227].

1
10.05.2019, 00:38
3 ответа

Решение

Я не могу предоставить это в комментарии, но хочу, чтобы вы увидели рабочий файл hosts (из моя рабочая установка Gentoo):

# /etc/hosts: Local Host Database
#
# This file describes a number of aliases-to-address mappings for the for 
# local hosts that share this file.
#
# In the presence of the domain name service or NIS, this file may not be 
# consulted at all; see /etc/host.conf for the resolution order.
#

# IPv4 and IPv6 localhost aliases
127.0.0.1       bedroom-gentoo.myISP.net     bedroom-gentoo  localhost
::1             bedroom-gentoo.myISP.net     bedroom-gentoo  localhost


#
# Imaginary network.
#10.0.0.2               myname
#10.0.0.3               myfriend
#
# According to RFC 1918, you can use the following IP networks for private 
# nets which will never be connected to the Internet:
#
#       10.0.0.0        -   10.255.255.255
#       172.16.0.0      -   172.31.255.255
#       192.168.0.0     -   192.168.255.255
#
# In case you want to be able to connect directly to the Internet (i.e. not 
# behind a NAT, ADSL router, etc...), you need real official assigned 
# numbers.  Do not try to invent your own network numbers but instead get one 
# from your network provider (if any) or from your regional registry (ARIN, 
# APNIC, LACNIC, RIPE NCC, or AfriNIC.)
#

Обратите внимание, что адрес localhost для 127.0.0.1 может разрешаться в несколько имен.

  1. Полное доменное имя (2-й столбец), если оно требуется приложениям. (Это объясняется в ссылках, предоставленных OP).
  2. Имя моей машины (3-й столбец).
  3. Локальный хост (4-й столбец).

Также обратите внимание, что я не делаю различий между IPv4 и IPv6


Этот формат устраняет необходимость в обходном пути для 127.0.1.1 . Поскольку я не хочу, чтобы моя машина была видна другим пользователям в моей сети, я оставил раздел воображаемой сети в комментариях, но если бы я хотел это сделать, я бы добавил (при условии, что у меня есть ваши устройства):

#
# Real Network
192.168.1.14            raspberrypi.myISP.net    raspberrypi
192.168.1.x             D-WHALEY2.myISP.net      D-WHALEY2
192.168.1.xx            LAPTOP.myISP.net         LAPTOP

# Imaginary Network
#10.0.0.2               myname
#10.0.0.3               myfriend
#

Чтобы эта работа работала каждый раз я должен войти в свой маршрутизатор и назначить его с помощью фильтрации MAC и удалить 127.0.1.1 из файла Raspian hosts . Это нужно сделать только один раз: (MAC-адрес преобразуется в статический IP-адрес)

  1. MAC-адрес Pi -> 192.168.1.14
  2. MAC-адрес D-WHALEY2 -> 192.168.1.x
  3. MAC-адрес LAPTOP -> 192.168.1.xx

Это гарантирует, что каждый раз, когда устройство в сети запускается, ему назначается адрес, соответствующий вашему файлу hosts .Это также устраняет необходимость для компьютеров Windows разрешать внутренние адреса.


Проблема

Windows не может разрешить адрес вашего Pi по 2 причинам:

  1. 127.0.1.1 не является допустимым внутренним адресом, согласно RFC 1918 , заменено на RFC 6761 . См. Также комментарии в файле hosts .
  2. Поскольку в Windows есть файл hosts, который не содержит адреса 127.0.1.1 , он обрабатывает его как другой адрес localhost (см. Кто выбрал 127.0.0.1 в качестве localhost и почему? Что это значит? ), почему. Такое поведение приводит к ошибкам, описанным OP.

Короче говоря, это проблема Windows и «особенность» дистрибутивов на основе Debian. Удаление этой «функции» и настройка маршрутизатора для «устранения» проблемы в Windows должны позволить Samba подключиться

1
27.01.2020, 23:14

Это может указать вам правильное направление, но не решит проблему. Демоны DHCP и DNS на маршрутизаторах могут все испортить. В моем случае у меня была такая же проблема с opensuse и raspberypi. Вот все шаги, которые я сделал:

  1. Отредактировал файл имени хоста / etc / hostname mymacnine попробовал также mycmachine.domain Ни то, ни другое не сработало.
  2. Перепутано с resolv.conf Работало до тех пор, пока что-то не обновлялось или не удалялось на машине Windows
  3. Обнаружено, что в моем WRT1900ac есть место, где вы указываете доменное имя, и это сделал, работает каждый раз.

Кто-то указал, что ваше имя NetBIOS закомментировано.

1
27.01.2020, 23:14

Если вы скажете "ping raspberrypi", он не использует тот же способ поиска имени, что и ваши машины с Windows ... вероятно . Это,Протоколы SMB / CIFS имеют три способа поиска имен, но два других действительно используются только в том случае, если вы настраиваете домен, чего вы не делаете.

Это означает, что вам нужно выполнять поиск имен по протоколу NMB. Samba по умолчанию использует имя хоста локальной машины (вывод команды hostname ) в качестве имени NMB. Попробуйте запустить это и убедитесь, что это именно то имя хоста, которое вы ожидали. Если это не так, поиграйте с / etc / hosts , пока он не появится. Возможно, вам также придется исправить / etc / hostname (но обратите внимание, что изменения в последнем файле не выполняются при запуске сценария инициализации hostname или перезагрузке).

Инструмент самбы для поиска NMB, что неудивительно, называется nmblookup . Запустите это на raspberry pi с выводом hostname в качестве аргумента и убедитесь, что он совпадает с IP-адресом raspberry pi. Если это не так, опубликуйте результат. Если это так, но IP-адресу предшествует шестнадцатеричное число в угловых скобках (<>), это нормально (шестнадцатеричное число - это тип результата; существует много возможных типов результатов).

Протокол NMB довольно ужасен, отчасти потому, что он хочет выбрать хост «главного браузера», что не всегда работает правильно. Попробуйте запустить nmblookup -M - - (то есть nmblookup dash-capital m-space-dash-dash-space-dash. Да, это некрасиво). Это приведет к поиску основного браузера. Обратите внимание на возвращаемый IP-адрес. Запустите smbclient -L ip , где ip - это IP-адрес. Убедитесь, что ваш Raspberry Pi указан в списке.Если это не так, вы можете попробовать дать raspberry pi больше шансов на победу в выборах главного браузера, указав предпочтительный мастер = yes в вашем smb.conf . Однако, если вы используете домен, не делайте этого (мастер домена должен быть главным браузером, иначе вход в домен не удастся).

Если вы используете Windows 7 или более позднюю версию, присоединенную к домену, то по умолчанию Windows больше не будет выполнять поиск NMB. В этом случае вам может потребоваться установить некоторые ключи реестра, чтобы изменить эти значения по умолчанию (эти ключи можно найти на вики-странице samba). В качестве альтернативы вы можете присоединить raspberry pi к домену Windows, что устранит необходимость в NMB.

4
27.01.2020, 23:14

Теги

Похожие вопросы