내 LAN에 대한 DNS 서버 역할을 하도록 컴퓨터를 구성했습니다(대략 다음과 같습니다).이 가이드). 나의 주된 동기는 IP 대신 URL을 사용하여 내 컴퓨터와 장치에 액세스할 수 있다는 것입니다.
내 이름을 올바르게 구문 분석할 수 있으므로 잘 작동하고 잘 전달됩니다.
➜ ~ nslookup router.casa 192.168.1.5
Server: 192.168.1.5
Address: 192.168.1.5#53
Name: router.casa
Address: 192.168.1.1
그리고 외부:
➜ ~ nslookup google.com 192.168.1.5
Server: 192.168.1.5
Address: 192.168.1.5#53
Non-authoritative answer:
Name: google.com
Address: 172.217.28.174
( 192.168.1.5
이것이 DNS 서버 주소라는 것을 눈치채셨을 것입니다)
그런 다음 DHCP 서버(Linksys 라우터)를 192.168.1.5
기본 DNS 주소로 설정한 다음 Google 주소를 설정했습니다. 이는 로컬 DNS 서버가 다운된 경우에도 내 장치가 이름을 확인할 수 있기를 원하기 때문입니다. 이것도 작동하는 것 같거나 이 작업을 수행할 때 적어도 어떤 컴퓨터에서든 올바르게 반영되는 것 같습니다.
➜ ~ nmcli dev show | grep DNS
IP4.DNS[1]: 192.168.1.5
IP4.DNS[2]: 8.8.8.8
IP4.DNS[3]: 8.8.4.4
그러나 nslookup
명시적인 DNS 주소가 없는 일반 쿼리는 작동하지 않습니다.
➜ ~ nslookup router.casa
Server: 127.0.1.1
Address: 127.0.1.1#53
** server can't find router.casa: NXDOMAIN
많은 SuperUser, Unix & Linux 및 AskUbuntu 질문을 읽은 후 이제 이 주소가 기본적으로 설정 되고 내 배포판(Mint)에 사전 구성된 127.0.1.1
로컬 DNS 캐시와 유사하다는 것을 알게 되었습니다 . resolvconf
효과적으로:
➜ ~ 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
수동 패치(또는resolv.conf 기본 파일 편집,resolvconf를 완전히 제거합니다., 등. ). 그러나 모든 게스트 장치가 로컬 이름을 사용할 수 있기를 원하며 전체 LAN 설정을 편집하고 싶지는 않습니다(일부 장치는 내 것이 아닙니다).
모든 PC 및 장치에 대한 설정을 수동으로 편집할 필요가 없도록 DNS 서버 및/또는 DHCP를 구성하는 방법이 있습니까?
또한 부가적인 질문으로 이 127.0.1.1 서버는 왜 첫 번째 DNS 주소를 무시합니까? nslookup
DNS 서버에서 사용해도 실패합니다.
➜ ~ nslookup router.casa 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: router.casa
Address: 192.168.1.1
➜ ~ nslookup router.casa 127.0.1.1
Server: 127.0.1.1
Address: 127.0.1.1#53
** server can't find router.casa: NXDOMAIN
더 유용한 출력:
➜ ~ sudo netstat -tulpn | grep 127.0.1.1
tcp 0 0 127.0.1.1:53 0.0.0.0:* ESCUCHAR 1489/dnsmasq
udp 0 0 127.0.1.1:53 0.0.0.0:* 1489/dnsmasq
답변1
항목 127.0.1.1
이 여기에 있을 가능성이 가장 높으며, dnsmasq
DNS 및 DHCP를 제공(가장 중요하게는 캐시)하는 로컬 데몬입니다. NetworkManager는 다음과 같이 dnsmasq를 실행하지 않도록 구성할 수 있습니다. 파일을 편집하고 줄의 시작 부분에 배치하여 /etc/NetworkManager/NetworkManager.conf
줄을 주석 처리합니다 .dns=dnsmasq
#
sudo nano /etc/NetworkManager/NetworkManager.conf
이제 네트워크 관리자를 다시 시작하십시오.
sudo service network-manager restart
다음으로 127.0.1.1
항목이 라우터에서 사라지고 /etc/resolv.conf
라우터에서 얻은 항목으로 대체되었는지 확인합니다.