AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1497507
Accepted
SO_32
SO_32
Asked: 2023-12-19 17:21:00 +0800 CST2023-12-19 17:21:00 +0800 CST 2023-12-19 17:21:00 +0800 CST

O pi-hole Dockerizado no Ubuntu torna a conexão inutilizável, é esperado?

  • 772

Para usar pi-hole em um contêiner no Ubuntu 22.04.3 LTS, primeiro baixei

docker pull pihole/pihole

então eu libero algumas portas

sudo systemctl disable systemd-resolved.service && sudo systemctl stop systemd-resolved.service

então, para executá-lo,

docker run -d --name pihole-cont -it -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 80:80 -p 443:443 -v "${DOCKER_CONFIGS}/dnsmasq.d/:/etc/dnsmasq.d/" -e ServerIP=[my IP address] --restart=unless-stopped --cap-add=NET_ADMIN --dns=127.0.0.1 --dns=1.1.1.1 pihole/pihole:latest"

Quando abro um navegador e digito

http://[docker's IP address]/admin

Chego à página de login do pi-hole, mesmo não sabendo a senha (presumo que seja normal), mas a conexão fica inutilizável. Torna-se impossível navegar na internet, os sites começam a carregar mas demora uma eternidade, o vídeo não começa antes de pelo menos cinco minutos, o limite da minha paciência. Também instalei com sucesso o pi-hole em uma máquina virtual com os mesmos resultados. Achei que o problema poderia ser um loop sem fim: meu computador faz uma solicitação, passa pelo servidor DNS, o servidor DNS é virtualizado no meu pc, então faz uma solicitação para o meu pc e assim por diante, mesmo que eles tinham IPs diferentes. Isto é semelhante, IPs diferentes, internet inutilizável.

Meu palpite está correto ou errado? Estou fazendo algo errado? É mesmo possível conteinerizar um buraco para que a Internet seja realmente acessível?

Agradeço antecipadamente

EDIT: Então, remover --dns=127.0.0.1faz o aviso

WARNING: Localhost DNS setting (--dns=127.0.0.1) may fail in containers

vá embora. No entanto, simplesmente desabilitar systemd-resolved.servicequebra minha internet de qualquer maneira. Se docker stop [pi-hole ID]a internet continuar quebrada, mesmo que eu habilite systemd-resolved.servicenovamente. Este último emite um aviso de conflito de porta. Para recuperar minha conexão com a Internet, limpo todas as imagens e contêineres com

docker system prune -a -f --volumes

(muito drástico, mas rápido), reinicie systemd-resolved.servicee posso finalmente editar esta questão.

Então o problema parece ser que eu desativo systemd-resolved.service, que tem um conflito de porta com o contêiner. Como faço para corrigir isso?

Obrigado novamente

virtualization
  • 1 1 respostas
  • 146 Views

1 respostas

  • Voted
  1. Best Answer
    user68186
    2023-12-21T03:22:28+08:002023-12-21T03:22:28+08:00

    É mais fácil de usardocker-compose

    Docker-compose permite manter todos os parâmetros em um arquivo e executar o contêiner como um usuário normal (não como root, não precisa sudo).

    Certifique-se de que o docker-compose esteja instalado:

    sudo apt install docker-compose-plugin
    

    Crie uma pasta onde irá o arquivo de configuração:

    mkdir /home/$USER/pi-hole
    cd /home/$USER/pi-hole
    

    Observe $USERque será substituído pelo seu nome de usuário.

    Em seguida, crie o docker-compose.ymlarquivo:

    nano docker-compose.yml
    

    Com o conteúdo do arquivo:

    version: "3"
    services:
      pihole:
        container_name: pihole
        image: pihole/pihole:latest
          hostname: pi-hole
        ports:
        - "53:53/tcp"
        - "53:53/udp"
        - "67:67/udp"
        - "80:80/tcp"
        - "443:443/tcp"
        environment:
        # Change the Time Zone to your area
        TZ: ‘America/New_York'
        # Change the password to suit your needs
        WEBPASSWORD: SecretPassword
        # Volumes store your data between container upgrades
        volumes:
        - './etc-pihole/:/etc/pihole/'
        - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
        cap_add:
        - NET_ADMIN
        restart: unless-stopped
    

    Certifique-se de alterar o fuso horário e a senha no texto acima para atender às suas necessidades. A linha hostname: pi-holeacima determina o que você vê no portal Pihole. Se você tiver duas ou mais instâncias de imagens do docker Piholes em computadores diferentes, faz sentido nomeá-las de forma diferente nos respectivos docker-compose.ymlarquivos.

    Salve e saia do editor com Ctrl+ Sseguido de Ctrl+ X.

    Desative e pare o serviço resolvido pelo systemd. Você parece já ter feito isso. Estou guardando isso para outros:

    sudo systemctl disable systemd-resolved.service
    sudo systemctl stop systemd-resolved.service
    

    Desvincular e editar resolv.conf:

    sudo unlink /etc/resolv.conf
    sudo nano /etc/resolv.conf
    

    Quando o arquivo abrir no editor nano, certifique-se de que a seguinte linha esteja comentada com um #na frente:

    #nameserver 127.0.0.53
    

    Salve e saia do editor com Ctrl+ Sseguido de Ctrl+ X.

    Teste se o DNS está funcionando antes de iniciar o Pi-hole:

    ping -c4 google.com
    

    Se funcionar, inicie o pi-hole com o seguinte comando:

    docker compose up -d
    

    Isso iniciará o start docker como um daemon (a -dopção) e pegará a configuração do contêiner que docker-compose.ymlvocê criou acima.

    Se tudo correr bem, você poderá abrir o portal Pihole acessando:

    http://[Your Ubuntu-Pihole computer's IP address]/admin/login.php
    

    no seu navegador favorito, como o Firefox. Então você pode definir os servidores DNS que Pihole usa em suas configurações

    insira a descrição da imagem aqui

    Espero que isto ajude

    • 2

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve