Jak dodać wtórny DNS do panelu hostingowego cPanel/WHM
Dlaczego serwer cPanel potrzebuje wtórnego DNS

Serwery cPanel/WHM obsługują dziesiątki, a nawet setki domen na jednym serwerze nazw. Jeśli ten serwer przejdzie w stan offline — z powodu konserwacji, awarii sprzętu albo ataku DDoS — każda hostowana domena staje się nieosiągalna. Odwiedzający otrzymują błędy DNS, poczta przestaje docierać, a usługi przekraczają limit czasu.
Wtórny serwer DNS przechowuje zsynchronizowaną kopię wszystkich stref przez AXFR (autorytatywny transfer strefy). Gdy serwer podstawowy jest niedostępny, serwer wtórny nadal odpowiada na zapytania DNS o domeny. Witryny, poczta i usługi pozostają dostępne.
Większość rejestratorów domen wymaga co najmniej dwóch serwerów nazw, a RFC 2182 zaleca trzy dla środowisk produkcyjnych. Dodanie wtórnego DNS to nie tylko dobra praktyka — to warunek konieczny dla niezawodności w środowisku produkcyjnym.
Nie masz jeszcze wtórnego serwera nazw? SecondDNS udostępnia go w bezpłatnym 3-miesięcznym okresie próbnym, bez karty — zacznij tutaj, a potem wykonaj kroki poniżej.
Wtórny DNS a klastrowanie DNS dla cPanel
cPanel ma wbudowaną funkcję klastra DNS (WHM > Clusters > DNS Cluster), która synchronizuje strefy między własnymi serwerami WHM. Jest przydatna, ale to nie to samo, co niezależny wtórny DNS:
- Klaster DNS przechowuje kopie na serwerach, którymi sam zarządzasz, często w tej samej sieci lub centrum danych. Jeśli ta infrastruktura ulegnie awarii, wszystkie węzły mogą paść jednocześnie. - Zewnętrzny serwer wtórny, taki jak SecondDNS, działa na osobnej infrastrukturze z własną siecią i zasięgiem anycast. Gdy serwer cPanel — lub całe jego centrum danych — jest niedostępny, serwer wtórny nadal odpowiada.
Możesz korzystać z obu rozwiązań: klastra DNS dla własnej redundancji oraz SecondDNS jako zewnętrznego autorytatywnego serwera wtórnego, na który przełączają się rejestratorzy i resolwery. Ten przewodnik konfiguruje zewnętrzny serwer wtórny przez AXFR.
Jak działa integracja wtórnego DNS
Integracja SecondDNS dla cPanel wykorzystuje system Standardized Hooks w cPanel — ten sam mechanizm, którego cPanel używa wewnętrznie do obsługi zdarzeń wtyczek:
1. Gdy zostaje utworzone konto cPanel — program obsługi zdarzeń rejestruje strefę domeny głównej w SecondDNS przez API 2. Gdy zostaje dodana domena addon — program obsługi zdarzeń rejestruje strefę domeny addon 3. SecondDNS pobiera pełną kopię każdej strefy z serwera przez AXFR 4. Gdy konto cPanel lub domena addon zostaje usunięte — program obsługi zdarzeń usuwa strefę z SecondDNS
Domena główna każdego konta cPanel oraz każda domena addon ma własną strefę DNS, więc każda jest rejestrowana osobno. Wszystkie zmiany w strefach rozchodzą się automatycznie dzięki mechanizmowi DNS NOTIFY. Bez kroków ręcznych, bez zadań crona, bez nieaktualnych rekordów.
Obsługa BIND i PowerDNS
cPanel obsługuje dwa backendy DNS: BIND (named) oraz PowerDNS, który jest domyślny w bieżących wersjach cPanel. Instalator automatycznie wykrywa, który z nich działa na serwerze, i odpowiednio go konfiguruje.
BIND: Instalator dodaje allow-transfer oraz also-notify do bloku options w pliku /etc/named.conf. Ponieważ cPanel przebudowuje deklaracje stref w named.conf, trwałym miejscem dla tych dyrektyw jest globalny blok options, który cPanel zachowuje między przebudowami (zobacz Krok 2).
PowerDNS: Instalator ustawia disable-axfr=no, allow-axfr-ips oraz also-notify, a także primary=yes (w PowerDNS 4.5+; starsze wersje używają master=yes). Aby cPanel ich nie naruszał, znajdują się one w pliku drop-in dołączanym z katalogu /etc/pdns/pdns.d/, a nie w głównym pdns.conf.
Tutaj allow-transfer (lub allow-axfr-ips w PowerDNS) nadaje serwerowi SecondDNS uprawnienie do pobrania strefy, natomiast also-notify każe serwerowi DNS wysłać NOTIFY, dzięki czemu serwer wtórny odświeża się natychmiast po zmianie.
Wymagania wtórnego DNS dla cPanel
Zanim zaczniesz, upewnij się, że masz:
- Aktualną wersję cPanel/WHM (v102 lub nowszą) z BIND lub PowerDNS - Dostęp root do serwera - Klucz API SecondDNS (uzyskasz go na seconddns.com/dashboard/api-key) - Adres IP serwera nazw SecondDNS (znajdziesz go w panelu w sekcji Settings > Nameservers) - Otwarty port TCP 53 dla ruchu przychodzącego z adresu IP serwera SecondDNS
Protokół transferu strefy AXFR używa portu TCP 53, a nie UDP. Wiele konfiguracji zapory otwiera tylko UDP 53 dla zwykłych zapytań DNS. Jeśli TCP 53 jest zablokowany, transfery stref będą zawodzić po cichu, mimo że zwykłe rozwiązywanie nazw DNS działa.
Otwórz port TCP 53 dla transferów stref DNS
Przed uruchomieniem instalatora otwórz port TCP 53 dla serwera SecondDNS. Znajdź adres IP serwera nazw w panelu w sekcji Settings > Nameservers, a następnie zastąp SECONDARY_IP w poniższych poleceniach.
Jeśli zarządzasz zaporą za pomocą firewalld:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="SECONDARY_IP" port port="53" protocol="tcp" accept'
firewall-cmd --reloadLub za pomocą iptables:
iptables -I INPUT -s SECONDARY_IP -p tcp --dport 53 -j ACCEPTJeśli serwer korzysta z zapory hosta zarządzanej w WHM, dodaj regułę przychodzącą zezwalającą na ruch na porcie TCP 53 z adresu SECONDARY_IP.
Aby sprawdzić, czy port TCP 53 jest osiągalny z zewnątrz:
nmap -p 53 -sT YOUR_SERVER_IPZainstaluj wtórny DNS na cPanel
Uruchom poniższe polecenie jako root:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cpanel/install.sh | bash -s -- --api-key=YOUR_API_KEYInstalator: - Zweryfikuje klucz API względem API SecondDNS - Wykryje adres IP serwera (IPv4 oraz IPv6) - Zapyta, którego adresu IP użyć, jeśli dostępne są oba protokoły - Automatycznie wykryje backend DNS (BIND lub PowerDNS) i poprosi o potwierdzenie - Skonfiguruje AXFR dla wykrytego backendu - Doda serwer nazw SecondDNS do wszystkich szablonów stref w /var/cpanel/zonetemplates/, dzięki czemu każda nowa strefa automatycznie go uwzględnia - Zarejestruje 4 programy obsługi zdarzeń WHM przez manage_hooks - Zaproponuje synchronizację wszystkich istniejących kont cPanel
Zastąp YOUR_API_KEY kluczem z panelu SecondDNS.
Uwaga: ta integracja jest obecnie w fazie Beta. Przetestuj ją w środowisku staging, zanim wdrożysz ją na produkcję.
Zweryfikuj konfigurację transferu strefy
PowerDNS: Instalator dodaje dyrektywy AXFR jako plik drop-in dołączany z katalogu /etc/pdns/pdns.d/, więc cPanel nie nadpisuje ich podczas przebudowy. Zweryfikuj je:
grep -rE 'primary|master|disable-axfr|allow-axfr-ips|also-notify' /etc/pdns/pdns.conf /etc/pdns/pdns.d/Po każdej zmianie zrestartuj PowerDNS:
systemctl restart pdnsBIND: cPanel przebudowuje deklaracje stref w pliku /etc/named.conf, ale zachowuje globalny blok options. Trwałym miejscem dla dyrektyw AXFR jest więc wnętrze options { ... }. Potwierdź, że tam się znajdują (zastąp SECONDARY_IP adresem IP serwera nazw z panelu):
allow-transfer { SECONDARY_IP; };
also-notify { SECONDARY_IP; };Instalator dodaje je do bloku options automatycznie. Po edycji named.conf zastosuj zmianę poleceniem:
rndc reconfigJeśli transfery działają na początku, a przestają po przebudowie cPanel, dyrektywy zostały umieszczone w klauzuli zone zamiast w bloku options — przenieś je do options { }, aby przetrwały przebudowę.
Zsynchronizuj istniejące domeny z wtórnym DNS
Instalator proponuje synchronizację wszystkich istniejących kont cPanel podczas instalacji. Jeśli pominąłeś ten krok, uruchom synchronizację później:
seconddns syncPolecenie porównuje lokalne strefy z SecondDNS i dodaje brakujące. Polecenie jest idempotentne — można je bezpiecznie uruchamiać wielokrotnie. Aby sprawdzić jedną strefę lub wyświetlić wszystko na serwerze wtórnym:
seconddns status example.com
seconddns listZmiana szablonu strefy (dodanie wtórnego rekordu NS) dotyczy wyłącznie nowych stref utworzonych po instalacji. W przypadku istniejących domen dodaj rekord NS ręcznie przez WHM > DNS Functions > Edit DNS Zone albo pozwól, by synchronizacja zarejestrowała strefy na serwerze wtórnym.
Zweryfikuj konfigurację wtórnego DNS w cPanel
Utwórz konto testowe w WHM i obserwuj log programu obsługi zdarzeń:
tail -f /var/log/seconddns.logPowinieneś zobaczyć:
Zone created: testdomain.com (cpanel hook)
[+] Zone testdomain.com added to SecondDNSNastępnie odpytaj oba serwery nazw. Zastąp SECONDARY_IP adresem IP serwera nazw z panelu:
dig @YOUR_SERVER_IP testdomain.com SOA +short
dig @SECONDARY_IP testdomain.com SOA +shortOba powinny zwrócić ten sam numer seryjny SOA w formacie YYYYMMDDNN. Jeśli serwer wtórny pokazuje niższy numer seryjny lub zwraca SERVFAIL, sprawdź dostęp do portu TCP 53 oraz log programu obsługi zdarzeń.
Obsługiwane zdarzenia DNS w cPanel
Integracja rejestruje programy obsługi (hooki) dla tych zdarzeń cPanel:
- Utworzenie konta (strefa domeny głównej konta) - Usunięcie konta - Utworzenie domeny addon - Usunięcie domeny addon
Domena główna każdego konta cPanel oraz każda domena addon ma własną strefę DNS. Subdomeny oraz domeny parkowane znajdują się jako rekordy wewnątrz strefy domeny nadrzędnej, więc rozchodzą się do serwera wtórnego razem z transferem strefy nadrzędnej — nie są rejestrowane osobno.
Rozwiązywanie problemów z wtórnym DNS w cPanel
Strefa nie pojawia się na serwerze wtórnym Sprawdź log w pliku /var/log/seconddns.log. Zweryfikuj, czy programy obsługi zdarzeń są zarejestrowane:
/usr/local/cpanel/bin/manage_hooks listPowinieneś zobaczyć 4 programy obsługi zdarzeń SecondDNS (Accounts::Create, Accounts::Remove, AddonDomain::addaddon, AddonDomain::deladdondomain). Jeśli ich brakuje, uruchom instalator ponownie.
Odmowa AXFR (BIND) Upewnij się, że allow-transfer znajduje się wewnątrz bloku options w pliku /etc/named.conf, a nie w pojedynczej klauzuli zone. To blok options przetrwa przebudowę cPanel. Zastosuj zmiany poleceniem rndc reconfig.
Odmowa AXFR (PowerDNS) Sprawdź allow-axfr-ips w pliku /etc/pdns/pdns.conf i zrestartuj PowerDNS:
grep allow-axfr-ips /etc/pdns/pdns.conf
systemctl restart pdnsPrzekroczenie limitu czasu połączenia Zweryfikuj, czy port TCP 53 jest otwarty między Twoim serwerem a SecondDNS. AXFR używa TCP, a nie UDP. Najczęstszą przyczyną nieudanych transferów jest zablokowany TCP 53 na zaporze, podczas gdy UDP 53 jest otwarty.
Przetestuj program obsługi zdarzeń ręcznie
echo '{"domain":"example.com"}' | bash /usr/local/bin/seconddns-cpanel-domain_create.shOdinstalowanie
Aby usunąć integrację:
curl -sL https://raw.githubusercontent.com/seconddns/dns_integrations/main/hosting-panels/cpanel/uninstall.sh | bashUsuwa to programy obsługi zdarzeń WHM, skrypty oraz plik konfiguracyjny. Usuwa również wpis NS SecondDNS z szablonów stref. Strefy na wtórnym serwerze DNS nie są usuwane automatycznie — usuń je przez panel SecondDNS albo uruchom:
seconddns remove-allprzed odinstalowaniem, jeśli chcesz je wyczyścić z serwera wtórnego.
Uwaga: dyrektywy allow-transfer / also-notify w bloku options pliku named.conf (BIND) lub w pliku drop-in w /etc/pdns/pdns.d/ (PowerDNS) z Kroku 2 nie są usuwane przez deinstalator. Usuń je ręcznie, jeśli nie są Ci już potrzebne.
Powiązane przewodniki
Jeśli zarządzasz innymi panelami hostingowymi lub chcesz rozszerzyć konfigurację redundancji DNS, zobacz:
- Jak dodać wtórny DNS do DirectAdmin - Jak dodać wtórny DNS do Plesk - Jak dodać wtórny DNS do CyberPanel - Monitorowanie wtórnego DNS z Nagios - Monitorowanie wtórnego DNS z Zabbix - Jak skonfigurować wtórny serwer DNS - Jak działają transfery stref AXFR - Redundancja DNS: dlaczego ma znaczenie i jak ją osiągnąć