Kaip pakeisti DNS serverius VPS: Linux ir Windows

Norint pakeisti DNS serveryje, pirmiausia reikia suprasti, kas valdo vardų sprendimą: tiesioginis /etc/resolv.conf redagavimas, systemd-resolved, netplan ar NetworkManager Linux sistemoje, arba Set-DnsClientServerAddress Windows sistemoje. Ne to failo taisymas dažnai automatiškai atšaukiamas — toliau išnagrinėsime kiekvieną atvejį.

Kas valdo DNS jūsų sistemoje

Pirmiausia patikrinkite, kur nurodo resolv.conf:

ls -l /etc/resolv.conf
  • Jei tai simbolinė nuoroda į ../run/systemd/resolve/stub-resolv.conf — DNS valdo systemd-resolved.
  • Jei tai paprastas failas — jį galima taisyti tiesiogiai (bet jį gali perrašyti netplan, NetworkManager ar cloud-init).

1 būdas. Tiesioginis resolv.conf redagavimas

Tinka, kai failo nevaldo jokia tarnyba. Atidarykite jį:

sudo nano /etc/resolv.conf

Nurodykite reikiamus serverius:

nameserver 1.1.1.1
nameserver 8.8.8.8

Trūkumas: failas gali būti perrašytas perkraunant. Kad pakeitimai išliktų, naudokite jūsų tinklo tvarkyklę atitinkantį būdą.

2 būdas. systemd-resolved

Suredaguokite tarnybos konfigūraciją:

sudo nano /etc/systemd/resolved.conf

Skiltyje [Resolve] nurodykite:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9

Perkraukite tarnybą ir patikrinkite:

sudo systemctl restart systemd-resolved
resolvectl status

3 būdas. netplan (Ubuntu)

Jei tinklas sukonfigūruotas per netplan, DNS nurodomas ten:

network:
  version: 2
  ethernets:
    ens3:
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8

Pritaikykite:

sudo netplan apply

4 būdas. Windows Server

PowerShell administratoriaus teisėmis sužinokite sąsajos indeksą ir nurodykite DNS:

Get-NetAdapter | Format-Table Name, ifIndex
Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("1.1.1.1","8.8.8.8")

Patikra:

Get-DnsClientServerAddress -InterfaceIndex 12

Populiarūs vieši DNS

Tiekėjas Pirminis Antrinis
Cloudflare 1.1.1.1 1.0.0.1
Google 8.8.8.8 8.8.4.4
Quad9 9.9.9.9 149.112.112.112

5 būdas. NetworkManager (nmcli)

CentOS, RHEL, Fedora ir kai kuriose darbalaukio Ubuntu versijose tinklą valdo NetworkManager. DNS keiskite per nmcli, kitaip resolv.conf pataisymai bus atšaukti.

Peržiūrėkite aktyvius ryšius:

nmcli connection show

Nurodykite DNS reikiamam ryšiui (pavyzdžiui System eth0):

sudo nmcli connection modify "System eth0" ipv4.dns "1.1.1.1 8.8.8.8"
sudo nmcli connection modify "System eth0" ipv4.ignore-auto-dns yes
sudo nmcli connection up "System eth0"

Parametras ignore-auto-dns yes neleidžia perrašyti jūsų serverių DHCP reikšmėmis.

DNS talpyklos išvalymas

Pakeitus serverius seni atsakymai gali likti talpykloje. Išvalykite ją:

sudo resolvectl flush-caches

Windows sistemoje:

Clear-DnsClientCache

Kaip patikrinti, kad DNS pasikeitė

resolvectl status
dig example.com
nslookup example.com

dig išvestyje eilutė SERVER: parodys, kuris sprendiklis iš tikrųjų buvo naudojamas.

Dažni klausimai

Kodėl resolv.conf po perkrovimo grįžta į seną būseną? Jį perrašo systemd-resolved, netplan arba cloud-init. DNS keiskite tame šaltinyje, kuris valdo failą, o ne pačiame resolv.conf.

Ar DNS pakeitimai įsigalioja iš karto? Naujoms užklausoms — taip. Bet jau užkešuoti atsakymai galioja iki TTL pabaigos. Talpyklą išvalysite: sudo resolvectl flush-caches.

Kaip pasirinkti DNS serverį? Vertinkite artumą ir patikimumą: Cloudflare (1.1.1.1) ir Google (8.8.8.8) daugumoje regionų veikia stabiliai ir greitai.

Ar galima nurodyti savo vietinį DNS? Taip, nurodykite savo sprendiklio IP (pavyzdžiui unbound ar dnsmasq) kaip nameserver/DNS=.

Kaip sužinoti, kuris DNS naudojamas dabar? resolvectl status Linux sistemoje arba Get-DnsClientServerAddress Windows sistemoje parodys aktyvius serverius.

Diegiate ir konfigūruojate savo serverį? Užsisakykite VPS su Linux skiltyje VPS nuoma arba užsakykite Serverių administravimą.

Edgars Kalējs