Świeżo zainstalowałem Ubuntu 16.10 i zsynchronizowałem kopię zapasową mojego poprzedniego katalogu domowego z kubuntu 16.04 do mojej nowej instalacji. Wszystko działa dobrze, ale nie udało mi się rozwiązać adresów lokalnych pomimo wielu prób i błędów.
Wydaje się, że wszystkie sieci działają bez zarzutu. Przeglądanie Internetu, wyszukiwanie adresów zewnętrznych DNS, ssh itp. Są świetne. Lokalnie mogę uzyskać dostęp do maszyn poprzez ssh z ich adresami, ale nie ich nazwami. Wszystko działa dobrze w nautilus / samba, co oznacza, że WINS działa. Wydaje się, że jedynym problemem jest DNS sieci lokalnej. Mam zainstalowanego i uruchomionego demona avahi, podobnie jak w Ubuntu.
Włączyłem rozwiązywanie problemów, używając << >>, aby skrócić zbędne lub poprawnie działające części.
$ nmcli g
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
$ ping tendril8 << or tendril8.local >>
ping: tendril8: Name or service not known
$ ping gateway
PING gateway (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.16 ms
$ ping askubuntu.com
PING askubuntu.com (151.101.129.69) 56(84) bytes of data.
64 bytes from 151.101.129.69 (151.101.129.69): icmp_seq=1 ttl=49 time=43.0 ms
$ nslookup askubuntu.com
Server: 127.0.1.1
Address: 127.0.0.1#53
<< followed by several IP addresses >>
$ nslookup tendril8 << or tendril8.local >>
Server: 127.0.1.1
Address: 127.0.0.1#53
** server can't find tendril8: NXDOMAIN
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 15 19:30 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files resolve [!UNAVAIL=return] mdns4_minimal dns [NOTFOUND=return]
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Uwaga: Sporo czasu poświęciłem na „starsze” rozwiązania, zanim Ubuntu przeszedł na systemd. Rozwiązany w 16.10. Nie działały one dla mnie i nie sądzę, aby było to duplikat pytań podobnych do wcześniejszych konfiguracji Ubuntu.
źródło
Odpowiedzi:
Jeśli dobrze rozumiem twoje pytanie, nie możesz rozwiązać swoich lokalnych nazw hostów.
Miałem ten sam problem ze świeżą instalacją 16.10 i okazuje się, że jest to znany problem ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624071 ) związany z libnss -resolve w systemd.
W moim przypadku rozwiązaniem było przejrzenie pliku /etc/nsswitch.conf i zwrócenie szczególnej uwagi na sposób, w jaki NSS rozwiązuje problemy z hostami:
Wydaje się, że ta logika kończy się niepowodzeniem rozpoznawania nazwy hosta, zanim jeszcze przejdzie do mDNS.
Edycja linii hostów z powrotem do wersji wcześniejszej niż 16.10 naprawia ten oczywisty błąd logiczny:
Dołączony link do raportu o błędzie sugeruje, że przyszłe wydanie pakietu systemowego może ostatecznie rozwiązać ten problem.
Bogaty
źródło
Alternatywnym rozwiązaniem, które automatycznie edytuje
/etc/nsswitch.conf
jest usunięcie [ edycja: i ponowna instalacja]libnss-resolve
:źródło
Miałem ten problem ze świeżą instalacją Ubuntu 17.04. Wybrałem przejście z używania systemd-resolved na dnsmasq na moim laptopie (serwer nazw używa również dnsmasq). Wykonałem czynności opisane w temacie Jak wyłączyć systemd-resolved i DNS przy pomocy dnsmasq?
źródło