Hur löser jag DNS-upplösningsfel på Linux-server?
Steg-för-steg-guide för tillfälligt fel i namnupplösning, fel på domänupplösning och apt update DNS-fel.
Även om Linux-servrar verkar ha en internetanslutning, kanske domänadresser inte löses. I det här fallet kan servern komma åt IP-adresser, men google.com, debian.org, ubuntu.com eller licens/API-tjänster.
Detta problem visar sig särskilt i följande processer:
- passande uppdatering eller mums uppdatering Fel mottaget under
- WHMCS-licens, betalning eller API-länkar fungerar inte
- Spelpanelen kan inte ansluta till fjärranslutna API-adresser
- Domänping fungerar inte medan ping-IP körs på servern
- Tillfälligt misslyckande i namnupplösning fel sett
1. Förstå om DNS verkligen är problemet
Kontrollera först serverns offentliga internetåtkomst genom att pinga dess IP-adress.
ping -c 4 8.8.8.8
Om detta kommando svarar har servern tillgång till Internet på IP-nivå. Testa nu domänupplösning:
ping -c 4 google.com
Om IP-ping fungerar men domänping inte fungerar, är problemet troligen på DNS-sidan.
2. Kontrollera aktuella DNS-inställningar
I Linux-system är DNS-servrar vanligtvis /etc/resolv.conf definieras i filen.
cat /etc/resolv.conf
En sund DNS-inställning ser vanligtvis ut så här:
nameserver 1.1.1.1 nameserver 8.8.8.8
Om filen är tom, innehåller felaktiga IP-adresser eller bara skriver lokala/icke-fungerande DNS-adresser, kan domänupplösning misslyckas.
3. Tillfällig DNS-definition
För snabbtestning kan du definiera tillfällig DNS med följande kommando:
echo "nameserver 1.1.1.1" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Testa igen senare:
ping -c 4 google.com
4. Beständig DNS-inställning på Ubuntu / Debian-system
På moderna Ubuntu-system är nätverksinställningar vanligtvis nätplan Den hanteras av . Lista Netplan-filer:
ls /etc/netplan/
Redigera filen:
nano /etc/netplan/01-netcfg.yaml
Exempel på DNS-definition:
network:
version: 2
ethernets:
eth0:
dhcp4: true
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8Så här tillämpar du inställningen:
netplan apply
Om du är ansluten via SSH och är osäker på nätverksinställningen, var försiktig. Felaktig nätplansinställning kan bryta din SSH-anslutning.
5. CentOS / AlmaLinux / Rocky Linux DNS-inställning
På RedHat-baserade system kan DNS-inställningar göras via NetworkManager.
Så här ser du namnet på den aktiva anslutningen:
nmcli con show
Exempel på DNS-inställning:
nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8" nmcli con up "System eth0"
Ditt anslutningsnamn kan vara ett annat. Du måste använda ditt eget anslutningsnamn i kommandot.
6. Systemd-löst Check
DNS-upplösning på vissa system systemlöst Det hanteras av tjänsten.
systemctl status systemd-resolved
Om tjänsten är nere kan du starta den:
systemctl enable systemd-resolved systemctl start systemd-resolved
Så här ser du DNS-status:
resolvectl status
7. DNS söker efter paketuppdateringsfel
När DNS är korrupt fungerar inte heller pakethanterare. Till exempel kan följande fel uppstå:
Temporary failure resolving 'archive.ubuntu.com' Could not resolve host Name or service not known
I det här fallet bör paketförrådet inte anses vara korrupt. DNS-upplösning bör testas först.
Vanliga misstag
- Tror att det inte finns något internet men inser inte att faktiskt bara DNS är skadad
- Skriver tillfällig DNS i filen /etc/resolv.conf och tror att det är en permanent lösning
- Felaktig blankstegsindragning i Netplan-fil
- Felstavning av NetworkManager-anslutningsnamnet
- Tänker att det fungerande API-et eller licenssystemet är felaktigt på grund av ett DNS-problem
FAQ
IP-ping fungerar men domänping fungerar inte, vad är problemet?
Det finns troligen ett DNS-upplösningsproblem. Servern kan komma åt internet, men den kan inte översätta domännamn till IP-adresser.
Vilka DNS-servrar kan jag använda?
Vanligtvis tillgängliga är 1.1.1.1, 1.0.0.1, 8.8.8.8 och 8.8.4.4. Privat DNS-server kan vara att föredra i företagsstrukturer.
Varför ändras resolv.conf av sig själv?
Eftersom filen hanteras automatiskt av netplan, NetworkManager eller systemd-löst på de flesta system.
Säkerhets- och driftsrekommendationer
- Se till att utföra ett domänupplösningstest efter DNS-ändring.
- Lägg till DNS-fel i betalnings-, licensierings- och API-system till den första checklistan.
- Definiera minst två DNS-adresser istället för en enda DNS.
- Om din serverleverantör tillhandahåller privat DNS, överväg det också.
- Observera att felaktig nätplansinställning kan bryta SSH-anslutningen.
Den här artikeln är speciellt förberedd för PvPServer.