Zalecana, 2024

Wybór redaktorów

Jak używać Raspberry Pi jako serwera DNS z dnsmasq

Raspberry Pi DNS Server with DNSMasq

Raspberry Pi DNS Server with DNSMasq

Spisu treści:

Anonim

Kocham moją małą Raspberry Pi. Komputer za 35 USD ma mnóstwo zastosowań, od projektu utylitarnego do hobby. Ale w praktyce, ilu z nas zamierza zbudować homebowlowe Amazon Echo? Przypuszczam, że nie jest ich wiele. Ale jest jeden użytek dla Pi, z którego jestem wielkim fanem od prawie roku: prosty serwer DNS.

DNS i dnsmasq

Wysyłając żądania DNS z lokalnego Raspberry Pi zamiast zdalnego serwera , możesz zrealizować kilka zalet. Pobieranie dowolnego rodzaju danych z sieci lokalnej zawsze będzie szybsze niż pobieranie czegoś z Internetu.

Jeśli nie wiesz, jak działa DNS, polecam przeczytać artykuł Marco Chiappetta o tym, jak przyspieszyć działanie DNS. Jeśli to nadal brzmi skomplikowanie, jest seria komiksów wyjaśniająca, jak działa DNS przy użyciu serwerów cute cartoon.

[Dalsze czytanie: 4 projekty dla Linuksa dla początkujących i średnio zaawansowanych użytkowników]

Program dnsmasq dla Linuksa jest lekkim serwerem DNS i DHCP które można znaleźć w systemach operacyjnych routera, takich jak DD-WRT. Chociaż Raspberry Pi może być trochę słabszy do innych funkcji routingu i zapory, zauważyłem, że mój Raspberry Pi 2 oferuje więcej niż wystarczającą moc do uruchomienia programu dnsmasq. Ponadto pliki konfiguracyjne dnsmasq są dużo łatwiejsze do zrozumienia niż niektóre inne serwery DNS.

Konfiguracja dnsmasq wymaga skonfigurowania serwera na Raspberry Pi, co jest jego własnym zadaniem. Arch Linux Wiki ma całkiem niezły artykuł na temat konfiguracji dnsmasq, a główny plik konfiguracyjny ( /etc/dnsmasq.conf ) jest dobrze udokumentowany. Jeśli dopiero zaczynasz konfigurować serwery, polecam uruchomienie Ubuntu na Pi.

1. Można buforować wyszukiwania DNS w celu skrócenia czasu ładowania

Jedną z głównych zalet uruchamiania lokalnego serwera DNS jest to, że serwer może buforować wyszukiwania DNS do wykorzystania w przyszłości. Chociaż wydaje się to banalne - w rzeczywistości próbujesz tylko uzyskać adresy IP dla domen - w końcu może to dodać.

Alex Campbell

Lista po lewej stronie okna pokazuje wszystkie żądania domeny otwarcie strony głównej CNN.com. Zwróć uwagę, że niektóre wtyczki przeglądarki (takie jak Bufor) wysyłają własne żądania.

Podczas ładowania strony internetowej urządzenie może wykonać kilkanaście lub więcej wyszukiwań DNS. Oczywiście, jest sama strona internetowa. Ale dzisiejsze strony internetowe mogą być załadowane wtyczkami Javascript dla wszystkiego, od animacji po gromadzenie danych analitycznych. Każda usługa wymaga własnego wyszukiwania DNS. Jeśli witryna korzysta z sieci dostarczania treści (CDN) do wyświetlania obrazów lub filmów, jest to kolejne wyszukiwanie. Następnie są elementy reklamowe i przyciski mediów społecznościowych. I tak dalej.

Poprzez buforowanie tych adresów IP, Raspberry Pi ogranicza opóźnienia sieci, ponieważ są one w twojej lokalnej sieci. Oczywiście, mówimy o ułamkach sekundy tutaj, ale te ułamki sekundy są tym, za co ludzie płacą, gdy kupują internetowe plany o dużej przepustowości od swoich ISP.

2. Możesz przekierowywać domeny do komputerów w sieci LAN

Jedną z fajnych rzeczy, jaką może zrobić dnsmasq, jest ustanowienie jednej lub więcej domen dla sieci lokalnej i automatyczne przypisywanie urządzeń do subdomen. Na przykład, gdybym miał laptopa o nazwie "alekslaptop" i miał domenę sieciową "campbell.home", mógłbym wysłać ping do laptopa w sieci, wpisując ping alexlaptop.campbell.home .

Dnsmasq pozwala również na predefiniowanie innych adresów, co jest przydatne w przypadku usług, które można uruchomić na jednym lub kilku komputerach. Mogę zdefiniować "media.campbell.home", aby wskazać adres IP komputera, na którym działa serwer mediów Emby lub Plex, lub użyć "ftp.campbell.home", aby wskazać lokalny serwer FTP.

