Zanim przejdę do pytania, kilka szybkich informacji ogólnych:
Zbudowałem mały eksperyment, który współpracuje z komputerem z systemem Windows 7. Na tym komputerze znajduje się niewielki serwer internetowy, który stale aktualizuje stronę internetową z informacjami o stanie pochodzącymi z eksperymentu. Teraz ten eksperyment będzie wyświetlany podczas niektórych wydarzeń (wyobraź sobie MakerFaire, ...) i chciałbym, aby ludzie mogli używać swoich smartfonów (lub laptopów) do bezpośredniego wyświetlania tej strony przy możliwie jak najmniejszej konfiguracji.
Zasadniczo staram się osiągnąć:
Utwórz punkt dostępu Wi-Fi za pomocą wbudowanego adaptera Wi-Fi w komputerze, z którym ludzie mogą się łączyć (otwarte lub chronione hasłem)
Przechwytuj i przekierowuj żądania DNS i / lub HTTP, aby strona eksperymentu była wyświetlana po otwarciu przeglądarki (np. Portal przechwytujący)
Do tej pory udało mi się osiągnąć punkt 1 za pomocą funkcji Hosted Network systemu Windows 7, która działa doskonale w przypadku części AP Wi-Fi. Jednak utknąłem, jeśli chodzi o modyfikowanie odpowiedzi DHCP w celu zapewnienia niestandardowego serwera DNS, który z kolei przekaże cały ruch do mojego serwera: czy jest jakiś sposób, aby to zrobić?
Kilka ograniczeń, które mam (inaczej byłoby to zbyt łatwe ;-)):
- Utknąłem w systemie Windows 7 (wiem, że w Linuksie problem zostałby rozwiązany dawno temu!)
- Komputer jest samodzielną maszyną, tzn. Nie ma dostępu do innych sieci ani Internetu. Co oznacza również brak routera lub innego urządzenia zewnętrznego!
Każda pomoc lub sugestie są mile widziane!
http://192.168.0.200/webpage
. Jeśli obawiasz się konfliktu DHCP, zmodyfikuj router, aby wykluczyć 200 z jego zasięgu (tj. 192.168.0.0-199). Niektóre routery używają adresów 192.168.1.x.Odpowiedzi:
MaraDNS to darmowy, lekki i stosunkowo łatwy w konfiguracji serwer DNS dla systemów Windows i Linux. Pobierz go stąd i rozpakuj do jakiegoś folderu.
Otwórz „secret.txt” i zmień wartość na coś innego (losowe znaki).
Konfiguracja MaraDNS znajduje się w pliku „mararc” w tym samym katalogu. Serwery DNS mają dwa zestawy funkcji. Mogą działać jako „autorytatywny serwer nazw” lub „rekursywny / buforujący serwer nazw”.
Autorytatywne serwery nazw określają adresy IP dla nazw domen. Rekurencyjne serwery nazw przechowują informacje z autorytatywnych serwerów nazw i przekazują zapytania w sposób rekurencyjny.
Będziemy konfigurować zarówno autorytatywną, jak i rekurencyjną funkcjonalność w MaraDNS.
2.1 Autorytatywna konfiguracja
Skonfigurujemy serwer tak, aby podawał wiarygodne nazwy domen LAN. Wybierz dowolną domenę, wybrałem „local.com” (pamiętaj jednak, że nie będziesz mieć dostępu do faktycznej witryny „local.com”, jeśli wybierzesz istniejącą nazwę domeny).
Dodaj wiersze konfiguracji do „mararc” w następujący sposób:
Gdzie local.com to nazwa domeny, którą wybrałeś, a db.lan.txt to nazwa drugiego pliku konfiguracyjnego, który będziemy następnie tworzyć (zmień go, jeśli chcesz nazwać drugi plik konfiguracyjny).
Utwórz nowy plik o nazwie „db.lan.txt” w tym samym katalogu, co MaraDNS.
Dla każdego komputera, którego nazwa ma zostać rozpoznana, dodaj wiersz do „db.lan.txt”. Na przykład dla dwóch komputerów, jednego „dev.local.com” i drugiego „blog.local.com”, dodaj następujące wiersze:
Gotowe!
2.2 Konfiguracja rekurencyjna
Skonfigurujemy MaraDNS, aby pytał twoje domyślne serwery nazw dla wszystkich innych domen, abyś mógł rozwiązać wszystkie inne nazwy domen na ich poprawne adresy IP.
Znajdź adresy serwerów DNS swojego dostawcy usług internetowych. Zostaną one prawdopodobnie wymienione na stronie stanu routera lub przez sprawdzenie szczegółów na karcie sieciowej.
Teraz dodaj serwery DNS swojego usługodawcy internetowego jako serwery nadrzędne w „mararc”:
Gdzie xxx.xxx.xxx.xxx i rrrrrrrrrrrr są serwerami DNS Twojego usługodawcy internetowego.
Gotowe!
Kliknij dwukrotnie „runmara.bat” i pozostaw serwer uruchomiony.
Otwórz wiersz polecenia, przejdź do katalogu MaraDNS i spróbuj uruchomić:
i
Powinieneś otrzymać takie odpowiedzi:
i:
Jeśli pojawią się problemy z pierwszym zapytaniem, pomieszałeś rekurencyjne ustawienia DNS (czy adresy twojego serwera DNS ISP są poprawne?), A jeśli pojawi się błąd przy drugim zapytaniu, pomieszałeś autorytatywne ustawienia.
Zamknij okno MaraDNS i zmień pierwsze dwie linie „mararc” na coś takiego:
Gdzie 192.168.1.2 to adres IP komputera, na którym serwer będzie działał, a „192.168.1 ″ część recursive_acl jest taka sama jak w twojej sieci (może to być 192.168.0.0/24).
Uruchom ponownie MaraDNS i pozostaw go uruchomionym.
Otwórz interfejs sieciowy routera i znajdź ustawienia serwera DHCP. Powinna istnieć opcja skonfigurowania serwera DNS. Wpisz adres IP komputera, na którym będzie działał serwer DNS.
Dla każdego komputera odłącz sieć (np. Wyłączając i włączając ją w systemie Windows lub używając „ifconfig eth0 down” / ”ifconfig eth0 up” w systemie Linux).
To wszystko, powinieneś teraz mieć możliwość odwoływania się do komputerów LAN po ich nazwach domen.
Źródło
źródło