TightVNC ou Remmina não acessa pelo nome da máquina

Olá a todos
Meu problema é o seguinte, eu usava o TightVNC no meu computador pessoal e nos da empresa quando usava Windows. E lá eu só precisava colocar o nome da maquina que queria acessar e pronto, não colocava IP, porque o IP sempre mudava.
Achei que seria o mesmo usando a versão java no linux. Tentei com Remmina também, mas não funciona. To a semanas tentando achar uma solução que não envolva ficar digitando IP.
Estou usando o Manjaro KDE.
Se alguém souber outro fórum para indicar também ajuda.

Outras ferramentas que já usei foram:
AnyDesk
Google Remote Desktop

Preciso que no meu pc seja o tigthtvnc ou outro programa que faça o mesmo. Nos outros, vai ficar com o tightvnc instalado e não vou poder trocar.

Testa por “.local” no final do hostname no remmina, por exemplo, se o nome da máquina na rede for “skywalker” coloca “skywalker.local”.

Ja tentei, não funciona.

DNS

O protocolo TCP/IP entende apenas números. Para acessar os sites pelo nome é preciso usar a resolução de nomes, conhecido como DNS.

Quando seu computador recebe o endereço IP (via dhcp) ele também recebe o endereço de alguém que vai fazer esse serviço de traduzir os nomes para IP. Na rede doméstica é geralmente o roteador. Assim funciona a resolução de nomes para a internet.

Na rede local também é comum que se escolha um nome pro computador e um domínio local. Isso serve para o servidor (ou o roteador da sua casa) consiga entender e resolver os nomes DNS para usa rede local. Se foi configurado é possível acessar o seu servidor pelo endereço local DNS estilo servidor.meudominio.com conforme foi configurado no roteador e nos computadores locais.

NetBIOS

A rede windows usa um protocolo diferente para resolver os nomes das máquinas na rede local. É chamado NetBIOS. O programa do linux que faz essa comunicação é o samba, atráves dos serviços smbd e nmbd. É toda uma configuração complicada que nas empresas é bem feita e funciona. No seu computador linux é você que vai precisar configurar isso.

Verificação do funcionamento com NetBIOS

Primeiro teste se está funcionando:
nmblookup servidor
Se aparecer o endereço IP do seu servidor então o serviço está rodando e funcionando, porém o software que você usa não tem suporte para NetBIOS

Senão, verifique se o serviço do samba está rodando:
systemctl status smbd
systemctl status nmbd
Em algumas distribuições pode ser que seja apenas “smb” e “nmb”, ou ainda agrupados como “samba”

Se estiverem desativados, ative-os
systemctl start nmbd

Aguarde alguns instantes e tente novamente a resolução de nomes via NetBIOS
nmblookup servidor

Se funcionar, ok. Se não funcionar então precisa rever as configurações do seu /etc/samba/smb.conf No caso de ser uma rede corporativa, precisa configurar como membro de um domínio, que eu não sei fazer. Mas se for em casa a configuração padrão deve ser suficiente.

Integração com o programa

Lembre-se que o programa que você está usando deve ser compatível com o protocolo que você quer usar. É possível que mesmo configurado o seu computador, a versão do Linux do TightVNC não use a resolução de nomes via NetBIOS. Alguns programas sequer resolvem nomes via DNS. Depende da implementação e eu não sei informar se o programa que você está usando consegue ser compatível.

Eu acho que no windows a resolução via NetBIOS fica integrada no sistema, por isso deve funcionar em qualquer programa.

Usar nmblookup servidor retorna o IP. Os outros comandos:

systemctl status smb

● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: failed (Result: timeout) since Sat 2020-06-27 10:39:28 -03; 1h 14min ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 9559 ExecStart=/usr/bin/smbd --foreground --no-process-group $SMBDOPTIONS (code=killed, signal=TERM)
Main PID: 9559 (code=killed, signal=TERM)

jun 27 10:37:57 manjaro systemd[1]: Starting Samba SMB Daemon…
jun 27 10:37:58 manjaro smbd[9559]: [2020/06/27 10:37:58.213506, 0] …/…/lib/util/become_daemon.c:135(daemon_r>
jun 27 10:37:58 manjaro smbd[9559]: daemon_ready: daemon ‘smbd’ finished starting up and ready to serve connec>
jun 27 10:39:28 manjaro systemd[1]: smb.service: start operation timed out. Terminating.
jun 27 10:39:28 manjaro systemd[1]: smb.service: Failed with result ‘timeout’.
jun 27 10:39:28 manjaro systemd[1]: Failed to start Samba SMB Daemon.

systemctl status nmb

● nmb.service - Samba NMB Daemon
Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-27 09:35:34 -03; 2h 22min ago
Docs: man:nmbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 1534 (nmbd)
Status: “nmbd: ready to serve connections…”
Tasks: 1 (limit: 8240)
Memory: 7.0M
CGroup: /system.slice/nmb.service
└─1534 /usr/bin/nmbd --foreground --no-process-group

jun 27 09:35:34 manjaro systemd[1]: Starting Samba NMB Daemon…
jun 27 09:35:34 manjaro systemd[1]: Started Samba NMB Daemon.
jun 27 09:35:34 manjaro nmbd[1534]: [2020/06/27 09:35:34.988557, 0] …/…/lib/util/become_daemon.c:135(daemon_r>
jun 27 09:35:34 manjaro nmbd[1534]: daemon_ready: daemon ‘nmbd’ finished starting up and ready to serve connec>

systemctl start smb

Job for smb.service failed because a timeout was exceeded.
See “systemctl status smb.service” and “journalctl -xe” for details.

Pesquisando, indicaram instalar manjaro-settings-samba
Editar /etc/samba/smb.conf deixando assim client min protocol = NT1
Editar /etc/nsswitch.conf adicionando na linha hosts wins depois de dns.
Porém continua a mesma coisa, só consigo conectar pelo IP da máquina.

Consegui fazer funcionar aqui com o ping

Fiz assim:

  • Editar /etc/nsswitch.conf adicionando na linha hosts wins depois de dns .
  • Editar /etc/samba/smb.conf deixando assim wins support = yes
  • Adicionar a função winbind no samba. Para isso instale o pacote samba-winbind com apt, zypper, pamac, etc… (ou no gentoo, recompile o samba adicionando a USE FLAG winbind)

A partir daí começou a funcionar com o programa ping, que antes não resolvia nomes da rede windows.