Pages : 1
#1 Le 29/11/2012, à 20:13
- Roguntu
Trouver son serveur DNS
Salut les pinguins,
existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?
C'est pour afficher dans conky, et j'aimerais avoir un fichier conky.conf qui soit le plus universel possible.
SVP pas de
cat /etc/resolv.conf
ni de dig xxx.com
car les deux retournent 127.0.1.1 si un serveur dns local est installé
Avec wireshark je vois que le système utilise le dns qui lui est attribué par le DHCP.
dnsmasq est aparrament installé sur mon système, c'est pourquoi ces deux commandes retournent 127.0.1.1
# ps aux | grep dns | grep -v grep
nobody 1831 0.0 0.0 33072 1556 ? S 17:20 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/nm-dns-dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
# dig xxx.com
; <<>> DiG 9.8.1-P1 <<>> xxx.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5162
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;xxx.com. IN A
;; ANSWER SECTION:
xxx.com. 3600 IN A 67.23.112.226
;; AUTHORITY SECTION:
xxx.com. 452 IN NS ns2.xxx.com.
xxx.com. 452 IN NS ns1.xxx.com.
;; Query time: 197 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Thu Nov 29 19:08:13 2012
;; MSG SIZE rcvd: 77
Hors ligne
#2 Le 29/11/2012, à 21:14
- Haleth
Re : Trouver son serveur DNS
SVP pas de
cat /etc/resolv.conf
ni de dig xxx.com
car les deux retournent 127.0.1.1 si un serveur dns local est installé
Ben ouais, c'est moche, mais ca reste ton DNS.
Ton serveur DNS est 127.0.1.1, c'est tout.
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#3 Le 29/11/2012, à 21:24
- tiramiseb
Re : Trouver son serveur DNS
existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?
Pour cette question-là, en effet je rejoins la réponse d'Haleth.
Si tu veux rester cantonné à Ubuntu et ne pas faire universel, j'ai un peu fouillé je ne trouve pas trop comment avoir ça facilement.
Avec la commande suivante (attention c'est hyper goret) tu obtiens le fichier dans lequel il y a le bail DHCP en cours de validité, dans lequel tu as l'info en question, mais il faut encore piocher la bonne info ; il peut y avoir plusieurs entrées de plusieurs baux dans le fichier, il faut prendre le plus récent.
ps auxww | grep -- "-lf .*\.lease" | grep -v grep | grep -v sed | sed 's{^.*-lf \(.*\.lease\).*{\1{'
Peut-être y a-t-il plus simple, je n'ai pas (encore) trouvé...
Dernière modification par tiramiseb (Le 29/11/2012, à 21:25)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#4 Le 29/11/2012, à 21:34
- tiramiseb
Re : Trouver son serveur DNS
Pour Ubuntu, voili voilou...
nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'
Mais attention, ça ne fonctionne QUE sur les systèmes qui utilisent NetworkManager.
Pour quelque chose d'à peu près universel mais sans aucune certitude :
resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2)
echo $resolv | grep -q ^127\.0
if [ $? -eq 0 ]
then
nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }'
else
echo $resolv
fi
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 29/11/2012, à 21:42
- Haleth
Re : Trouver son serveur DNS
Pour quelque chose d'à peu près universel mais sans aucune certitude :
resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2) echo $resolv | grep -q ^127\.0 if [ $? -eq 0 ] then nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }' else echo $resolv fi
Avec la même restriction; utilisé NM
Pour un truc universel, y'a une commande qui est bien:
cat /etc/resolv.conf
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#6 Le 29/11/2012, à 21:49
- tiramiseb
Re : Trouver son serveur DNS
Avec la même restriction; utilisé NM
Gné ? Ben non justement, ce script retourne l'adresse dans resolv.conf si celle-ci n'est pas en 127.0.x.x, donc c'est plus universel que ce que tu dis...
Pour un truc universel, y'a une commande qui est bien:
cat /etc/resolv.conf
Sauf que ce n'est pas ce que Roguntu demande.
Là tu lui dis "eh bien tu vois que tu interroges 127.0.1.1 et basta t'as pas à en savoir plus".
S'il veut connaître le serveur DNS que sa machine interroge, il n'a pas le droit ? Il doit désinstaller Network Manager et gérer sa config réseau a la mano ?
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#7 Le 29/11/2012, à 21:54
- Haleth
Re : Trouver son serveur DNS
Haleth a écrit :Avec la même restriction; utilisé NM
Gné ? Ben non justement, ce script retourne l'adresse dans resolv.conf si celle-ci n'est pas en 127.0.x.x, donc c'est plus universel que ce que tu dis...
Donc inadapté si t'as un DNS local
Sauf que ce n'est pas ce que Roguntu demande.
Là tu lui dis "eh bien tu vois que tu interroges 127.0.1.1 et basta t'as pas à en savoir plus".
S'il veut connaître le serveur DNS que sa machine interroge, il n'a pas le droit ?
Ouais, sauf que ton truc est intrinsequement lié au fonctionnement du bousin d'ubuntu
Il doit désinstaller Network Manager et gérer sa config réseau a la mano ?
Si t'es en ethernet (je te conseille d'y être .. pas en wifi..), t'as tout intérêt à virer NM et tout le foutoir qui va avec
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#8 Le 29/11/2012, à 22:00
- tiramiseb
Re : Trouver son serveur DNS
Ouais, sauf que ton truc est intrinsequement lié au fonctionnement du bousin d'ubuntu
Intrinsèquement lié au fonctionnement de Network Manager, qui propose les mêmes commandes sur d'autres distributions qu'Ubuntu.
Si t'es en ethernet [...], t'as tout intérêt à virer NM et tout le foutoir qui va avec
Sauf que "NM et tout le foutoir qui va avec" ça me facilite notamment vachement la vie pour me connecter aux VPN de mes clients.
Je ne comprend pas pourquoi cette haine envers Network Manager, pour ma part j'en suis très content.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 29/11/2012, à 22:07
- Haleth
Re : Trouver son serveur DNS
Ben, parcque parfois il craque (prendre 1 core pour gérer un réseau .. dafuq ?!), parcqu'il a parfois des comportements irrationnnels, parcqu'il écrase la conf sans aucune pitié..
Bref
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#10 Le 29/11/2012, à 22:09
- tiramiseb
Re : Trouver son serveur DNS
(prendre 1 core pour gérer un réseau .. dafuq ?!)
jamais vu
parcqu'il a parfois des comportements irrationnnels,
jamais vu
parcqu'il écrase la conf sans aucune pitié..
Ça c'est son job...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#11 Le 29/11/2012, à 22:25
- Roguntu
Re : Trouver son serveur DNS
Merci pour vos réponses,
je suis d'accord avec vous, en greppant j'ai troué l'IP de mon serveur dns dans dans les fichiers leases dhcp, dans syslog (networkmanager).
mais avec wireshark je vois que mon système utilise l'IP du DNS fournis par mon serveur DHCP. Je crois que dnsmasq n'est pas vraiment un serveur DNS, il se relaie sur le DNS fournis par le DHCP et ne se connecte pas aux TLD, si j'ai tout compris c'est juste un cache.
Je suis assez satisfait du Network-manager que je trouve aussi très pratique, meme s'il a quelques petits défauts. Le but c'est pas de désinstaller quelque chose, ni dnsmasq ou le network-manager. Je recherche une solution moin cat grep awk sur des fichiers log, mais aparement...
WIND0W$ nous bat sur ce point, un simple "ipconfig /all", c'est fou (Faites moi supprimer cette affirmation svp)
Faut que j'utilise
wine ipconfig /all
je plaisante bien sur.
find /var/log -type f -print0 | xargs -0 cat - | grep 62.65.128.10
Nov 28 20:45:09 mint14-VPCEH1S8E NetworkManager[785]: <info> nameserver '62.65.128.10'
Nov 28 20:45:10 mint14-VPCEH1S8E dnsmasq[1696]: using nameserver 62.65.128.10#53
Nov 28 21:08:03 mint14-VPCEH1S8E NetworkManager[785]: <info> nameserver '62.65.128.10'
Nov 28 21:32:49 mint14-VPCEH1S8E NetworkManager[785]: <info> nameserver '62.65.128.10'
Nov 28 21:58:52 mint14-VPCEH1S8E NetworkManager[785]: <info> nameserver '62.65.128.10'
Nov 29 17:20:16 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 17:20:17 mint14-VPCEH1S8E dnsmasq[1831]: using nameserver 62.65.128.10#53
Nov 21 18:45:05 mint NetworkManager[1744]: <info> nameserver '62.65.128.10'
Nov 21 18:45:06 mint dnsmasq[2994]: using nameserver 62.65.128.10#53
Nov 29 17:46:43 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 18:09:04 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 18:09:05 mint14-VPCEH1S8E dnsmasq[1831]: using nameserver 62.65.128.10#53
Nov 29 18:35:02 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 19:02:40 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 19:31:35 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 19:54:38 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 20:22:08 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 20:47:06 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Nov 29 21:16:51 mint14-VPCEH1S8E NetworkManager[783]: <info> nameserver '62.65.128.10'
Si on analyse, on peut suposer que NetworkManager fournit l'IP à dnsmasq, mais ça ne fait pas avancer le schmilblick...
Dernière modification par Roguntu (Le 29/11/2012, à 22:42)
Hors ligne
#12 Le 29/11/2012, à 22:38
- tiramiseb
Re : Trouver son serveur DNS
Je recherche une solution moin cat grep awk sur des fichiers log
La possibilité que je t'ai donnée ne se base pas sur des fichiers de log ou trucs dans ce genre, mais sur le contenu du fichier "/etc/resolv.conf" et, si nécessaire, le retour de la commande "nmcli". Je pense qu'on ne peut pas faire mieux.
WIND0W$ nous bat sur ce point, un simple "ipconfig /all", c'est fou
Sous Windows il y a une et une seule manière de faire. Nous on a une infinité d'approches possibles, limitée uniquement par notre imagination. Du coup en effet certaines choses sont plus complexe.
Mais si tu veux remettre des menottes et faire "bêêêêh" alors tu peux retourner sous Windows
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#13 Le 29/11/2012, à 22:58
- Roguntu
Re : Trouver son serveur DNS
ton script est bien, mais apparement il n'y a pas de commande "prévue" pour ça.
resolv=$(grep nameserver /etc/resolv.conf | uniq | cut -d" " -f2) echo $resolv | grep -q ^127\.0 if [ $? -eq 0 ] then nmcli dev list | grep ^IP4.DNS | awk '{ print $2 }' else echo $resolv fi
Hors ligne
#14 Le 29/11/2012, à 23:00
- Haleth
Re : Trouver son serveur DNS
Ben, la commande est "cat /etc/resolv.conf"..
Ca te retourne la même info que ton ipconfig /all,
C'est l'adresse que les apps vont utiliser pour résoudre un nom
C'est commun à tout les PC ou presque
...
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#15 Le 29/11/2012, à 23:21
- Roguntu
Re : Trouver son serveur DNS
Ben, la commande est "cat /etc/resolv.conf"..
Ca te retourne la même info que ton ipconfig /all,
C'est l'adresse que les apps vont utiliser pour résoudre un nom
C'est commun à tout les PC ou presque...
Je suis pas sur que tu as tout compris...
Hors ligne
#16 Le 29/11/2012, à 23:29
- Haleth
Re : Trouver son serveur DNS
Ben si j'ai très bien compris.
Ubuntu intègre un serveur DNS local par défaut.
Donc toi, t'as deux trucs:
- Soit tu cherches à savoir la configuration de ce serveur, auquel cas tu te fixes à ubuntu (ou tu fais des scripts plus ou moins craignos) avec du plaisir à maintenir (parcque ca change à chaque version ou presque
- Soit tu cherches le serveur DNS, de manière universelle.
J'avais cru lire dans ton premier message, ce qui me pousse vers la 2eme solution:
existe te t'il une commande "universelle" sous linux qui retourne l'adresse IP du serveur DNS utilisé pas le système?
Visiblement, j'ai mal lu..
Ubuntu is an ancien African word which means "I can't configure Debian"
Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.
Hors ligne
#17 Le 30/11/2012, à 09:35
- serged
Re : Trouver son serveur DNS
Trouvé des explications ici. La bonne réponse est :
nm-tool|grep "DNS:"
(nm-tool est dans le paquet network-manager)
$ nm-tool|grep "DNS:"
DNS: 192.168.1.1
DNS: 2a02:8420:6d76:f400::1
(ici la box sert de DNS)
Dernière modification par serged (Le 30/11/2012, à 09:36)
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#18 Le 30/11/2012, à 09:45
- tiramiseb
Re : Trouver son serveur DNS
Trouvé des explications ici. La bonne réponse est :
nm-tool|grep "DNS:"
Euh ce n'est pas universel.
C'est tout aussi limité que la commande suivante, que j'ai citée dans le message #4 (*) :
nmcli dev list | grep ^IP4.DNS
Il faut aussi l'enrober dans un script (cf, encore une fois, le message #4), pour avoir un comportement à peu près universel ("à peu près" car cela ne fonctionnera que si le serveur DNS n'est en effet pas l'hôte local et uniquement si son adresse est dans /etc/resolv.conf ou gérée par Network Manager).
(*) ... c'est à se demander si les gens lisent les messages précédents !
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne