Kuinka voin tarkistaa, mitä DNS-palvelinta käytän (Linuxissa)? Käytän verkonhallintaa ja kiinteää yhteyttä yliopistoni lähiverkkoon. (Yritän selvittää, miksi verkkotunnukseni ei ratkea)

Vastaa

Sinun pitäisi pystyä saamaan kohtuullista tietoa:

$ cat /etc/resolv.conf 

Kommentit

  • Huomaa kuitenkin, että (nykyaikaisessa Linuxenissa) /etc/nsswitch.conf -sisältö määrää, mitä nimipalveluja (DNS, LDAP jne.) käytetään ja missä järjestyksessä. Sano fgrep hosts: /etc/nsswitch.conf. Jos se viittaa vain DNS: ään, /etc/resolv.conf on oikea paikka etsiä nimipalvelimiasi. Mutta on todennäköistä, että ’ käytät myös mDNS: ää (alias ZeroConf, alias Avahi, alias Bonjour jne.) Jne. Tällöin asiat riippuvat siitä, mitä ’ uudelleenkäyttö.
  • Tämä tiedosto osoittaa yleensä Ubuntussa 127.0.1.1 – se ’ s paikallisen DNS-välimuistipalvelimen, ei varsinaista ylävirtaan.
  • @BarryKelly Tarkista, mitä reititin käyttää, sitten
  • Ja jos sinulla on useita ylävirran palvelimia määritetty? Kuinka tietää, mitä käytetään tällä hetkellä?
  • Katso @ G32RW: n tai @Lonniebizin vastaukset vankempaan lähestymistapaan erilaisissa olosuhteissa, esim. kun saat vastauksen, kuten 127.0.0.53

Vastaa

Täällä ”Kuinka teen sen:

( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS 

Tämä toimi edellisellä edelliseen tapaan:

nm-tool | grep DNS 

Debianissa sinulla on oltava verkonhallintapaketti asennettu.

Kommentit

  • Tämä on hyödyllinen, jos käytät VPN ja NetworkManager . /etc/resolv.conf osoittaa koneellesi ja dnsmasq ratkaisee nimiä NetworkManager b: n määrittämänä. >.
  • Debianissa tämä edellyttää network-manager -pakettia.
  • nm-työkalu ei ole käytettävissä uudemmissa linuxeissa, esimerkiksi se ei ole ’ network-manager ’ paketissa debian 8.
  • I ’ ve päivitimme vastauksen vastaamaan mitä työskentelevät minulle vuonna 2016.
  • tämä on paras vastaus, resol.conf ei aina näytä totuutta

Vastaus

Systemd-käyttöjärjestelmissä:

systemd-resolve --status 

Kommentit

  • systemd-solution: tunnistamaton vaihtoehto ’ – tila ’
  • Sanoo Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Tämä on uusi oletus tapa tehdä se Ubuntu 18.04 Bionic Beaverissa – tottuukaan siihen, kaikki!
  • Tämä on ainoa ratkaisu, joka toimi minulle, kun muut palasivat 127.0.0.53
  • Mitä luen? Näen vain DNSSEC-tietueita.

Vastaa

Luulen, että voit myös kysyä DNS: ää ja se näyttää sinulle mitä palvelin palautti tuloksen. Kokeile tätä:

dig yourserver.somedomain.xyz 

Ja vastauksen tulisi kertoa, mitkä palvelimet palauttivat tuloksen. Kiinnostamasi lähtö näyttää tältä:

;; Query time: 91 msec ;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx) ;; WHEN: Tue Apr 02 09:03:41 EDT 2019 ;; MSG SIZE rcvd: 207 

Voit myös pyytää dig kyselemään tietyn DNS-palvelimen käyttämällä dig @server_ip

kommenttia

  • Debianissa tämä edellyttää dnsutils -paketti.
  • Jos käytät mitä tahansa DNS-peite- / välimuistipalvelua, joka suoritetaan paikallisella koneellasi, se piilottaa todelliset DNS-palvelimet.
  • Ubuntu 18.04 näyttää vain paikallisen dns-välimuistin: SERVER: 127.0.0.53#53(127.0.0.53)

Vastaa

Tee vain, nslookup . Osa tuloksista sisältää palvelimen, jota se käyttää.

Alla olevassa esimerkissä se osoittaa, että käytetty DNS-palvelin on 8.8.8.8.

$ nslookup google.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: google.com Address: 172.217.22.174 

Kommentit

  • voitko antaa esimerkin siitä, mitä kehotteeseen syötetään?
  • Esimerkki: $ nslookup www.google.com
  • Debianissa tämä edellyttää pakettia dnsutils.
  • Äskettäisessä Ubuntussa tämä viittaa jälleen paikalliseen välimuistipalvelimeen 127.0.0.1, kuten jo vihjettiin tässä kommentissa
  • CentOSissa 7 se sulkeutuu virheellisesti, mutta se on vm, joten tein nslookup google.com Windowsin isännässä ja löysin nimipalvelimen. Lisää se kohtaan /etc/resolv.conf kuten: nameserver xx.xx.xx.xx ja käynnistä palvelu uudelleen network, ja kaikki on hyvin. Ylistää sinua.

vastaus

uudella network-manager -komennolla nmcli, tee tämä:

nmcli --fields ipv4.dns,ipv6.dns con show [connection_name] 

Verkonhallinnan uudemmissa versioissa (kuten Ubuntu 16.04: ssä) kenttien nimet ovat hieman erilaisia:

nmcli --fields ip4.dns,ip6.dns con show [connection_name] 

Jos et tiedä yhteyden nimeä, käytä:

nmcli -t --fields NAME con show --active 

