Kā nomainīt DNS serverus VPS: Linux un Windows

Lai serverī nomainītu DNS, vispirms jāsaprot, kas pārvalda vārdu atpazīšanu: tieša /etc/resolv.conf rediģēšana, systemd-resolved, netplan vai NetworkManager Linux vidē, vai Set-DnsClientServerAddress Windows vidē. Nepareizā faila labojumi bieži tiek automātiski atcelti — zemāk apskatīsim katru gadījumu.

Kas jūsu sistēmā pārvalda DNS

Vispirms pārbaudiet, uz ko norāda resolv.conf:

ls -l /etc/resolv.conf
  • Ja tā ir simboliska saite uz ../run/systemd/resolve/stub-resolv.conf — DNS pārvalda systemd-resolved.
  • Ja tas ir parasts fails, to var rediģēt tieši (bet to var pārrakstīt netplan, NetworkManager vai cloud-init).

1. veids. Tieša resolv.conf rediģēšana

Der, ja failu nepārvalda servisi. Atveriet to:

sudo nano /etc/resolv.conf

Norādiet vajadzīgos serverus:

nameserver 1.1.1.1
nameserver 8.8.8.8

Trūkums: failu var pārrakstīt pēc pārstartēšanas. Pastāvīgam rezultātam izmantojiet paņēmienu, kas atbilst jūsu tīkla pārvaldniekam.

2. veids. systemd-resolved

Rediģējiet servisa konfigurāciju:

sudo nano /etc/systemd/resolved.conf

Sadaļā [Resolve] norādiet:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9

Pārstartējiet servisu un pārbaudiet:

sudo systemctl restart systemd-resolved
resolvectl status

3. veids. netplan (Ubuntu)

Ja tīkls ir konfigurēts ar netplan, DNS tiek norādīts tur:

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

Piemērojiet:

sudo netplan apply

4. veids. Windows Server

PowerShell ar administratora tiesībām noskaidrojiet interfeisa indeksu un norādiet DNS:

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

Pārbaude:

Get-DnsClientServerAddress -InterfaceIndex 12

Populārākie publiskie DNS

Pakalpojums Primārais Sekundārais
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. veids. NetworkManager (nmcli)

CentOS, RHEL, Fedora un dažās darbvirsmas Ubuntu versijās tīklu pārvalda NetworkManager. Mainiet DNS ar nmcli, citādi resolv.conf labojumi tiks atcelti.

Apskatiet aktīvos savienojumus:

nmcli connection show

Norādiet DNS vajadzīgajam savienojumam (piemēram 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"

Parametrs ignore-auto-dns yes aizliedz pārrakstīt jūsu serverus ar DHCP vērtībām.

DNS keša tīrīšana

Pēc serveru maiņas kešatmiņā var palikt vecās atbildes. Iztīriet to:

sudo resolvectl flush-caches

Windows vidē:

Clear-DnsClientCache

Kā pārbaudīt, ka DNS ir nomainīts

resolvectl status
dig example.com
nslookup example.com

dig izvadē rinda SERVER: parādīs, kurš atrisinātājs tika reāli izmantots.

Biežākie jautājumi

Kāpēc resolv.conf pēc pārstartēšanas atgriežas vecais? To pārraksta systemd-resolved, netplan vai cloud-init. Mainiet DNS tajā avotā, kas pārvalda failu, nevis pašā resolv.conf.

Vai DNS izmaiņas stājas spēkā uzreiz? Jaunajiem pieprasījumiem jā. Bet jau kešotās atbildes dzīvo līdz TTL beigām. Keša tīrīšana: sudo resolvectl flush-caches.

Kā izvēlēties DNS serveri? Vadieties pēc tuvuma un uzticamības: Cloudflare (1.1.1.1) un Google (8.8.8.8) ir stabili un ātri lielākajā daļā reģionu.

Vai var norādīt savu lokālo DNS? Jā, norādiet sava atrisinātāja IP adresi (piemēram unbound vai dnsmasq) kā nameserver/DNS=.

Kā uzzināt, kurš DNS tiek izmantots šobrīd? resolvectl status Linux vidē vai Get-DnsClientServerAddress Windows vidē parādīs aktīvos serverus.

Izvietojat un konfigurējat savu serveri? Ņemiet VPS ar Linux sadaļā VPS noma vai pasūtiet serveru administrēšanu.

Edgars Kalējs