Chcę skonfigurować MediaWiki na jednym z moich domowych komputerów, a następnie wszystkie żądania w sieci lokalnej dotyczące „wiki.home” lub „wiki.local” wskazują na to pole. Wiem, że można to zrobić, edytując każdy plik / etc / hosts osobno, ale chcę czegoś bardziej zautomatyzowanego, aby na przykład, jeśli przyjaciel lub członek rodziny przyjdzie do mojego domu, nie będą musieli się bawić plik hosts, aby wyświetlić witrynę.
Czy istnieje prosty sposób to zrobić? Mam uruchomioną wiki i przeglądałem dnsmasq, ale nie mogę wymyślić, jak poprawnie skonfigurować DNS. Ponieważ chcę zautomatyzowanego rozwiązania, wydaje mi się, że muszę zmienić ustawienia DNS na routerze, ale jeśli zmienię ustawienia DNS w tym miejscu, w jaki sposób mogę nadal rozwiązywać hosty zewnętrzne?
Szczegóły konfiguracji
Router: Netgear WNR2000v2. Router daje mi opcję ręcznego określania serwerów DNS, co zakładam, że będę musiał wskazać moje okno Ubuntu, jeśli chcę to uruchomić.
Host MediaWiki i dnsmasq: Działa z Ubuntu 12.04. Miałem pewne trudności z konfiguracją dnsmasq (głównie z powodu mojego braku doświadczenia). Na przykład nie jestem pewien, ale myślę, że podczas instalacji Ubuntu zmodyfikował moje ustawienia DNS, tak aby
/etc/resolv.conf
teraz był127.0.0.1
jedynym serwerem DNS. W tym momencie mogłem rozwiązać lokalne hosty, ale nic więcej. Rozwiązałem to tymczasowo, modyfikując/etc/resolv.conf
i dodając192.168.1.1
jako drugi serwer nazw, ale tutaj chodzi o to, że192.168.1.1
będę używał Ubuntu dla DNS. Czy brakuje mi czegoś oczywistego?Ustawienia dnsmasq: odkomentowano następujące linie:
domain-needed bogus-priv local=/local/ domain=local
Odpowiedzi:
W przypadku standardowego systemu DNS można uruchomić serwer DNS, który jest autorytatywny dla domeny lokalnej (
home.
lublocal.
, chociaż lepiej tego uniknąć - patrz uwaga poniżej), ale działa również jako resolver dla wszystkich innych domen.W tym celu można użyć dnsmasq - ma domyślnie włączony tryb rekurencyjny, a twoja konfiguracja wygląda dobrze; wystarczy powiedzieć mu, których serwerów nazw używać w domenach nielokalnych. Zwykle byłyby one odczytywane z
/etc/resolv.conf
pliku systemowego ; Ponieważ jednak chcesz, aby domena lokalna działała również na komputerze serwera DNS, musisz utworzyć dedykowaną kopię pliku resolv.conf, który byłby używany tylko przez dnsmasq , podczas gdy oryginalny plik resolv.conf wskazywałby nanameserver 127.0.0.1
.Uwaga: Te instrukcje są bardzo podstawowe i powinny być dostosowane do używanej dystrybucji Linuksa. W szczególności sprawdź przewodniki Debiana i Ubuntu na dnsmasq.
Następnie router musi zostać skonfigurowany do używania tego komputera jako serwera DNS; wszystkie zapytania DNS przez komputery w twojej sieci byłyby wtedy obsługiwane przez dnsmasq .
(W pełni funkcjonalne serwery DNS, takie jak bind9 , mogą same wykonywać zapytania rekurencyjne - konfigurowanie serwerów nazw upstream staje się całkowicie opcjonalne. Tak na przykład działają serwery nazw twojego dostawcy usług internetowych. Jednak hosting własnej domeny za pomocą bind9 jest początkowo dość skomplikowany, w porównanie z prostym dnsmasq .)
Uwaga: Jeśli masz Avahi (alias Bonjour) skonfigurowany na dowolnym komputerze w sieci (który domyślnie ma Ubuntu), najlepiej jest unikać
local.
DNS i wybrać coś podobnegohome.
, ponieważ nazwy w postaciname.local
są już obsługiwane przez Avahi .(Chociaż Avahi zwykle reaguje tylko na
current-hostname.local
to, w rzeczywistości można opublikować dodatkowe wpisy, takie jakwiki.local
; będą one jednak wymagać dodania dodatkowych adresów IP ze względu na sposób działania mDNS. Z tego powodu użycie Avahi zamiast scentralizowanego DNS nie powoduje oferują więcej korzyści, więc nie sugeruję tego.)źródło
Odkryłem, że demon Avahi jest najłatwiejszym sposobem na zrobienie tego. Uwaga: jeśli używasz komputerów z systemem Windows do łączenia się z domeną .local, musisz upewnić się, że na tych komputerach jest zainstalowany iTunes lub inny klient Bonjour.
Sprawdź ten link, aby uzyskać więcej informacji: http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/
Chociaż ten link jest specyficzny dla Raspberry Pi, powinien działać na komputerach Ubuntu w ten sam sposób. W przypadku innych dystrybucji Linuksa, które nie używają
apt-get
, po prostu dostosujapt-get
do odpowiedniego menedżera pakietów - np.yum
Dla Fedory i CentOS)Oto dokładne polecenia, które uruchomiłem, aby uruchomić to na moim serwerze mediów Raspberry Pi:
sudo apt-get update && sudo apt-get upgrade sudo apt-get install avahi-daemon
Następnie automatycznie zaczyna używać nazwy hosta komputera i
.local
rozszerzenia jako nazwy domeny. Jeśli więc nazwa hosta Twojego komputera tomediaserver
, możesz uzyskać do niego dostęp w sieci, wpisującmediaserver.local
w pasku adresu URL dowolnego komputera z zainstalowanym Bonjour / Avahi (tj. Wszystkie komputery Mac oraz komputery z zainstalowanym programem iTunes).źródło
Rozpoznawanie nazw lokalnych jest prostą funkcją i było częścią większości używanych przeze mnie routerów. Jest również zaimplementowany w oprogramowaniu DD-WRT. Netgear nie dba o tę funkcję, która jest stale wymagana .
Tak więc odpowiedź, która jest znacznie prostsza niż inne opublikowane tutaj - uniknij problemów i zmień router Netgerat na coś, co obsługuje rozpoznawanie nazw lokalnych. Lub, jeśli nie jest to opcja, a czujesz siłę i masz czas, flashuj na niej DD-WRT.
źródło