18.04에서 로컬 와일드 카드 (127.0.0.1) 도메인 해상도를 설정하려면 어떻게해야합니까?


18

우분투 14.04에서 dnsmasq를 사용하여 와일드 카드 example.com 도메인을 로컬 컴퓨터 (집에있는 데스크탑 컴퓨터)로 해석합니다.

주위를 많이 읽은 후에는 18.04를 새로 설치했을 때 평생 똑같이 정리할 수 없었습니다.

내가 지금 달성하고 싶은 것은 :

  • ping example.com 93.184.216.34가 아닌 127.0.0.1을 핑 (ping) 하기위한 것;
  • ping anysubdomain.example.com 127.0.0.1도 핑 하기 위해;
  • 과에 대한 ping google.com 라우터 / IP DNS를 통해 실제 google.com를 ping합니다.

분명히 이것은 간단하고 사소한 것이어야합니까?

그러나 나는 혼란에 빠졌다. example.com의 해결책을 얻을 수는 있지만 다른 모든 것을 깨는 비용으로 만 가능합니다.

어떻게해야합니까?


1
14.04에서와 같이 dnsmasq를 설치하는 것이 어떻습니까?
vidarlo

1
@vidarlo 물론 내 질문에 표시된 것처럼 그것은 내가 한 첫 번째 일이었습니다. 그러나 14.04와 달리 "포트 53에 대한 수신 소켓을 만들지 못했습니다 : 주소가 이미 사용 중입니다"오류가 발생합니다. 내가 받아 들인 대답은 dnsmasq를 명시 적으로 설치하지 않고 잘 작동합니다.
Nick Rice

답변:


30

우분투 18.04의 단계는 다음과 같습니다. 로 구성하면 systemd-resolved잘 작동하지 않기 때문에 조금 오래 걸립니다 .NetworkManagerdnsmasq

그러나 네트워크 연결 변경 (WIFI, 유선 등 ...)이 투명하게 처리되기 때문에 여전히 dnsmasq에서 시작 하는 것이 좋습니다 NetworkManager.

NetworkManager에서 dnsmasq 활성화

파일을 편집하고 섹션에 /etc/NetworkManager/NetworkManager.confdns=dnsmasq을 추가 [main]하면 다음과 같습니다.

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

NetworkManager 관리 /etc/resolv.conf

sudo rm /etc/resolv.conf ; sudo ln -s /var/run/NetworkManager/resolv.conf /etc/resolv.conf

구성 example.com

echo 'address=/.example.com/127.0.0.1' | sudo tee /etc/NetworkManager/dnsmasq.d/example.com-wildcard.conf

재 장전 NetworkManager및 테스트

변경 사항을 적용하려면 NetworkManager를 다시로드해야합니다.

sudo systemctl reload NetworkManager

그런 다음 일반적인 사이트에 도달 할 수 있는지 확인할 수 있습니다.

dig askubuntu.com +short
151.101.129.69
151.101.65.69
151.101.1.69
151.101.193.69

마지막으로 example.com및 하위 도메인이 다음 과 같이 해결 되었는지 확인하십시오 127.0.0.1.

dig example.com askubuntu.example.com a.b.c.d.example.com +short
127.0.0.1
127.0.0.1
127.0.0.1

"systemd-resolved가 NetworkManager와 잘 작동하지 않는다"는 것은 무엇을 의미합니까?
Sebastian Stark

1
NetworkManager가 dns = dnsmasq를 사용하는 경우, systemd-resolved에게 dnsmasq를 사용하도록 지시해야합니다 (자동 일 수 있음).
pim

1
고마워요, 이것은 완벽하게 작동했습니다! 나는 당신에게 또 다른 시간 동안 현상금을 줄 수없는 것 같습니다. 그리고 아침에 하나 사라 졌으므로 지금 잠자리에 들었습니다. 내일 다시 켜면 그렇게 할 것입니다.
Nick Rice

2
대박. 많은 다른 기술을 읽었습니다. 이것이 마침내 효과가 있었던 것입니다.
레드 산드로

3
systemd-resolved로 되 돌리는 것을 선호하는 사람들은 기본적으로 /etc/resolv.conf가리 킵니다 /run/systemd/resolve/stub-resolv.conf.
Pothi Kalimuthu

2

먼저 /etc/NetworkManager/NetworkManager.conf다음 줄이 없거나 주석 처리되어 있지 않은지 확인하십시오 .

dns=dnsmasq

NetworkManager를 다시 시작하십시오.

sudo systemctl restart NetworkManager

프로세스를 종료하거나 시스템을 재부팅하여 NetworkManager 제어 dnsmasq가 더 이상 실행되고 있지 않은지 확인하십시오.

그런 다음 dnsmasq를 설치하십시오.

sudo apt install dnsmasq

다음에 추가하십시오 /etc/dnsmasq.d/example.com:

address=/example.com/127.0.0.1

dnsmasq를 다시 시작하십시오.

sudo systemctl restart dnsmasq

이제 example.com에 대한 와일드 카드 dns 재정의가 있어야합니다.


1
나는 이것을 작동시킬 수 없었다. 깨끗하고 최소한의 설치 ( "디스크 지우기"옵션 사용) 직후 sudo apt install dnsmasq에 "포트 53에 대한 수신 소켓을 만들지 못했습니다 : 주소가 이미 사용 중입니다"오류가 발생합니다. 나중 단계에서 문제가 해결되는 경우 어쨌든 끝까지 계속했지만 작동하지 않았으며 작동하지 않았습니다.
Nick Rice

그런 다음 NetworkManager에 의해 시작된 dnsmasq가 여전히 실행 중입니다. 따라서 먼저 비활성화하고 종료 한 다음 dnsmasq 패키지 만 설치해야합니다.
세바스찬 스타크

고마워, 세바스찬 그러나 나는 완벽하게 작동하는 pim의 대답을 이미 받아 들였으므로 더 이상 장난 치지 않고 계속 움직일 수 있습니다.
Nick Rice

이 아무 문제 @NickRice,하지만 어쩌면 다른 사람들이 시도하려는
세바스찬 스타크

물론 이죠, 세바스찬 가장 간단했기 때문에 먼저 답변을 시도했으며 필요한 모든 단계가 추가되면 매우 좋습니다.
Nick Rice

0

호스트 파일을 편집하는 것만 큼 간단하지는 않습니다. 몇 가지 옵션이 있습니다.

/ etc / hosts에서 와일드 카드를 처리하는 이 Python DNS 프록시

DNSmasq 사용


감사. DNSmasq 질문에 대한 귀하의 링크는 14.04에서 내가하고있는 일입니다. 포트 충돌로 인해 새로 설치 한 18.04 설치에서도 동일하게 작동하지 않습니다. 따라서 다른 것보다 다른 것이 필요합니다. 파이썬 DNS 프록시에 필요한 모든 코드를 살펴보면 필요한 모든 것을 믿을 수 없습니다. / etc / hosts 사용을 주장한 사람들을 제외하고는 이전에 없었습니다.
Nick Rice

netstat -tulpn포트를 사용하는 내용을 확인할 수 있습니까 ? 편집 : 신경 쓰지 마라, 받아 들인 대답을 보았다. 문제는 systemd-resolve입니다.
Harikrishnan R
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.