GNU/Linux >> Znalost Linux >  >> Linux

Busybox ping IP funguje, ale nslookup názvu hostitele selže se špatnou adresou

Problém je s busyboxem. Přešel jsem na předkompilovanou verzi a bez problémů. Musím se s tím podívat na možnosti kompilace. Děkujeme za vaši pomoc.

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

Existují známé problémy s funkčností DNS ve staticky propojených programech glibc (jako je v tomto případě busybox), protože libnss musí být dynamicky načten. Sestavení toolchainu uClibc a propojení busyboxu s tím by to vyřešilo.


Narazil jsem na stejný problém a ukázalo se, že busybox je vybíravý ohledně formátu pro resolv.conf. Mezi tagem nameserver a adresou musí být přesně jedno prázdné místo, aby nslookup fungoval. Kromě toho musí /etc/nsswitch.conf obsahovat dns pro hostitele.

[ 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 

Ano, otázka je stará, ale aktuální busybox se stále chová tímto způsobem.

[Použil jsem xxd níže k zobrazení počtu prázdných míst v resolv.conf]

Toto selže:

[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'

a funguje to:

[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. Linuxový příkaz Ping vysvětlený s příklady

  2. Příkaz sed s volbou -i selže na Macu, ale funguje na Linuxu

  3. Chyba:Adresa se již používá při vázání soketu s adresou, ale číslo portu je zobrazeno jako volné pomocí `netstat`

  1. Jak získat název hostitele z IP (Linux)?

  2. Postgres neumožňuje localhost, ale pracuje s 127.0.0.1

  3. Pycharm tensorflow ImportError, ale funguje dobře s Terminálem

  1. Konfigurace síťového rozhraní se statickou IP adresou na RHEL 7

  2. Nahraďte MAC adresu UUID

  3. Proč se můj název hostitele v /etc/hosts zobrazuje s adresou 127.0.1.1 namísto 127.0.0.1?