Esimerkiksi vanhoissa nmcli-versioissa:

$ nmcli --fields ip4.dns,ip6.dns con show "Wired connection 1" IP4.DNS[1]: 172.21.0.13 IP4.DNS[2]: 172.21.0.4 

kommentit

  • Omat tulokset : order «con» «show» is not valid.
  • Se toimii minulle hyvin verkonhallintaohjelman 1.0.4 kanssa Ubuntu 15.10: ssä. Ehkä sinulla on vanhempi versio?
  • Taulukkomuoto on melko huono. Toivon, että saan samanlaisen sarakkeen muodon kuin Powershell.
  • Palauttaa Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • yksinkertaisesti nmcli oli kaikki mitä tarvitsin Ubuntu 19.04: ssä

Vastaa

saadaksesi ensimmäinen DNS-palvelin (vain IP):

  • cat tuottaa vain DNS-konfig.
  • grep suodattimet nimipalvelin
  • head säilyttää vain ensimmäisen rivin / esiintymän
  • cut ota ip rivin osa (toinen sarake ”” erottimena ”)

Voit lisätä DNS ip: n ympäristömuuttujaan seuraavasti:

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i "^nameserver"|head -n1|cut -d " " -f2) 

Kommentit

  • grep -m 1 lopettaa vastaavuuden ensimmäisen ottelun jälkeen, joten et ’ t on käytettävä head
  • Putkilinjan keventämiseksi vieläkin enemmän, siepata ryhmiä Perl-regexp: llä on erittäin siisti, ja grep vie tiedoston argumentti: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Kirjoitti juuri Sieppaa ryhmiä säännöllisen grep perl -lausekkeen avulla
  • Siellä ’ on sekä IPv4 että IPv6-DNS-palvelimet. Myös toissijaiset palvelimet ovat olemassa syystä. Kenen tämä komento palauttaa? Onko suositeltavaa ottaa ensimmäinen ja jättää muut huomiotta?

Vastaa

Jos käytät verkkopäällikkö luultavasti saat kaikki verkkoparametrit yliopistosi dhcp-palvelimelta.

Jos et halua tarkistaa komentotulkista dns-asetuksiasi (kuten hesse ja Alexios kuvaavat), voit nähdä ne Verkkotiedot-paneelista.

Pääset tähän paneeliin painamalla hiiren oikealla painikkeella verkonhallintakuvaketta ja valitsemalla valikosta ”Yhteystiedot”.

Vastaa

resolvectl

$ resolvectl status | grep -1 "DNS Server" DNSSEC supported: no Current DNS Server: 1.1.1.1 DNS Servers: 1.1.1.1 1.0.0.1 

Yhteensopivuuden vuoksi systemd-resolve on symbolinen linkki osastoon resolvectl monilla alueilla kuten Ubuntu 18.10:

$ type -a systemd-resolve systemd-resolve is /usr/bin/systemd-resolve $ ll /usr/bin/systemd-resolve lrwxrwxrwx 1 root root 10 nov. 15 21:42 /usr/bin/systemd-resolve -> resolvectl $ type -a resolvectl resolvectl is /usr/bin/resolvectl $ file /usr/bin/resolvectl /usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped 

kommentit

  • toimii täydellisesti Ubuntu 18.10 -käyttöjärjestelmässä.

Vastaa

Olen syöttänyt ora 25 ja sillä oli vastaava hidas vastaus komentorivillä sudo-komentoihin.

nmcli dev show | grep DNS 

osoitti, että vain yhdellä kolmesta sovittimestani (kaksi aktiivista) oli DNS-merkintöjä. Lisäämällä DNS-merkinnät aktiiviseen korttiin, jolla ei ole merkintää – presto! Kaikki on hyvää ja vasteaika on välitön.

Kommentit

  • ehkä vaihtoehtoisesti

vastaus

Ubuntussa> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Korvaa <interfacename> omallasi.

Ubuntussa < = 14

Komento

 nmcli dev list iface <interfacename> | grep IP4 

Korvaa <interfacename> omalla.

Esimerkkejä

 nmcli device show eth0 | grep IP4.DNS 

Tai

 nmcli dev list iface eth0 | grep IP4 

Tämä näyttää kaikki DNS-palvelimet (Jos käytät enemmän kuin yksi).

Kommentit

  • nmcli dev list iface [devicename] on oikea komento
  • I haven ’ t huomannut < käyttöliittymää > on piilotettu, koska käytän < >
  • Debianissa saan virheen — $ nmcli dev li st iface eth0 -virhe: ’ dev ’ -komento ’ lista ’ ei kelpaa.
  • nmcli on oikeanpuoleiselle kosteudelle tarkoitettu komento.
  • Tämä on oikea vastaus!

Vastaa

Äskettäisessä Fedora 33: ssa voit vain käyttää

# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic): 

Voit tarkistaa, onko systemd-resolved on aktiivinen, tee cat /etc/resolv.conf Se kertoo sinulle, kuka hallitsee tiedostoa.

Jos haluat lisätietoja, voit käyttää resolvectl status resolvectl statistics, voit myös tyhjentää välimuistit …

Vianmääritykseen voit käyttää journalctl -u systemd-resolved -f -o cat | grep Looking -asetusta, kun olet asettanut tason DEBUG: sudo resolvectl log-level debug

vastaus

CentOSissa voit käyttää:

/usr/sbin/named -v 

Vastaa

Järjestelmiin, joihin systemd-resolved EI ole asennettu:

 $ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1  

Järjestelmissä, joissa NetworkManager on käynnissä:

$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk "/DNS/{print$NF}" 192.168.1.1 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *