Kompiluję własne jądro 3.14. Obawiam się, że mogłem pominąć jakąś ważną funkcję sieci, aby DNS działał.
Nie mogę rozwiązać nazw domen. Mogę pingować mój serwer DNS. Mogę rozwiązać, używając tego DNS na innych komputerach, więc wiem, że to nie serwer.
~ # cat /etc/resolv.conf
nameserver 192.168.13.5
~ # nslookup google.com
Server: 192.168.13.5
Address 1: 192.168.13.5
nslookup: can't resolve 'google.com'
~ # ping -c 1 google.com
ping: bad address 'google.com'
~ # ping -c 1 192.168.13.5
PING 192.168.13.5 (192.168.13.5): 56 data bytes
64 bytes from 192.168.13.5: seq=0 ttl=128 time=0.382 ms
--- 192.168.13.5 ping ststistics ---
1 packets transmitted, 1 packets recieved, 0% packet loss
reound-trip min/avg/max = 0.382/0.382/0.382 ms
Jakieś pomysły, które pominąłem? oto moja konfiguracja: http://pastebin.com/vt4vGTgJ
EDYCJA :
Jeśli to nie jest jądro, czego mógłbym brakować? Używam busyboksa, połączonego statycznie. w tym systemie nie ma bibliotek współdzielonych.
dig @192.168.13.5 www.google.com
otrzymujesz dodatkowe informacje? Czy możesz wykonywać rekurencyjne zapytania na serwerze DNS 192.168.13.5 z innych komputerów?nameserver 8.8.8.8
.Odpowiedzi:
Problem dotyczy busyboksa. Przełączyłem się na wersję wstępnie skompilowaną i nie miałem problemów. Muszę z nim przeanalizować opcje kompilacji. Dzięki za pomoc.
https://gist.github.com/vsergeev/2391575 :
źródło
Natrafiłem na ten sam problem i okazuje się, że busybox jest wybredny co do formatu resolv.conf. Aby nslookup działał, musi być dokładnie jedna pusta przestrzeń między tagiem nameserver a adresem. Ponadto /etc/nsswitch.conf musi zawierać dns dla hosta.
[busybox master (git hash 349d72c19) sysroot-glibc-linaro-2.25-2018.05-arm-linux-gnueabihf]
Tak, pytanie jest stare, ale bieżący busybox nadal działa w ten sposób.
[Użyłem xxd poniżej, aby pokazać liczbę pustych miejsc w resolv.conf]
To się nie udaje:
i to działa:
źródło
Nie jestem pewien, czy to ten sam problem, który miałem, czy nie, ale niedawno zaktualizowałem i stary wewnętrzny system serwera DNS z OpenBSD 3.8 do 5.6, i straciłem możliwość rozpoznawania hostów za pomocą ping, ale polecenie hosta działało. Okazało się, że muszę dodać 127.0.0.1/8 do dyrektywy match-klientów w nazwie oprócz 192.168.0.0/16, które już tam miałem, a potem zaczęło działać poprawnie po ponownym uruchomieniu o nazwie.
źródło
Miałem ten sam problem. Użyłem buildroot do zbudowania systemu plików, kompilacji jądra i dodania dodatkowych pakietów za pomocą busybox.
Mogłem tylko pingować adres IP. Z url polecenie ping wrócił:
bad address error
. Potem zmieniłemresolv.conf
plik.I wszystko działało dobrze.
źródło
Rozwiązałem te same objawy, edytując:
/etc/nsswitch.conf
i dodając DNS do następującego wiersza:źródło
sudo vim /etc/resolv.conf
aby edytować resolv.conf, upewnij się, że adresy serwerów nazw (a także słowa kluczowego „serwer nazw”) są oddzielone pojedynczą spacją, a nie przecinkiem, jak poniżej:źródło