Oprócz odpowiedzi Yamakaji , w ten sposób konfigurujesz lokalny serwer DNS.
Po pierwsze potrzebujesz komputera, na którym chcesz uruchomić serwer DNS. Może to być jeden z twoich normalnych komputerów (jeśli działają pod Linuksem i pracują przez większość czasu) lub na przykład Raspberry Pi . Zaletą takiego urządzenia jest to, że jest tani, nie wymaga dużej mocy i jest mały.
Konfigurowanie serwera DNS
Postanowiłem skonfigurować serwer DNS na Raspberry Pi dnsmasq
, który jest małym narzędziem serwera DNS, idealnym do użycia w małych sieciach. Można również użyć bind
de facto standardowego narzędzia DNS, ale jest to prawdopodobnie zbyt potężne dla małej sieci domowej.
Instaluj dnsmasq
za pomocą menedżera pakietów, w systemach opartych na Debianie (np. Raspbian), komenda brzmi:
sudo apt-get install dnsmasq
Zakładam, że już skonfigurowałeś statyczny przydział adresów IP (tzn. Adresy IP, o których wspominasz w pytaniu, nie zmieniają się). Jeśli nie masz, dnsmasq
może być również używany jako serwer DHCP, ale jeszcze tego nie zrobiłem.
dnsmasq
pobiera nazwy hostów z /etc/hosts
. Edytuj ten plik w następujący sposób:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
Nazwa hosta router
jest teraz przypisana do192.168.1.1
, printer
do 192.168.1.22
.
Teraz masz skonfigurowany własny serwer DNS, ale komputery w sieci jeszcze go nie używają. Aby zmusić ich do korzystania z tego serwera, musisz wykonać jeden krok przygotowania:
Znajdź adres IP swojego urządzenia dnsmasq za pomocą ip address
(załóżmy, że to 192.168.1.42
). Otwórz /etc/dnsmasq.conf
i dodaj następujące wiersze:
listen-address=127.0.0.1
listen-address=192.168.1.42
Mówi dnsmasq
to, że powinien wysłuchać żądań, gdy są one kierowane albo do127.0.0.1
(gdy sam chce korzystać z serwera DNS) lub 192.168.1.42
(tj. Gdy inne komputery chcą korzystać z serwera DNS).
Korzystanie z serwera DNS
Musisz powiedzieć każdemu komputerowi w sieci, że powinien (również) z niego korzystać 192.168.1.42
jako serwera DNS. Sposób, w jaki to robisz, zależy od systemu operacyjnego. Możesz to łatwo wyszukać w Internecie dla określonego systemu operacyjnego (po prostu wyszukaj „Zmień serwer DNS w <OS>” lub coś w tym rodzaju).
W przypadku systemu Windows 7 możesz wykonać ten samouczek: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/ .
W moim systemie (Arch Linux) musiałem dołączyć następujący wiersz /etc/resolvconf.conf
name_servers=192.168.1.42
Uwaga: plik, którego musisz użyć, zależy od konfiguracji menedżera sieci. Dodaj adres IP serwera DNS na każdym komputerze, z którego chcesz korzystać z DNS.
Prawdopodobnie będziesz musiał ponownie uruchomić urządzenia, jeśli nie zadziała to natychmiast.
To już koniec. Możesz teraz uzyskać dostęp do wszystkich urządzeń, w które wpisałeś/etc/hosts
na serwerze dnsmasq, po prostu używając nazwy hosta, którą mu nadałeś.
(Opcjonalnie) Sprawdzanie funkcjonalności
Jeśli chcesz sprawdzić, czy rozpoznawanie DNS działa poprawnie, zainstaluj dnsutils
(Linux) w systemie, który powinien używać twojego serwera. Następnie wykonaj
$ dig router
To powinno zwrócić coś takiego
; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router. IN A
;; ANSWER SECTION:
router. 0 IN A 192.168.1.1
;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE rcvd: 50
Pokazuje nazwę hosta, którą chcesz rozwiązać, adres IP, na który została rozwiązana, oraz używany serwer DNS. Jak widać, wszystko jest w porządku.
(Opcjonalnie) Określanie TLD
Jeśli chcesz uzyskać dostęp do urządzeń nie tylko za pomocą router
lub, printer
ale również za pomocą router.home
i printer.home
, dodaj następujące wiersze do /etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
Może być konieczne ponowne uruchomienie komputera.
Źródła / dalsze czytanie
O dnsmasq
:
Informacje bind
(jeśli jesteś zainteresowany):