간단한 대답

간단한 대답

DNSMASQ를 설치했지만 53 포트가 사용 중이어서 시작되지 않았습니다.

우분투에는 이미 dnsmasq 패키지가 있고 작동하고 있다는 것을 알았습니다.

이제 문제는... 이를 통해 /etc/hosts의 호스트를 확인할 수 있기를 원합니다.

즉, nslookup somehostonlan localhost /etc/hosts 파일에서 가져온 특정 IP로 확인됩니다.

하지만 이런 일은 일어나지 않습니다.

왜? 그런데 캐싱 DNS 서버로서 제대로 작동합니다. 나는 단지 /etc/hosts 파일에서 호스트를 확인하기를 원합니다.

답변1

인터넷 속도를 높이기 위해 ubuntu 12.04에서는 dns 항목을 캐시하는 로컬 DNS 서버인 dnsmasq를 시작하는 플러그인을 NetworkManager에 추가했습니다. 문제는 플러그인이 --no-hosts 문자열을 하드코딩했다는 것입니다.

따라서 한 가지 해결책은 NetworkManager 구성 파일에서 플러그인을 로드하는 줄을 주석 처리하고 NetworkManager를 다시 시작하는 것입니다.

sudo mv /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.bak | sed -e "s/^\(dns=dnsmasq\)$/#\1/" > /etc/NetworkManager/NetworkManager.conf'
sudo restart network-manager

또 다른 해결책은 dnsmasq를 래핑하여 원하지 않는 인수를 필터링하는 것입니다.

sudo mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.bin
sudo bash -c 'cat > /usr/sbin/dnsmasq' << EOF
#!/bin/sh
dnsmasq=/usr/sbin/dnsmasq.bin

exec $dnsmasq `echo $@ | sed -e s/--no-hosts//`
EOF

sudo chmod 755 /usr/sbin/dnsmasq

표시해 주세요버그당신에게 영향을 미치는 것처럼.

시스템 파일을 패치하지 않는 또 다른 솔루션

cat /etc/NetworkManager/dnsmasq.d/hosts.conf 

addn-hosts=/etc/hosts

답변2

이 버그는 지금도 여전히 나에게 영향을 미칩니다(Ubuntu 14.04).

마침내 Newworkmanager 패키지의 dnsmasq 구성 파일에 'addn-hosts=/etc/hosts' 줄을 추가하기만 하면 되는 솔루션을 찾았습니다.

echo 'addn-hosts=/etc/hosts' > /etc/NetworkManager/dnsmasq.d/etc-hosts
service network-manager restart

아이디어는 /etc/hosts를 추가 호스트 파일로 추가한다는 것입니다.

솔루션을 찾을 수 있더라도 바이너리 파일 /usr/sbin/NetworkManager에 하드 코딩된 '--no-hosts' 옵션이 실망스럽습니다.

답변3

2015년 8월 현재 다른 답변은 오래되었습니다.

간단한 대답

  1. 만들다 /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. 그 와 같은 줄을 넣으십시오 address=/whatever/1.2.3.4. 보다문서 (찾다 --address). 와일드카드가 가능합니다: address/.whatever./1.2.3.4.
  3. 죽이다 dnsmasq(벌레).
  4. 다시 시작하세요: $ service network-manager restart.

답변4

dnsmasq는 자동으로 파일을 사용해야 합니다 /etc/hosts. 이는 -h명령줄 옵션이나 no-hosts구성 옵션 으로 비활성화할 수 있습니다 . 나는 둘 중 하나가 기본 구성으로 설정될 것이라고 기대하지 않습니다.

dnsmasq가 호스트 파일을 다시 로드하도록 강제해 보세요. (구성 파일을 변경하면 다시 시작해야 합니다). 다음 명령 중 하나가 작동해야 합니다.

service dnsmasq reload

kill -HUP $(pidof dnsmasq)

지정한 시스템으로 작업하는 경우 옵션을 사용하여 이를 재정의 no-hosts할 수 있어야 합니다 . addn-hosts일반적으로 이는 형식의 추가 파일을 읽는 데 사용됩니다 /etc/hosts. 이는 DNS가 제공하기를 원하지만 파일에는 원하지 않는 추가 호스트 데이터를 지정하는 데 사용할 수 있습니다 /etc/hosts. 이는 /etc/hosts추가 호스트 데이터가 대체 파일에 제공되는 동안 패키지 관리자 및 관련 도구가 관리할 수 있도록 하는 데 사용할 수 있습니다 .

관련 정보