Montando o compartilhamento cifs no Ubuntu usando o nome NetBios, não o endereço IP

0

Eu tenho um par de máquinas Ubuntu e um PC com Windows. Se eu criar um compartilhamento no PC Windows, o computador Ubuntu poderá montá-lo usando mount -t cifs -o username=me //computername/sharename /mnt/mountpoint . Se eu criar um compartilhamento em qualquer uma das máquinas Ubuntu, o computador Windows poderá vê-lo em // computername / sharename na rede e acessá-lo bem.

No entanto, se eu criar um compartilhamento em um computador Ubuntu (qualquer um) e tentar montá-lo no outro, obtenho mount error: could not resolve address for computername: Unknown error . Usando o IP em vez do nome do netbios, ele é montado apenas com aparência de pêssego.

Ainda mais estranho, nmblookup computername produz o endereço IP.

O que eu preciso fazer nos computadores de compartilhamento e montagem do Ubuntu para montar o compartilhamento pelo nome do netbios em vez do endereço IP? (Fora de fazer um script bash para recuperar o endereço IP do nome do netbios toda vez, ou configurar IPs estáticos).

    
por Bo Thompson 18.05.2018 / 01:24

1 resposta

0

O suporte a NBNS em todo o sistema não é uma parte padrão do Ubuntu (ou da maioria dos outros sistemas Linux). O motivo nmblookup funciona porque gera e recebe pacotes NBNS por si próprio, enquanto todas as outras ferramentas (incluindo mount.cifs ) dependem da função global "resolve hostname" para escolher o protocolo correto.

O módulo de busca hostname para NBNS é chamado libnss_wins.so.2 , geralmente empacotado como libnss-winbind ou apenas parte de smbclient . Uma vez instalado, o Debian e o Ubuntu irão ativá-lo automaticamente, caso contrário, ele precisa ser adicionado à linha "hosts" de /etc/nsswitch.conf :

- hosts:          files dns
+ hosts:          files dns wins

Para funcionar, o módulo precisa que winbindd esteja em execução. (Eu acho que anteriormente costumava trabalhar sozinho, ou apenas com nmbd em execução, mas aparentemente não mais.)

Teste com:

  • getent ahosts ComputerName para todos os módulos ativos (aqueles listados em nsswitch.conf ),
  • getent -s wins ahosts ComputerName para o módulo wins especificamente (ativo ou não).
por 18.05.2018 / 06:39