smbmount не может определить адрес хоста

11902
hasen

Я читаю это как руководство для доступа к сети Windows из Linux с помощью samba.

Машина, к которой я хочу получить доступ в моей сети, называется HP, следующие команды работают нормально:

smbclient -L HP smbclient //HP/D 

Но, когда я хочу смонтировать его, я получаю:

$ smbmount // HP / D / media / hp / d / ошибка монтирования: не удалось разрешить адрес для HP: нет адреса, связанного с именем хоста IP-адрес не указан и имя хоста не найдено 

Ошибка кажется странной, если она не может разрешиться HP, как smbclient прочитал ее ?!

ОБНОВИТЬ

Я не хочу указывать IP-адреса вручную, потому что они имеют тенденцию меняться время от времени.

3

6 ответов на вопрос

4
derobert

Это странно ... обычно smbmount может самостоятельно определять имена. Однако, поскольку это не так, вы можете использовать nmblookup, чтобы выяснить, какие методы разрешения работают, а затем использовать его как часть команды mount. Например, если вы используете сервер WINS:

$ nmblookup -R -U 172.16.1.3 Haruhi querying Haruhi on 172.16.1.3 172.16.1.3 Haruhi<00> 

тогда вы можете извлечь его с небольшой работой с оболочкой:

$ nmblookup -R -U 172.16.1.3 Haruhi | grep 'Haruhi<00>' | cut -d' ' -f1 172.16.1.3 

так что вы можете собрать все это вместе:

smbmount //HP/D /media/hp/d/ -o ip=`nmblookup -R -U 172.16.1.3 HP | grep 'HP<00>' | cut -d' ' -f1` 

и, следовательно, у вас нет IP-адреса в списке.

классно! по какой-то причине nmblookup возвратил две строки с ip и заканчивая `<00>`, поэтому мне пришлось добавить -m 1 в grep hasen 15 лет назад 0
Это странно, может быть, у него есть два ответа? Интересно, связано ли это с тем, почему smbmount не работает так, как должно. derobert 15 лет назад 1
я получаю две строки с моего сервера Samba, который имеет псевдоним интерфейса (eth0: 0) в той же подсети, что и реальный интерфейс (eth0). если я опускаю опцию `-U`, возвращается только реальный интерфейс, но вместе с ним перечисляются оба интерфейса. quack quixote 15 лет назад 0
3
Craig Francis

На Debian и, возможно, на других, установите winbind:

apt-get install winbind 

И убедитесь, что «/etc/nsswitch.conf» имеет «побед» в строке «хосты», как в:

hosts: files dns wins 

Этот второй, возможно, уже был сделан для вас.

Пакет создает файл /lib/libnss_wins.so

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/integrate-ms-networks.html#id2668413

Затем вы можете просто добавить записи в файл / etc / fstab.

1
jmoz

Я пытался смонтировать мои медиа-стримеры, подобные самбе. Общий ресурс называется playonhd, и использование smbclient -L // playonhd работает, но

sudo mount -t cifs -o guest //playonhd/HDD1 /mnt/box 

не.

Мой способ обойти это без указания ip в команде mount - использовать псевдоним, который я настроил в / etc / hosts:

192.168.1.27 box 

Который позволяет

sudo mount -t cifs -o guest //box/HDD1 /mnt/box 

использоваться. Я знаю, что IP-адрес все еще должен быть указан, но в моем случае это было нормально, так как он уже был в файле hosts, и я не хотел указывать его в cl.

Привет из будущего: у меня была та же самая проблема с новой установкой Ubuntu 18.04.1 на VirtualBox с мостовым соединением, где с новой установкой на VMWare с тем же 18.04.1 она работает каждый раз нормально. Ничто из того, что я пробовал, не заставляет его работать. Celess 6 лет назад 0
0
John T

Вы можете указать IP-адрес с переключателем параметров, добавьте это в конец:

-o ip=111.111.111.111 

очевидно, заменив IP на соответствующий IP-адрес сервера.

IP-адреса в сети не являются статичными, для их изменения требуется время, но в конечном итоге они меняются hasen 15 лет назад 0
ну, тогда это еще одна проблема полностью, это решит вашу проблему с подключением, хотя. John T 15 лет назад 0
Да, это сработало, спасибо :), но я считаю это временным / неоптимальным решением. Есть ли способ (например, с помощью smbclinet) автоматически получить IP-адрес компьютера и затем передать его команде smbmount через канал или что-то в этом роде? hasen 15 лет назад 0
ну вы можете назначить ему статический IP с вашего роутера. Затем вы можете отредактировать файл lmhosts, в основном это файл hosts для samba. В качестве альтернативы, если окно Windows может получить доступ к вашему компьютеру, возможно, оно записывает новый IP-адрес в файл на вашем компьютере при каждой загрузке? Затем просто сделайте что-то вроде этого: smbmount // HP / D / media / hp / d / -o ip = $ (cat ~ / somefile.txt | tr -d "") John T 15 лет назад 0
Также ознакомьтесь с этой статьей, кажется, что похожая проблема: http://www.linuxquestions.org/questions/linux-software-2/mounting-samba-shares-under-opensuse-and-kubuntu-567168/ John T 15 лет назад 0
0
user4126

У меня всегда были проблемы с smbmountмонтированием на основе имени хоста . Попробуйте mount.cifs, у меня это работает, где smbmountнет.

есть та же проблема hasen 15 лет назад 0
Так работает `mount.cifs`? Задача решена? :) user4126 15 лет назад 0
лол, не чувак это не работает hasen 15 лет назад 0
0
jgrowl

Assuming you have winbind set up, attaching .local after the host name worked for me. For example: sudo smbmount //mycomputername.local/storage /media/storage/