GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Busybox-Ping-IP funktioniert, aber Hostname nslookup schlägt mit falscher Adresse fehl

Das Problem ist mit busybox. Ich wechselte zu einer vorkompilierten Version und hatte keine Probleme. Ich muss mir die Kompilierungsoptionen damit ansehen. Danke für deine Hilfe.

https://gist.github.com/vsergeev/2391575:

Es gibt bekannte Probleme mit der DNS-Funktionalität in statisch gelinkten glibc-Programmen (wie in diesem Fall busybox), da libnss dynamisch geladen werden muss. Das Erstellen einer uClibc-Toolchain und das Verknüpfen von busybox damit würde dieses Problem lösen.


Ich bin auf das gleiche Problem gestoßen und es stellt sich heraus, dass busybox beim Format für resolv.conf wählerisch ist. Zwischen dem Nameserver-Tag und der Adresse muss genau ein Leerzeichen stehen, damit nslookup funktioniert. Außerdem muss /etc/nsswitch.conf dns für host enthalten.

[ busybox master (git hash 349d72c19)sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabihf]

[email protected]:~# cat /etc/nsswitch.conf 
passwd:    files compat
shadow:    files compat
hosts:    files dns compat 

Ja, die Frage ist alt, aber die aktuelle Busybox verhält sich immer noch so.

[ Ich habe unten xxd verwendet, um die Anzahl der Leerzeichen in resolv.conf anzuzeigen ]

Dies schlägt fehl:

[email protected]:~# xxd /etc/resolv.conf
00000000: 6e61 6d65 7365 7276 6572 2020 382e 382e  nameserver  8.8.
00000010: 382e 380a                                8.8.
[email protected]:~# nslookup  www.cnn.com 
nslookup: bad address ' 8.8.8.8'

und das funktioniert:

[email protected]:~# xxd /etc/resolv.conf
00000000: 6e61 6d65 7365 7276 6572 2038 2e38 2e38  nameserver 8.8.8
00000010: 2e38 0a                                  .8.
[email protected]:~# nslookup  www.cnn.com                
Server:     8.8.8.8
Address:    8.8.8.8:53

Non-authoritative answer:
www.cnn.com canonical name = turner-tls.map.fastly.net
Name:   turner-tls.map.fastly.net
Address: 151.101.1.67
Name:   turner-tls.map.fastly.net
Address: 151.101.65.67
Name:   turner-tls.map.fastly.net
Address: 151.101.129.67
Name:   turner-tls.map.fastly.net
Address: 151.101.193.67

Non-authoritative answer:
www.cnn.com canonical name = turner-tls.map.fastly.net
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:200::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:400::323
Name:   turner-tls.map.fastly.net
Address: 2a04:4e42:600::323

Linux
  1. nslookup Linux-Befehl mit Beispielen erklärt

  2. Linux-Ping-Befehl mit Beispielen erklärt

  3. sed-Befehl mit Option -i schlägt auf Mac fehl, funktioniert aber unter Linux

  4. Skript mit rc.local ausführen:Skript funktioniert, aber nicht beim Booten

  5. Wie bekomme ich den Hostnamen von der IP (Linux)?

Linux-IP-Befehl mit Verwendungsbeispielen

Funktionsweise des Ping-Programms unter Linux

VMWare Fusion Linux-Gast nach Hostnamen adressieren?

Statische IP-Adresse mit NetworkManager für Fedora

Kann über LAN ping/ssh, aber nicht mit Wi-Fi

Ersetzen Sie die MAC-Adresse durch die UUID