Nadawaj swoim usługom hostowanym lokalnie nazwy domenowe za pomocą tego triku z Pi-hole

Chcesz uprościć dostęp do lokalnych usług na swoim serwerze? Dowiedz się, jak wykorzystać Pi-hole i Nginx Proxy Manager do stworzenia lokalnych nazw domenowych bez ujawniania ich w internecie.
Czy masz dość zapamiętywania adresów IP i portów swoich usług na własnym serwerze? Ja miałem, więc wymyśliłem, jak użyć Pi-hole i Nginx Proxy Manager, aby nadać moim usługom lokalne nazwy domenowe bez ich ujawniania w internecie.
Lokalne Rozwiązanie Domeny vs. Zewnętrzne: Jaka Jest Różnica
Kiedy wpisujesz nazwę domeny w przeglądarkę, na przykład, https://sztuczkitechniczne.com, Twoja przeglądarka spróbuje rozwiązać tę domenę, aby wiedzieć, dokąd Cię skierować.
Rozwiązania zewnętrzne pochodzą z sytuacji, gdy strona internetowa jest dostępna spoza jej lokalnej sieci. Gdy uzyskujesz dostęp do How-To Geek, łączysz się z serwerem w data center, który znajduje się w zewnętrznej sieci w porównaniu do lokalnej sieci w Twoim domu.
Jednakże, jeśli hostujesz usługę w domu, na przykład Audiobookshelf, i uzyskujesz do niej dostęp przez jej adres IP, wtedy korzystasz z lokalnej strony internetowej. Możesz także skonfigurować usługę, która pozwoli Ci uzyskać dostęp do tych lokalnie hostowanych stron za pomocą nazwy domeny, nie opuszczając swojej lokalnej sieci.
Podsumowując: lokalne domeny są rozwiązywane tylko w Twojej lokalnej sieci, podczas gdy domeny zewnętrzne są dostępne dla każdego, kto ma dostęp do internetu.
To jest kluczowe do wiedzenia w kontekście hostowania usług. Jeśli ujawnisz usługę (taką jak Audiobookshelf) w internecie za pomocą zewnętrznej domeny, to każdy na świecie, kto zna adres domeny, może uzyskać dostęp do tej usługi.
Jednak możesz również sprawić, że żądania domenowe będą rozwiązywane tylko w Twojej domowej sieci, dla dodatkowego bezpieczeństwa. Niektóre usługi, takie jak mój menedżer maszyn wirtualnych Proxmox czy instancje Pi-hole, nie chcę, aby były dostępne poza moją lokalną siecią ze względów bezpieczeństwa.
Dla tych usług używam Pi-hole w połączeniu z Nginx Proxy Manager, aby nadać moim lokalnym usługom nazwy domenowe, więc nie muszę pamiętać adresów IP.
Nie Musisz Kupować Domeny
Mógłbyś pomyśleć, że musisz kupić domenę, aby to zrobić. W rzeczywistości nie musisz. Oczywiście, polecam zakup domeny, ale nie jest to całkowicie konieczne.
sposób, w jaki działają lokalne rozwiązania domenowe, opiera się na tym, że korzystasz z lokalnego serwera DNS (Pi-hole, w tym przypadku), który rozwiązuje niektóre domeny na lokalny adres IP.
W teorii mógłbyś zbudować własną wyszukiwarkę, a następnie kazać swojemu lokalnemu serwerowi DNS rozwiązać https://google.com na tę zbudowaną lokalnie wyszukiwarkę. Choć jest to możliwe, nie jest to zalecane, ponieważ przekierowanie publicznych usług może zepsuć wiele aspektów przeglądania internetu.
Możesz zrobić to samo, każąc swojemu lokalnemu serwerowi DNS przypisać dowolną domenę do swoich usług. Podobnie jak w przypadku sytuacji z Google, to nie zawsze jest dobry pomysł. Weźmy na przykład The Verge. Pod koniec 2011 roku https://theverge.com stało się The Verge, które znamy dzisiaj. Na początku 2011 roku https://theverge.com było właściwie The Verge Internet Services, zupełnie innego rodzaju stroną internetową.
Więc jeśli wybierzesz nazwę domeny, która obecnie nie jest zarejestrowana, lub może wskazuje na usługę, z której myślisz, że nigdy nie skorzystasz, to całkiem możliwe, że ta domena może stać się przydatna w przyszłości—lub nawet konieczna. Wyobraź sobie kogoś w 2011 roku, kto buduje całe swoje homelab przy użyciu https://theverge.com jako nazwy domeny, aby w przyszłości chciał przeglądać artykuły z Verge. Musieliby przenieść wszystkie swoje usługi do nowej domeny, co nie jest małym wyzwaniem ani łatwym zadaniem.
Najlepiej jest kupić domenę do lokalnego rozwiązania domenowego, nawet jeśli nie planujesz uzyskiwać dostępu do usług spoza swojej sieci, mimo że nie jest to wymagane.
Pi-hole Obsługuje Lokalne Zadania DNS
Aby skutecznie obsługiwać lokalne żądania DNS, będziesz potrzebować lokalnie hostowanego serwera DNS. Do tego używam osobiście Pi-hole, choć możesz użyć dowolnego innego serwera DNS, który chcesz.
Nie będę opisywał jak skonfigurować Pi-hole tutaj, ponieważ istnieje już świetna dokumentacja na ten temat.
Jednak po skonfigurowaniu Pi-hole w swojej sieci i ustawieniu go jako głównego serwera DNS, będziesz mógł przejść do Ustawienia > Rekordy DNS i zacząć wprowadzać swoje rekordy DNS.
Mogą to być domeny główne (testing.com) lub subdomeny (pi-hole.testing.com), w zależności od tego, co chcesz zrobić. Zazwyczaj...
Użyj subdomen, aby mieć service.domain.com jako łatwy do zapamiętania identyfikator.
Najważniejsze, co musisz zapamiętać, to skierowanie adresu IP do adresu IP maszyny, na której działasz Nginx Proxy Manager. To wszystko, jeśli chodzi o Pi-hole.
Nginx Proxy Manager kieruje Twoje domeny tam, gdzie powinny iść
Teraz, gdy masz Nginx Proxy Manager uruchomiony na swoim systemie (używając portów 80 i 443), czas na skonfigurowanie pozostałych lokalnych domen.
Jeśli nie planujesz używać HTTPS ani SSL, następny krok jest prosty. Musisz po prostu dodać domenę, której chcesz użyć (wprowadzoną do Pi-hole), jako host proxy.
Jednakże, jeśli chcesz używać HTTPS lub SSL, musisz przejść przez kilka dodatkowych kroków.
Na początek będziesz musiał wygenerować certyfikat SSL podpisany samodzielnie dla domeny, którą planujesz używać. Użyję testing123.me w celach tego artykułu.
Musisz wykonać trzy polecenia:
openssl genrsa -out testing123.me.key 2048 openssl req -new -key testing123.me.key -out testing123.me.csr -subj "/CN=.testing123.me" openssl x509 -req -in testing123.me.csr -signkey testing123.me.key -out testing123.me.crt -days 825 -extensions v3_req -extfile
Te trzy polecenia wygenerują trzy pliki na Twoim systemie: CRT (sam certyfikat), CSR (niewykorzystany do naszych celów) oraz KEY (klucz certyfikatu). Powyższe polecenia są zaprojektowane do pracy z domeną testing123.me, więc jeśli chcesz używać innej domeny, po prostu zastąp ją.
Komendy zostały zaprojektowane, aby oferować certyfikat wildcard. To nie jest certyfikat dla samej domeny, ale dla dowolnej subdomeny (ponieważ jest ustawiony jako *.testing123.me).
W Nginx Proxy Manager przejdź do zakładki Certyfikaty SSL, a następnie kliknij Dodaj certyfikat SSL, a później kliknij niestandardowy. Nadaj certyfikatowi nazwę, a następnie załaduj plik KEY do pola klucza certyfikatu i plik CRT do pola certyfikatu.
Teraz wróć do zakładki Hosty proxy, przejdź do sekcji SSL i wybierz swój certyfikat wildcard. To da Ci certyfikat podpisany samodzielnie dla usług z włączonym SSL.
Jako że jest to certyfikat podpisany samodzielnie, otrzymasz ostrzeżenie o certyfikacie podczas dostępu do strony, ale nadal będzie działać dla usług, które potrzebują HTTPS, aby funkcjonować.
Możesz również dodać certyfikat do lokalnego CA na swoim komputerze, aby uniknąć ostrzeżenia, choć to jest bardziej zaawansowane i różni się w zależności od systemów operacyjnych.
Gdy wszystko będzie już ustawione, jesteś gotowy, aby uzyskać dostęp do domen lokalnie, nie opuszczając swojej sieci! Mam to skonfigurowane dla obu moich instancji Pi-hole (żebym mógł uzyskać dostęp do nich bez ich IP) oraz mojej instancji Proxmox, ponieważ nie chcę otwierać żadnej z tych usług dla świata.
Jednak jeśli chcesz stworzyć własną stronę internetową i mieć ją dostępną dla ludzi z całego świata, to jest to naprawdę proste! W rzeczywistości możesz mieć w pełni działającą stronę internetową już w weekend, korzystając z Raspberry Pi i Nginx Proxy Manager.
Jeśli ciekawią Cię artykuły podobne do Nadawaj swoim usługom hostowanym lokalnie nazwy domenowe za pomocą tego triku z Pi-hole, zajrzyj do kategorii Linux i odkryj jeszcze więcej interesujących treści.
Dodaj komentarz

Możesz być zainteresowany