Pomoc Pi Hole na Dockerze, jak skofigurować?

krystianen

System Engineer
Q Specialist
25 Styczeń 2010
101
9
18
Poznań
QNAP
TS-x53
Ethernet
1 GbE
Wersja oprogramowania Firmware: 4.4.1 Build 20YYMMDD
Model serwera: QNAP TS-251A

Zainstalowałem PI HOLE na dockerze jednak podczas uruchomienia mam bład

Czy ktoś się spotkał z takim problemem?

Kod:
[✗] DNS resolution is currently unavailable

Doszukałem się że musze ze musze zedytować DNSy w pliku /etc/resolf.conf tylko nie wiem jak sie mam do niego stać. Bo wyrzuceniu w/w błedy pi hole sie wylacza.

Kod:
 ::: Starting docker specific checks & setup for docker pihole/pihole                                                                                                                                                                                                                                                     
WARNING Misconfigured DNS in /etc/resolv.conf: Two DNS servers are recommended, 127.0.0.1 and any backup server                                                                                                                                                                                                           
WARNING Misconfigured DNS in /etc/resolv.conf: Primary DNS should be 127.0.0.1 (found 127.0.0.11)                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                         
nameserver 127.0.0.11                                                                                                                                                                                                                                                                                                     
options ndots:0                                                                                                                                                                                                                                                                                                           
Assigning random password: -6wj8quc                                                                                                                                                                                                                                                                                       
  [i] Existing PHP installation detected : PHP version 7.0.33-0+deb9u5                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                         
  [i] Installing configs from /etc/.pihole...                                                                                                                                                                                                                                                                             
  [i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!                                                                                                                                                                                                                                             
  [✓] Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf                                                                                                                                                                                                                                                             
chown: cannot access '/etc/pihole/dhcp.leases': No such file or directory                                                                                                                                                                                                                                                 
Setting password: -6wj8quc                                                                                                                                                                                                                                                                                               
+ pihole -a -p -6wj8quc -6wj8quc                                                                                                                                                                                                                                                                                         
  [✓] New password set                                                                                                                                                                                                                                                                                                   
Using default DNS servers: 8.8.8.8 & 8.8.4.4                                                                                                                                                                                                                                                                             
DNSMasq binding to default interface: eth0                                                                                                                                                                                                                                                                               
Added ENV to php:                                                                                                                                                                                                                                                                                                         
                        "PHP_ERROR_LOG" => "/var/log/lighttpd/error.log",                                                                                                                                                                                                                                                 
                        "ServerIP" => "0.0.0.0",                                                                                                                                                                                                                                                                         
                        "VIRTUAL_HOST" => "0.0.0.0",                                                                                                                                                                                                                                                                     
Using IPv4 and IPv6                                                                                                                                                                                                                                                                                                       
::: Preexisting ad list /etc/pihole/adlists.list detected ((exiting setup_blocklists early))                                                                                                                                                                                                                             
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts                                                                                                                                                                                                                                                         
https://mirror1.malwaredomains.com/files/justdomains                                                                                                                                                                                                                                                                     
http://sysctl.org/cameleon/hosts                                                                                                                                                                                                                                                                                         
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt                                                                                                                                                                                                                                                         
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt                                                                                                                                                                                                                                                               
https://hosts-file.net/ad_servers.txt                                                                                                                                                                                                                                                                                     
::: Testing pihole-FTL DNS: FTL started!                                                                                                                                                                                                                                                                                 
::: Testing lighttpd config: Syntax OK                                                                                                                                                                                                                                                                                   
::: All config checks passed, cleared for startup ...                                                                                                                                                                                                                                                                     
::: Docker start setup complete                                                                                                                                                                                                                                                                                         
  [i] Pi-hole blocking is enabled                                                                                                                                                                                                                                                                                         
  [✗] DNS resolution is currently unavailable                                                                                                                                                                                                                                                                             
  [✗] DNS resolution is not available                                                                                                                                                                                                                                                                                     
[cont-init.d] 20-start.sh: exited 1.                                                                                                                                                                                                                                                                                     
[cont-finish.d] executing container finish scripts...                                                                                                                                                                                                                                                                     
[cont-finish.d] done.                                                                                                                                                                                                                                                                                                     
[s6-finish] syncing disks.                                                                                                                                                                                                                                                                                               
[s6-finish] sending all processes the TERM signal.                                                                                                                                                                                                                                                                       
[s6-finish] sending all processes the KILL signal and exiting.
 
kontener ma być odpalony z siecią w trybie BRIDGE (nazwa sterownika) - więc współdzieli zajęte porty z swoim hostem (więc QNAPem), jeśli port 67 jest zajęty , to kontener nie może używać portu 67

rozwiązaniem jest przełączenie sieci tego kontenera do innego sterownika (Networking overview), ale to wykracza poza moją wiedzę
niech ktoś ci z tym pomoże

pomocne może być Wiedza - docker-compose

niestety dalej nie pomogę bo nie mam QNAPa, a @Silas Mariusz nie raczył załatwić mi licencji na QNAP w chmurze :(
 
1674336410363.png
 
Ja to mam odpalone na RPi4, ogarnia na stałe ok. 28 klientów ale na QNAPie nic nie jest takie proste ;)

Wszystko wykonujesz przez SSH z konta ADMIN (tak musi być admin - jeśli dałeś się nabrać na QNAPowy żart o wyłączeniu tego użytkownika to teraz go włącz).
FAQ - Jak połączyć się po SSH do Linux w serwerze QNAP (PuTTY Windows)
Wszystko zostało przetestowane na QNAP TS-453Be (procesor x86-64, QTS 5.0.1.x) - jeśli masz inny model, wersje QTS a w szczególności procesor mogą pojawić się dodatkowe kroki do wykonania nie przewidziane w tej instrukcji. Instrukcja zakłada również że posiadasz minimalną wiedzę na temat Linuksa, dockera oraz potrafisz czytać ze zrozumieniem.


Na początek wykonujesz poniższe polecenia - tworzą katalog dla docker-compose i pliki do startu / aktualizacji kontenera.
Zamień /share/Public na dowolny inny katalog na dysku (coś z /share/) lub zostaw jak jest.
Bash:
cd /share/Public
mkdir pihole
cd pihole
touch docker-compose.yml
touch run.sh
touch upgrade.sh
chmod +x run.sh
chmod +x upgrade.sh

Jeśli nie masz zdefiniowanej sieci ze statycznymi adresami IP dla dockera to można ją stworzyć tym poleceniem - kontener wykorzystuje taką siec i warto mieć stałe IP dla serwera DNS.
Bash:
docker network create \
-d qnet \
--ipam-driver=qnet \
--ipam-opt=iface=qvs0 \
--subnet=10.11.12.0/24 \
--gateway=10.11.12.51 \
qnet-static
Zamienić qvs0 na swój własny interfejs wykonać polecenie ifconfig i znaleźć nazwę interfejsu który ma ten sam adres co QNAP
Zamienić subnet=10.11.12.0/24 na swoją własną podsieć
Zamienić gateway=10.11.12.51 na swoją bramę domyślną (router czy co tam masz)

Teraz trzeba dodać zawartość stworzonych plików oraz podmienić w nich kilka wartości na własne. Używam woluminów bo są mniej problematyczne w niektórych konfiguracjach (Wiedza - PiHole - QNAP )

docker-compose.yml
Sekcja enviroment:
WEBPASSWORD: na swoje własne hasło do panelu admina
ADMIN_MAIL: na swój adres email
Sekcja networks:
ipv4_address: na wolny statyczny adres IP w twojej sieci
Sekcja deploy:
cpus: można dopasować ile CPU ma otrzymywać (wartość między 0.1 a 2.0 będzie wystarczajaca - w razie potrzeby zmniejszać / zwiększać)
memory: można dopasować ilość RAM - dla bardzo dużej ilości klientów można zwiększyć

YAML:
version: '3.8'
services:
  pihole:
    container_name: pihole
    environment:
      PIHOLE_UID: 0
      PIHOLE_GID: 100
      TZ: 'Europe/Warsaw'
      WEBPASSWORD: 'SuperTajneHasłoKtoregoNiktNiezgadnie3'
      ADMIN_EMAIL: 'super@admin.net'
      IPv6: false
    hostname: pi.hole
    image: pihole/pihole:latest
    networks:
      qnet-static:
        ipv4_address: 10.11.12.6
    ports:
      - 53:53/tcp
      - 53:53/udp
      - 67:67/udp
      - 80:80/tcp
    restart: always
    volumes:
      - 'data:/etc/pihole/'
      - 'dnsmasq:/etc/dnsmasq.d'
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 512M
networks:
  qnet-static:
    external: true
volumes:
    data:
    dnsmasq:

run.sh
Bash:
#!/bin/bash
docker-compose up -d --force-recreate

upgrade.sh
Bash:
#!/bin/bash
docker-compose pull
docker-compose rm -s -f
docker-compose up -d --force-recreate --remove-orphans
docker image prune -f

Kiedy wszystko jest gotowe można uruchomić kontener poleceniem ./run.sh
Aby zaktualizować kontener, wystarczy odpalić ./upgrade.sh
1674377373153.png

1674377405831.png



Listy których używam:
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://hole.cert.pl/domains/domains_hosts.txt
https://raw.githubusercontent.com/M...ter/master/polish-pihole-filters/hostfile.txt
https://raw.githubusercontent.com/M...aster/polish-pihole-filters/easylist_host.txt
https://raw.githubusercontent.com/M...r/polish-pihole-filters/easy_privacy_host.txt
https://raw.githubusercontent.com/M...master/polish-pihole-filters/adguard_host.txt
https://raw.githubusercontent.com/M...ter/master/polish-pihole-filters/kad_host.txt
https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txt
https://raw.githubusercontent.com/M...hole-filters/Ad_filter_list_by_Disconnect.txt
https://raw.githubusercontent.com/M...polish-pihole-filters/adguard_crypto_host.txt
https://raw.githubusercontent.com/M...polish-pihole-filters/adguard_mobile_host.txt
https://raw.githubusercontent.com/M...er/master/polish-pihole-filters/adservers.txt
https://raw.githubusercontent.com/M...ster/polish-pihole-filters/gambling-hosts.txt
https://raw.githubusercontent.com/M.../master/polish-pihole-filters/SmartTV_ads.txt
https://raw.githubusercontent.com/kevinle-1/Windows-telemetry-blocklist/master/windowsblock.txt
https://raw.githubusercontent.com/kboghdady/youTube_ads_4_pi-hole/master/youtubelist.txt
https://adaway.org/hosts.txt
https://v.firebog.net/hosts/AdguardDNS.txt
https://v.firebog.net/hosts/Admiral.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
https://v.firebog.net/hosts/Easylist.txt
https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts
https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts
https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
https://v.firebog.net/hosts/static/w3kbl.txt
https://v.firebog.net/hosts/Easyprivacy.txt
https://v.firebog.net/hosts/Prigent-Ads.txt
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt
https://raw.githubusercontent.com/DandelionSprout/adfilt/master/Alternate versions Anti-Malware List/AntiMalwareHosts.txt
https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt
https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt
https://v.firebog.net/hosts/Prigent-Crypto.txt
https://bitbucket.org/ethanr/dns-bl...bad_lists/Mandiant_APT1_Report_Appendix_D.txt
https://phishing.army/download/phishing_army_blocklist_extended.txt
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt
https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts
https://urlhaus.abuse.ch/downloads/hostfile/
https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/domains/multi.txt
 
tak mam
Połączono posty:

upgrade.sh poszlo bez problemu ale widzę error który muszę się zająć bo wcześniej virtual switch zrobiłem i musze go chyba tam wstawić
No stopped containers
ERROR: Network qnet-static declared as external, but could not be found. Please create the network manually using `docker network create qnet-static` and try again.
 
Do tych czterech komend na krzyż shell w zupełności wystarczy

aktualna powłoka
Bash:
[eeee@NAS ~]$ echo $SHELL
/bin/sh

Jeżeli szukamy aplikacji
Bash:
[eee@NAS ~]$  which bash
/bin/bash
 
ERROR: Network qnet-static declared as external, but could not be found. Please create the network manually using `docker network create qnet-static` and try again.
Jeśli nie masz zdefiniowanej sieci ze statycznymi adresami IP dla dockera to można ją stworzyć tym poleceniem - kontener wykorzystuje taką siec i warto mieć stałe IP dla serwera DNS.
Bash:
docker network create \
-d qnet \
--ipam-driver=qnet \
--ipam-opt=iface=qvs0 \
--subnet=10.11.12.0/24 \
--gateway=10.11.12.51 \
qnet-static
Zamienić qvs0 na swój własny interfejs wykonać polecenie ifconfig i znaleźć nazwę interfejsu który ma ten sam adres co QNAP
Zamienić subnet=10.11.12.0/24 na swoją własną podsieć
Zamienić gateway=10.11.12.51 na swoją bramę domyślną (router czy co tam masz)
 
tak wiem, że ten krok muszę zrobić ale nadal przez ssh coś mi nie chce
1675019120530.png

1675019042403.png

Połączono posty:

wybaczcie za mój nie ogar ale staram się :) jest jakiś postęp
1675020455671.png


1675019649204.png

co nie zmienia faktu docker network nie działa...
1675020240185.png
 

Załączniki

  • 1675020125231.png
    1675020125231.png
    40 KB · Wyświetleń: 6
Co Ci wyświetla:
Bash:
which docker
nie musisz zmienić powłoki (sh/bash) tu to nie ma sensu ale brak widocznej komendy docker może świadczyć o tym że nie masz uruchomione aplikacji "Container Station"
Mimo wszystko nie wiem czy nie jest wymagane "sudo" do zarządzania dockerem ale to inni się wypowiedzą możne.
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. pihole
  2. netflix
  3. container sieć
  4. localhost docker
  5. pi hole
  6. ls proc
  7. ubuntu station
  8. adguard
  9. switch do 10 gbe
  10. reject md5 servers = yes
  11. container settings
  12. samsung evo 970
  13. docker proc
  14. docker status