Co to jest Dynamic DNS?
Weźmy wspólny przykład konfiguracji DNS. Twoja domena jest example.com, a Ty masz Arekordy dla server1.example.comi server2.example.com. Serwer 1 jest hostowany w Vultr, ale serwer 2 jest hostowany w sieci lokalnej, np. W firmie lub jako maszyna programistyczna w domu. Zazwyczaj tego typu środowiska lokalne mają publiczne adresy IP przydzielane dynamicznie przez dostawcę usług internetowych (ISP) i mogą się nieoczekiwanie zmieniać. Spowoduje to, że serwer2 nagle wskaże niewłaściwy adres IP, co może poważnie wpłynąć na obsługę. W tym artykule dowiesz się, jak skonfigurować własną dynamiczną usługę DNS, która działa na komputerze lokalnym i może automatycznie aktualizować rekord dla server2 w Vultr DNS automatycznie po publicznej zmianie adresu IP.
Chociaż klienci lubią ddclienti inadynbędą działać dla niektórych dostawców DNS, Vultr obecnie ich nie obsługuje i zamiast tego używa własnego niestandardowego interfejsu API. Ta usługa będzie działać lokalnie na twoim komputerze i będzie używać żądań GET i POST wraz z twoim kluczem dostępu.
Wymagania wstępne
- Dostęp do konta Vultr, aby skonfigurować DNS i zarządzać kluczami dostępu.
- Możliwość połączenia z komputerem lokalnym, który ma dynamiczny adres IP (lub dostęp do innego komputera w tej samej sieci).
Instalacja i konfiguracja
Konfigurowanie domeny do korzystania z usługi DNS Vultr
- Jeśli nie korzystasz z usługi DNS Vultr w swojej domenie, postępuj zgodnie z tym artykułem, aby zmodyfikować serwery nazw do użytku z Vultr.
- Po skonfigurowaniu Vultr DNS przejdź do strony zarządzania DNS w sekcji „Serwery -> DNS -> [nazwa Twojej domeny]”.
- Tutaj znajdziesz wszystkie rekordy skonfigurowane dla Twojej domeny. Zapisz, które rekordy chcesz zmienić, ponieważ będą one potrzebne później.
ATo narzędzie obsługuje tylko rekordy „ ”. Jeśli masz wiele Arekordów, które chcesz zaktualizować, na ten sam adres IP, zmień je na CNAMErekordy i wskaż jeden A. Uprości to na dłuższą metę i jest uważane za właściwy sposób konfiguracji DNS.
Instalowanie wymaganych narzędzi
- Połącz się z lokalnym serwerem. Może to być bezpośrednio lub za pośrednictwem SSH.
- To narzędzie wymaga języka Python 3. Większość dystrybucji systemu Linux zawiera wstępnie zainstalowany język Python. Jeśli nie jest on zainstalowany w twoim środowisku, instrukcje są dostępne na oficjalnej wiki Pythona tutaj:
- Ten proces wymaga również Gita, który możesz zainstalować zgodnie z poniższymi instrukcjami:
Pobieranie klienta Dynamic DNS
Użyj Git, aby sklonować repozytorium zawierające klienta DDNS w języku python. Powinieneś to zrobić w bezpiecznym katalogu, do którego masz pełny dostęp. Twój folder domowy powinien wystarczyć. Uruchom następujące polecenie:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Generowanie osobistego tokena dostępu
Wygeneruj osobisty token dostępu w Vultr. Można to zrobić w „Konto -> API -> Osobisty token dostępu”. Na tej samej stronie musisz przejść do „Kontroli dostępu” i kliknąć przycisk „Zezwól na wszystkie IPv4”, ponieważ za każdym razem nie poznasz adresu IP twojego lokalnego serwera, stąd punkt dynamicznego DNS.
Konfigurowanie narzędzia dla twojego serwera
- Przeczytaj
config.json.exampleplik, aby zobaczyć przykładowy plik konfiguracyjny.
- Otwórz
config.jsonplik za pomocą ulubionego edytora tekstu i wypełnij wartości w zależności od konfiguracji serwera.
-
Plik powinien zawierać następujące elementy:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
-
Wprowadź swój token dostępu w polu api_key.
- Wprowadź swoją domenę podstawową w
domainpolu. Na przykład example.com.
- Teraz wpisz w polu
Arekordy, które chcesz zmienić dynamic_records. W poprzednim przykładzie wprowadzono server2by automatyczną zmianę server2adresu IP. Możesz wprowadzić wiele subdomen. Jeśli chcesz zmienić podstawowy Arekord dla swojej domeny (zwykle określany jako @rekord, który reaguje, gdy nawigujesz prosto do example.com), po prostu zostaw puste cudzysłowy.
-
Właściwy plik konfiguracyjny może wyglądać tak, w którym chcesz dynamicznie zmienić adres IP dla example.comi server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
-
Teraz zapisz te zmiany, a plik powinien być gotowy do pracy!
Sprawdź swoją konfigurację
- Przetestuj skrypt i konfigurację, uruchamiając
python3 ddns.py. Jeśli to nie zwróci żadnych błędów, twoja konfiguracja jest nominalna i możesz rozpocząć proces automatyzacji.
Automatyzacja
Po zakończeniu podstawowej konfiguracji ważne jest skonfigurowanie zadania cyklicznego, ponieważ skrypt domyślnie tego nie robi. Połącz się z komputerem lokalnym i wykonaj poniższe czynności w zależności od systemu operacyjnego.
Linux i Mac OSX
Linux i Mac mają cronjuż zainstalowane narzędzie, które pozwala określić skrypty uruchamiane zgodnie z ustalonymi harmonogramami.
- Znajdź pełną ścieżkę do
ddns.pypliku przy użyciu, realpath ddns.pygdy jesteś jeszcze w vultrddnskatalogu.
- Uruchom,
crontab -eaby edytować crontab.
-
Dodaj następujący wiersz na końcu pliku, dodając prawdziwą ścieżkę do ddns.pypliku:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
-
Spowoduje to uruchomienie skryptu co 30 minut i przekierowanie wszystkich danych wyjściowych do /dev/null.
- Zapisz i wyjdź z edytora tekstu. Plik crontab zostanie automatycznie zainstalowany, a twój adres IP zostanie teraz automatycznie zaktualizowany.
Windows
Utwórz zadanie w Harmonogramie zadań, aby uruchamiało się co 30 minut. Postępuj zgodnie z instrukcjami firmy Microsoft dotyczącymi tworzenia podstawowych zadań.
- Otwórz Harmonogram zadań i kliknij „Utwórz zadanie ...”.
- Nadaj mu nazwę i stwórz nowy wyzwalacz.
- Kliknij „Codziennie”. W „Ustawieniach zaawansowanych” kliknij, aby powtarzać zadanie co 30 minut i zmień „na czas trwania” na „na czas nieokreślony”.
- Dodaj nową akcję, aby uruchomić program i przejdź do pliku wykonywalnego Python. Dodaj
ddns.pyskrypt jako argument.