Jeśli chcesz aby uruchomić więcej niż jedną usługę na komputerze, możesz skierować kilka domen do tego samego komputera i użyć NGINX jako odwrotnego proxy, aby przekierować ruch do żądanego portu.

3. Idź na reklamy na poziomie nuklearnym

Istnieje wiele sposobów blokowania reklam, ale jednym z niższych sposobów jest przesyłanie plików hostów na komputerze lokalnym. Plik hosts jest pierwszą rzeczą, jakiej użyje twój komputer podczas wyszukiwania adresu IP, zanim wyśle ​​żądanie do serwera DNS. Jest to skuteczne w blokowaniu reklam, ponieważ możesz zablokować całą domenę (np. Doubleclick.net), definiując ją jako 127.0.0.1 (zwaną również localhost). Próbując samodzielnie wyszukać zawartość reklamy, nie można jej załadować i ostatecznie kończy się ona pustą sekcją na stronie internetowej.

To świetnie, z tym wyjątkiem, że niektóre złośliwe programy i potencjalnie niechciane programy mogą przepisać plik hosts. Na szczęście dnsmasq może odciążyć komputer.

Dnsmasq ma wiele sposobów na zapewnienie zachowania podobnego do pliku hosta. Po pierwsze, może użyć pliku hosts samego Raspberry Pi. Alternatywnie możesz powiedzieć dnsmaq, aby używał pliku konfiguracyjnego dnsmasq. Efektem końcowym jest czarna lista podobnych do hostów plików, która działa dla całej sieci lokalnej.

Alex Campbell

Jeśli masz domeny z domenami na czarnej liście przy użyciu dnsmasq, linki do trzech pierwszych wyników w tym wyszukiwaniu Google będą skutecznie Zepsuty.

Niezależnie od tego, w którą stronę idziesz, możesz znaleźć gotowe pliki konfiguracyjne hostów lub dnsmasq, które zawierają domeny najpopularniejszych sieci reklamowych.

Ale odejście nuklearne ma zastrzeżenie, ponieważ czasami łamie rzeczy, które możesz nie chcę łamać. Przykładem, który nieustannie napotykam, są wyszukiwania w Google.

Czasami reklamy wyświetlane w wyszukiwarkach Google są dokładnie tym, czego chcę (np. Strona główna dla firmy, której szukam). Jeśli kliknę reklamę, która pojawia się przed "normalnymi" wynikami wyszukiwania, link jest skutecznie zepsuty.

Oprócz łamania wyszukiwania w Google, stosowanie metody czarnej listy może przerwać niektóre funkcje niektórych witryn internetowych. Muszę również zauważyć, że wiele witryn z wiadomościami opiera się na ruchu reklamowym, aby nadal działać, więc masowe blokowanie każdej sieci reklamowej może zaszkodzić stronom, które faktycznie chcesz obsłużyć. Co więcej, osoby, które odwiedzają Cię i używają Wi-Fi, mogą się zastanawiać, dlaczego witryny nagle nie działają tak, jak powinny.

Jeśli chcesz tymczasowo usunąć witryny z czarnej listy za serwerem DNS dnsmasq, będziesz musiał ręcznie edytować ustawienia DNS na swoim komputerze. Możesz także użyć VPN, aby ominąć lokalny serwer DNS, jeśli twoja sieć VPN zapewnia własne ustawienia DNS.

Wniosek

Podobnie jak wszystko inne, uruchomienie własnej usługi lokalnej oznacza, że ​​stajesz się także swoim własnym wsparciem technicznym. Jeśli Twoje urządzenie nagle utraci zasilanie lub zostanie odłączone od sieci, sieć przestanie działać w sieci lokalnej. (Bezpośrednie adresy IP nadal będą działały.) Z tego powodu zazwyczaj upewniam się, że w mojej konfiguracji DHCP mam zapasowy adres IP serwera DNS (np. Google na 8.8.8.8). W ten sposób klienci DHCP (np. Mój komputer) będą nadal mieli zapasowy serwer DNS, który będzie się ponownie uruchamiał, dopóki komputer nie zostanie wyłączony (lub wygaśnie dzierżawa DHCP).

Kolejna rzecz, o którą musisz się martwić to bezpieczeństwo. Podczas gdy twoje Pi może być bezpiecznie schowane za firewallem twojego domowego LAN'a i NAT, wciąż musisz aktualizować Pi z najnowszymi łatami bezpieczeństwa. Mimo że jest to małe zadanie, które jest łatwe do wykonania, wymaga dodatkowego okresowego zadania konserwacyjnego.

Powiedziawszy to, jeśli czujesz się komfortowo w hakowaniu w linii komend i chcesz uzyskać nieco większą kontrolę nad lokalną siecią, rozważ użycie Raspberry Pi dla serwera DNS. W końcu, jeśli się nie powiedzie, zawsze możesz przekazać kontrolę DHCP i DNS do routera.

Top