Docker에서 Dnsmasq 인스턴스를 실행하기 위해 포트 53에서 수신 대기하는 Dnsmasq를 비활성화하는 방법은 무엇입니까?

Docker에서 Dnsmasq 인스턴스를 실행하기 위해 포트 53에서 수신 대기하는 Dnsmasq를 비활성화하는 방법은 무엇입니까?

내 Debian 10 시스템에 도커화된 Dnsmasq 네트워크 전체 DNS 서버 솔루션을 갖고 싶습니다.

질문:

sudo lsof -i -P -n | grep LIST
dnsmasq  ... TCP 192.168.122.1:53 (LISTEN)

로컬 DNS 서비스를 수신하는 dnsmasq 인스턴스가 이미 있습니다. 하지만 저는 docker 인스턴스를 사용하고 싶습니다. (docker에는 웹 인터페이스가 있으므로 dnsmasq에서 빌드를 사용하라고 요청하지 마세요.)

docker-instance dnsmasq 웹 인터페이스에서 다음을 얻습니다.

⁣⁣dnsmasq: failed to create listening socket for port 53: Address in use

당연히 dnsmasq를 비활성화해야 합니다. 나는 이 스레드를 던졌습니다:

https://mmoapi.com/post/how-to-disable-dnsmasq-port-53-listening-on-ubuntu-18-04

  • 환경"DNSStublistener=no"
  • 작동하지만 재부팅 후에도 동일한 문제가 발생합니다.

분명히 내가 이해하지 못하는 다른 것이 있습니다. 이 질문은 이 주제와 관련이 있습니다.

Ubuntu 20.04에서 dnsmasq와의 충돌을 피하기 위해 포트 53에서 systemd-resolved를 올바르게 비활성화하는 방법은 무엇입니까?

  • 동일한 문제이지만 실제로 스트레스 없는 솔루션은 없으므로 Network Manager 솔루션 시대 이후에 이에 대한 새로운 스레드를 갖는 것이 가치가 있다고 생각했습니다.

그렇다면 새로운 문제가 발생하지 않고 어떻게 비활성화할 수 있습니까?

편집 : 발견된 솔루션하나의 인터페이스에서만 수신하도록 dnsmasq를 제한하는 방법은 무엇입니까?

설명하다

  • 여러 DNS 서버를 사용하도록 구성에 추가 -bind interface(맨 페이지의 내용에도 불구하고)

하지만

  • /etc/dnsmasq.conf문제가 있습니다. BC에 파일이 없나요 ?

답변1

나는 나 자신을 도왔습니다.

  1. 프로세스를 찾았고 다음 명령을 사용하여 conf 파일의 대상을 찾았습니다.클래식 시스템 관리자: Linux 명령줄에서 프로세스를 종료하는 방법지도 시간:
    ps aux | grep dnsmasq
    
  2. 파일을 편집하고(예:  nano /var/lib/libvirt/dnsmasq/default.conf) 바인딩을 바인딩 인터페이스로 동적으로 변경했습니다.
  1. 다시 시작하고 도움이 되는지 확인하세요.

  2. default.conf파일이 자동으로 생성되기 때문에 사용해야하는 것이 아닙니다.

    virsh net-edit default
    

    기본 설정을 편집합니다. libvirt v5.6 이전에는 사용자 정의 옵션 전달이 허용되지 않았기 때문에 또 다른 문제가 발생합니다. 하지만 그 후에는 특별한 XML 문구를 사용합니다.

       <dnsmasq:options>
         <dnsmasq:option value="foo=bar"/>
         <dnsmasq:option value="cname=*.foo.example.com,master.example.com"/>
       </dnsmasq:options>
    

    해결책은 다음에서 찾았습니다.libvrt를 사용하는 사용자 정의 dnsmasq(또는 사용자 정의 옵션)?;노력했지만 성공하지 못했습니다.

  3. 나는 다음을 사용하여 XML 파일의 기본 네트워크에 대해 DNS를 비활성화했습니다.

    <dns> <dns enable="no"/> </dns>
    

    매뉴얼 페이지의 지침을 따르십시오(tmp XML로 작성하고 모든 것이 정상일 때 새로운 표준으로 처리하므로 안전합니다).

  4. 해당 포트에 대해 DNS가 비활성화되어 있고 두 번째 dnsmasq 서버가 실행 중입니다.

답변2

pihole을 설정하고 dnsmasq에 참여하는 libvirt에 큰 장애가 있다는 점을 제외하면 동일한 문제가 있습니다. NASNewbie2k18의 답변에 대한 두 가지 부록:

  1. <dns> <dns enable="no"/> </dns>default.conf 파일에 추가하면 virsh net-edit default변경 사항이 저장 후 파일에서 제거되므로 도움이 되지 않습니다. 대신에 추가해야 하므로 <dns enable='no'/>추가 태그가 없습니다 <dns>. 재부팅 후 바인딩이 해제됩니다.
  2. 두 번째 바인딩은 10.0.3.1:53에 의해 열리고 완료됩니다 lxc-net. 파일에서 로 변경 USE_LXC_BRIDGE하고 를 사용하여 lxc-net 서비스를 다시 시작한 후 마지막 바인딩이 해제되었고 마침내 pihole을 시작할 수 있었습니다.false/etc/default/lxc-netsystemctl restart

관련 정보