Ubuntu 16.10에서 로컬 DNS 조회를 구성하는 방법은 무엇입니까?


9

Ubuntu 16.10을 새로 설치하고 kubuntu 16.04에서 새 설치로 이전 홈 디렉토리의 백업을 rsync했습니다. 상황이 잘 작동하지만 시행 착오에도 불구하고 로컬 주소를 확인할 수 없었습니다.

모든 네트워킹이 완벽하게 작동하는 것 같습니다. 인터넷 브라우징, 외부 주소의 DNS 조회, ssh 등이 훌륭합니다. 로컬에서는 ssh를 통해 이름을 사용하지 않고 주소를 사용하여 컴퓨터에 액세스 할 수 있습니다. 그것은 노틸러스 / 삼바에서 모두 잘 작동합니다. 즉 WINS가 작동합니다. 단일 문제는 로컬 네트워크 DNS입니다. 우분투와 함께 제공되는 avahi-daemon을 설치하고 실행했습니다.

중복되거나 올바르게 작동하는 부분을 단축하기 위해 << >>를 사용하여 몇 가지 문제 해결을 포함 시켰습니다.

$ 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

참고 : 16.10에서 우분투가 systemd.resolved로 전환하기 전에 "오래된"솔루션을 살펴 보는 데 많은 시간을 보냈습니다. 그들은 나를 위해 일하지 않았으며 이것이 이전 우분투 구성을 가진 유사한 질문과 중복되는 질문이라고 생각하지 않습니다.


1
이 업그레이드 시스템도 일이 ... 나는 그 질문이 :) 일에 방문을 많이받을 것 같아요
미셸 다 미코

네트워킹 문제가 가장 심각합니다. 그리고 이것은 나를 열심히 물지 만 약간 다른 방식으로합니다. 대답은 나를 위해 고치지 않았습니다. 자세한 내용은 내 질문 을 참조 하십시오.
moodboom

답변:


18

질문을 제대로 이해하면 로컬 호스트 이름을 확인할 수 없습니다.

거기에 16.10을 새로 설치해도 같은 문제가 발생했으며 libnss와 관련된 알려진 문제 ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624071 ) -systemd에서 해결하십시오.

필자의 경우 해결책은 /etc/nsswitch.conf 파일을 검토하고 구체적으로 NSS가 호스트를 확인하는 방법에 주목하십시오.

hosts: files resolve [!UNAVAIL=return] mdns4_minimal [NOTFOUND=return] dns myhostname

이 논리는 mDNS에 도달하기 전에 호스트 이름 확인에 실패한 것으로 보입니다.

호스트 라인을 16.10 이전 릴리스로 다시 편집하면 다음과 같은 명백한 논리 오류가 수정됩니다.

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

포함 된 버그 보고서 링크는 시스템 패키지의 향후 릴리스에서이 문제를 해결할 수 있음을 나타냅니다.

풍부한


1
링크와 예제를 모두 갖춘 환상적인 답변! 나는 당신의 제안을 가지고 놀았고 "[NOTFOUND = return]"및 "[! UNAVAIL = return]"이전에 "mdns4_minimal"을 옮기는 한 효과가 있다는 것을 알았습니다. 로컬 주소에는 여전히 .local 접미사가 필요합니다.
mightypile

1
에서 libnss-해결 및 mDNS를위한보다 구체적인 버그가 bugs.launchpad.net/ubuntu/+source/systemd/+bug/1641328
질소

7

자동으로 편집하는 대체 솔루션 /etc/nsswitch.conf[ edit : and Reinstall]을 제거하는 것입니다 libnss-resolve.

sudo apt purge libnss-resolve
sudo apt install libnss-resolve

+1. 이것은 우리가 다루지 않은 패키지에 대해 시스템 구성을 그대로 유지하려는 사람들에게 탁월한 솔루션입니다. ... 16.10이 잠시 동안 있었지만 지금까지 업그레이드 / 설치 도구로 수행해야합니다.
eskhool

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.