Što je dinamički DNS?
Preduvjeti
Instalacija i postavljanje
Automatizacija
Što je dinamički DNS?
Uzmimo uobičajen primjer postavljanja DNS-a. Vaša domena je example.com, i imate " A" zapise za server1.example.comi server2.example.com. Server1 se nalazi u Vultru, ali server2 se nalazi na lokalnoj mreži, kao što je unutar vašeg poduzeća ili kao razvojni stroj u vašem domu. Obično ove vrste lokalnih okruženja imaju javne IP adrese koje se dinamički dodjeljuju od vašeg davatelja internetskih usluga (ISP) i mogu se neočekivano promijeniti. To bi rezultiralo time da server2 iznenada ukazuje na pogrešnu IP adresu što bi moglo ozbiljno utjecati na uslugu. Ovaj članak će vam pokazati kako postaviti vlastitu dinamičku DNS uslugu, koja radi na lokalnom računalu i može automatski ažurirati zapis za server2 u Vultr DNS-u nakon javne promjene IP-a.
While clients like ddclient and inadyn will work for some DNS providers, Vultr does not currently support these and instead uses its own custom API. This service will run locally on your machine and use GET and POST requests along with your access key.
Preduvjeti
- Pristup vašem Vultr računu za postavljanje DNS-a i upravljanje pristupnim ključevima.
- Mogućnost povezivanja na lokalni stroj koji ima dinamičku IP adresu (ili pristup drugom stroju na istoj mreži).
Instalacija i postavljanje
Postavljanje vaše domene za korištenje Vultrove DNS usluge
- Ako ne koristite Vultrovu DNS uslugu za svoju domenu, slijedite ovaj članak da biste promijenili svoje poslužitelje imena za korištenje s Vultrom.
- Nakon što je Vultr DNS postavljen, idite na stranicu upravljanja DNS-om pod "Poslužitelji -> DNS -> [naziv vaše domene]".
- Ovdje ćete pronaći sve zapise postavljene za vašu domenu. Zapišite koji zapis(e) želite promijeniti jer će vam to trebati kasnije.
AOvaj uslužni program podržava samo zapise " ". Ako imate više Azapisa " " koje želite ažurirati na istu IP adresu, promijenite ih u " CNAME" zapise i usmjerite ih na jedan " A" zapis. Ovo će vam dugoročno pojednostaviti stvari i smatra se ispravnim načinom konfiguracije DNS-a.
Ugradnja potrebnih alata
- Povežite se s vašim lokalnim poslužiteljem. To može biti izravno ili putem SSH-a.
- Ovaj alat zahtijeva Python 3. Većina distribucija Linuxa uključuje unaprijed instaliran Python. U slučaju da nije instaliran u vašem okruženju, upute su dostupne na službenom Python wikiju ovdje:
- Ovaj proces također zahtijeva Git, koji možete instalirati prema uputama u nastavku:
Preuzimanje dinamičkog DNS klijenta
Koristite Git za kloniranje spremišta koje sadrži python DDNS klijenta. To biste trebali učiniti u sigurnom direktoriju za koji imate potpuni pristup. Vaša početna mapa trebala bi biti dovoljna. Pokrenite sljedeću naredbu:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Generiranje osobnog tokena za pristup
Generirajte osobni pristupni token u Vultr. To se može učiniti pod "Račun -> API -> Token za osobni pristup". Na istoj stranici morat ćete otići pod "Kontrola pristupa" i kliknuti gumb "Dopusti sve IPv4", budući da nećete svaki put znati IP vašeg lokalnog poslužitelja, stoga je točka dinamičkog DNS-a.
Konfiguriranje alata za vaš poslužitelj
- Pročitajte
config.json.exampledatoteku za primjer kako bi vaša konfiguracijska datoteka trebala izgledati.
- Otvorite
config.jsondatoteku pomoću svog omiljenog uređivača teksta i ispunite vrijednosti na temelju vaših specifičnih postavki poslužitelja.
Datoteka bi trebala sadržavati sljedeće:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
Unesite svoj pristupni token u polje api_key.
- Unesite svoju osnovnu domenu u
domainpolje. Na primjer, example.com.
- Sada u polje unesite
Azapise " " koje želite promijeniti dynamic_records. Koristeći prethodni primjer, unijeli biste server2da automatski promijenite server2IP adresu korisnika. Možete unijeti više poddomena. Ako želite promijeniti osnovni Azapis " " za svoju domenu (koji se obično spominje kao @, zapis koji odgovara kada idete ravno na example.com), jednostavno ostavite prazne navodnike.
Ispravna konfiguracijska datoteka može izgledati ovako, gdje želite dinamički promijeniti IP za example.comi server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
Sada spremite ove promjene i vaša bi datoteka trebala biti spremna!
Testirajte svoju konfiguraciju
- Testirajte skriptu i konfiguraciju pokretanjem
python3 ddns.py. Ako ovo ne vrati nikakve pogreške, vaša konfiguracija je nominalna i možete pokrenuti proces automatizacije.
Automatizacija
Nakon dovršetka osnovnog postavljanja, važno je postaviti ponavljajući zadatak jer skripta to ne čini prema zadanim postavkama. Povežite se na svoj lokalni stroj i slijedite dolje navedene korake na temelju vašeg operativnog sustava.
Linux i Mac OSX
Linux i Mac cronveć imaju instaliran uslužni program koji vam omogućuje da odredite skripte za izvođenje prema postavljenim rasporedima.
- Pronađite puni put
ddns.pydatoteke koristeći realpath ddns.pydok ste još u vultrddnsdirektoriju.
- Pokrenite
crontab -eda biste uredili svoj crontab.
Dodajte sljedeći redak na kraj datoteke, dodajući pravi put do ddns.pydatoteke:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
Ovo će pokrenuti skriptu svakih 30 minuta i sav njezin izlaz preusmjeriti na /dev/null.
- Spremite i izađite iz uređivača teksta. Datoteka crontab automatski će se instalirati i vaš IP će se sada automatski ažurirati.
Windows
Napravite zadatak u Planeru zadataka koji će se izvoditi svakih 30 minuta. Slijedite Microsoftov vodič za izradu osnovnih zadataka.
- Otvorite Task Scheduler i kliknite na "Kreiraj zadatak...".
- Dajte mu ime i stvorite novi okidač.
- Kliknite "Dnevno". Pod "Napredne postavke" kliknite za ponavljanje zadatka svakih 30 minuta i promijenite "trajanje od" u "Neograničeno".
- Dodajte novu radnju za pokretanje programa i pregledavanje izvršne datoteke za Python. Dodajte
ddns.pyskriptu kao argument.