.local
test.local과 같은 주소를 가리키고 싶지만 127.0.0.1
작동하지 않습니다. 나는 최신 우분투를 사용하고 있습니다. /etc/NetworkManager/NetworkManager.conf에서 나는 주석을 달고 dns=dnsmasq
을 했습니다 sudo service network-manager restart
.
그런 다음 dnsmasq를 설치하고 address=/local/127.0.0.1
/etc/dnsmasq.d/mycustomfile에 을 추가한 다음 을 수행했습니다 sudo service dnsmasq restart
. 제가 언급한 것 외에는 다른 변경 사항을 적용하지 않았습니다.
그러나 test.local을 방문하면 127.0.0.1로 확인되지 않고 해당 .local 주소에 대한 ping 수행도 성공하지 못합니다. 의 내용이 /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 222.11.22.36
nameserver 222.11.22.37
이것은 데몬이 아닌 dnsmasq를 실행할 때의 출력입니다.
$ sudo dnsmasq --no-daemon
dnsmasq: started, version 2.68 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 222.11.22.37#53
dnsmasq: using nameserver 222.11.22.36#53
dnsmasq: read /etc/hosts - 9 addresses
dnsmasq가 실행 중이면 /etc/resolv.conf가 자동으로 업데이트됩니다(dnsmasq가 중지되면 위 항목으로 되돌아갑니다).
# 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.0.1
이:
$ sudo nslookup test.local 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: test.local
Address: 127.0.0.1
하지만 여전히 localhost에 ping을 수행해도 작동하지 않습니다.
dnsmasq가 .local 주소를 확인하도록 하려면 어떻게 해야 합니까?
답변1
local
적어도 우분투에서는 일종의 예약어인 것 같습니다.
address=/local/127.0.0.1
-- 작동하지 않습니다.address=/loc/127.0.0.1
-- 작동합니다.
답변2
dnsmasq가 올바르게 시작되는 것 같습니다. dnsmasq가 nslookup test.local 127.0.0.1
.
시스템이 dnsmasq를 사용하고 있는지 확인하려면 첫 번째 옵션으로 /etc/resolv.conf
사용하도록 업데이트해야 합니다.nameserver 127.0.0.1
또한 dnsmasq에서 맞춤형 업스트림 확인자 구성을 사용할 수도 있습니다 --resolv-file=/etc/resolv.conf.dnsmasq
.
답변3
아마도 avahi-daemon이 "local" 도메인을 사용하고 있을 것입니다. 보다:
https://unix.stackexchange.com/questions/352237/avahi-daemon-and-local-domain-issues
답변4
원하는 것이 자신의 컴퓨터를 다시 가리키는 것뿐이고 dnsmasq를 사용하여 다른 컴퓨터의 DNS 확인을 제어하려는 것이 아니라면 원하는 것은 실제로 /etc/hosts
. dnsmasq 및 설정에 대한 모든 변경 사항을 실행 취소하고 /etc/hosts
상단에 다음이 있는지 확인하는 것이 좋습니다.
127.0.0.1 localhost
127.0.1.1 mycomputername mycomputername.local anothername.local
그런 다음 mycomputername.local을 ping하면 자신을 가리킵니다(실제로는 127.0.1.1에서 실행 중인 dnsmasq 서버를 가리킨 다음 localhost를 가리킵니다). 네트워크의 다른 컴퓨터에 대한 항목을 추가하여 이 컴퓨터에서 해당 컴퓨터가 computer1.local
computer2.local
등 으로 참조될 수 있도록 표시할 수도 있습니다.
192.168.1.31 computer1.local
192.168.1.32 computer2.local
dnsmasq를 사용하여 변경 사항을 취소할 수 없는 경우 뒤에 추가 항목을 추가할 수 있지만 항목 자체를 localhost
삭제하거나 변경하지 마십시오 localhost
. 그래서 이렇게 :
127.0.0.1 localhost mycomputername mycomputername.local anothername.local
참고: Ubuntu 데스크탑에서 resolv.conf를 수정하는 올바른 방법은 작업 표시줄의 네트워크 관리자를 사용하는 것입니다. Ubuntu 서버의 올바른 방법은 dns-nameserver
네트워크 장치 아래에 항목을 추가 /etc/network/interfaces
하고 다시 시작하거나 수행하는 것입니다 ifdown eth0 && ifup eth0
. 상태 의 경고에 따라 /etc/resolv.conf
직접 수정하지 말고 /etc/network/interfaces
설정에 따라 동적으로 작성됩니다.