Ero sivun ”DDNS päivitysohjelmat” versioiden välillä
Rivi 200: | Rivi 200: | ||
Woimalle perusasetukset ovat melkein samanlaiset kuin dy.fi palvelulla. Muuta vain username ja password vastaamaan dynaamisen dns palvelun käyttäjänimeä ja salasanaa. Muuta domain.com vastaamaan isäntänimeä. | Woimalle perusasetukset ovat melkein samanlaiset kuin dy.fi palvelulla. Muuta vain username ja password vastaamaan dynaamisen dns palvelun käyttäjänimeä ja salasanaa. Muuta domain.com vastaamaan isäntänimeä. | ||
− | curl -D --user username:password http:/dyn.woima.fi/update?domain.com | + | curl -D -4 --user username:password http://4.dyn.woima.fi/update?domain.com |
== Aiheeseen liittyvää == | == Aiheeseen liittyvää == |
Versio 12. tammikuuta 2015 kello 11.52
Dynaaminen DNS on kätevä tapa mahdollistaa dns nimen (esim. helenius.dy.fi / datatekniikka.fi) dynaamisissa IP-osoitteissa. Kun IP-osoite muuttuu niin voit automaattisoida IP-osoitteiden muutokset DNS palvelimiin. Normaalisti sinun tulisi tehdä tämä manuaalisesti. Dy.fi on suomalainen palvelu ja toimii dynaamisen dns palvelun ylläpitäjänä. Myös https://woima.fi/dyndns on alkanut tarjoamaan dynaamisia DNS osoitteita myös omille domaineilleen.
Muita palveluja on dydns.org ja no-ip.org.
Sisällysluettelo
Käyttöönotto
Päivitys UNIX järjestemissä wgetillä
1. Avaa crontab
sudo nano /etc/crontab
Lisää seuraava rivi sivulle
45 3 * * 1,5 wget --delete-after --no-check-certificate --no-proxy --user=käyttäjätunnus --password=salasana https://www.dy.fi/nic/update?hostname=omaosoite.dy.fi
Tallenna tiedosto ja nyt pitäisi toimia automaattinen DDNS päivitys. Esimerkissä päivitys tapahtuu varttia 3.45 joka maanantai ja perjantai.
Seuraavalla komennolla voit tarkistaa toimiiko varmasti. Aja komento suoraan terminaalissa.
wget --delete-after --no-check-certificate --no-proxy --user=käyttäjätunnus --password=salasana https://www.dy.fi/nic/update?hostname=omaosoite.dy.fi
Päivitys UNIX järjestemissä curlilla
1. Asenna curl pakettihallinnasta
apt-get install curl
2. Avaa crontab
nano /etc/crontab
3. Lisää tämä rivi muokaten tietoja palveluntarjoajasi mukaan ennen # merkkiä lopusta. Korvaa useraccount ja password dyndns palvelusi käyttäjänimellä ja salasanalla. Muuta hostname.dy.fi vastaamaan isäntänimeäsi.
45 3 * * 1,5 root curl -D - --user useraccount:password http://www.dy.fi/nic/update?hostname=hostname.dy.fi
Esimerkissä päivitys tapahtuu varttia 3.45 joka maanantai ja perjantai.
Toisessa esimerkissä päivitettään 10 minuutin välein
*/10 * * * * root curl -D --user useraccount:password http://www.dy.fi/nic/update?hostname=hostname.dy.fi
Muuta seuraavat tiedot:
useraccount = käyttäjänimi
password = salasana
hostname.dy.fi = Omasi isäntänimesi, jonka olet varannut dy.fi palvelussa.
Ajaa tämä esimerkiksi testiksi, niin voin testata toimiiko DDNS päivitys. Korvaa useraccount ja password dynaamisen dns palvelun tunnuksella ja salasanalla.
curl -D - --user useraccount:password http://www.dy.fi/nic/update?hostname=hostname.dy.fi
Tuloksena tulisi tulostua
good [ip-osoitteesi]
Esimerkki tarkistetaan onko IP-osoite muuttunut ja tämän jälkeen päivitetään jos muutoksia. Kopioi ja tallenna dyndns.sh:
#!/bin/bash USERNAME="dyndnsusername" PASSWORD="dyndnspassword" HOSTNAME="yourdomain" IP=`curl -s http://checkip.dy.fi/ | grep -o '\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}'` ABUSE_LOCK_FILE="/tmp/dyndns.abuse" LAST_IP_FILE="/tmp/lastip" LAST_IP=`cat $LAST_IP_FILE` #lockfile check, lockfile is only used if a abuse result appears if [ -e "$ABUSE_LOCK_FILE" ]; then echo "Dyndns abuse lockfile exisits: $ABUSE_LOCK_FILE" exit 1 fi #end of lockfile check if [ "$IP" != "$LAST_IP" ]; then echo "Current IP: $IP" RESULT=`curl -D --user $USERNAME:$PASSWORD "http://dy.fi/nic/update?hostname=$HOSTNAME&myip=$IP" | grep -o -E "good|nochg|abuse|badauth|notfqdn|nohost|abuse|dnserr"` echo "Dyndns.org says: $RESULT!" else echo "IP is still the same: $LAST_IP" fi
Päivitysohjelma Windowssille
Lataa ja asenna päivitysohjelma http://www.randomnoun.com/wp/2013/08/19/a-dynamic-dns-client-for-windows/
Asennusohjelmassa kysytään dynaamisen palvelimen osoitteita ja käyttäjätunnuksista. Voit muokata myöhemmin konfigurointi tiedoston avulla.
Esimerkki konfigurointi tiedostosta (Konfigurointi tiedosto löytyy %SystemDrive%\Program Files (x86)\ddclient hakemistosta tai SystemDrive&\Program File\ddclient hakemistosta):
# ddclient.conf # daemon=5m use=web web=checkip.dy.fi server=www.dy.fi protocol=dyndns2 login=exampeuser, password=Qwerty1 dyn1.example.com ssl=no
Päivitys scripti RouterOS
Seuraava scripti on testattu RouterOS versiolla 6.15. Muille versiolle: http://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_dynDNS
Muokkaa alla oleva scripti itsellesi sopivaksi. Avaa RouterOS valikosta System -> Scripts. Luo uusi skripti ja kopioi alla oleva siihen.
:global ddnsuser "theddnsusername" :global ddnspass "theddnspassword" :global theinterface "interfacename" :global ddnshost blabla.dyndns.org :global ipddns [:resolve $ddnshost]; :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ] :if ([ :typeof $ipfresh ] = nil ) do={ :log info ("DynDNS: No ip address on $theinterface .") } else={ :for i from=( [:len $ipfresh] - 1) to=0 do={ :if ( [:pick $ipfresh $i] = "/") do={ :set ipfresh [:pick $ipfresh 0 $i]; } } :if ($ipddns != $ipfresh) do={ :log info ("DynDNS: IP-DynDNS = $ipddns") :log info ("DynDNS: IP-Fresh = $ipfresh") :log info "DynDNS: Update IP needed, Sending UPDATE...!" :global str "/nic/update\?hostname=$ddnshost&myip=$ipfresh" /tool fetch address=dy.fi host=dy.fi src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=/ :delay 1 :global str [/file find name="$ddnshost"]; /file remove $str :global ipddns $ipfresh :log info "DynDNS: IP updated to $ipfresh!" } else={ :log info "DynDNS: dont need changes"; } }
ddnsuser = dynaamisen DNS palvelun käyttäjätili, esim. dy.fi palvelussa sähköposti-osoitteesi
ddnspass = käyttäjätilisi salasana
theinterface = Liitäntä joka on yhteydessä ulkoverkkoon ja josta otetaan IP-osoite joka lähetetään dynaamisen dns palvelulle.
ddnshost = Dynaamisen dns palvelun verkko-osoite, joka päivitetään, esim. domain.dy.fi.
Päivitys RouterOS yli NAT
Testattu RouterOS 6.15 versiossa
# Set needed variables :local username "theddnsusername" :local password "theddnspassword" :local hostname "blabla.dyndns.org" :global dyndnsForce :global previousIP # print some debug info :log info ("UpdateDynDNS: username = $username") :log info ("UpdateDynDNS: hostname = $hostname") :log info ("UpdateDynDNS: previousIP = $previousIP") # get the current IP address from the internet (in case of double-nat) /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html" :local result [/file get dyndns.checkip.html contents] # parse the current IP result :local resultLen [:len $result] :local startLoc [:find $result ": " -1] :set startLoc ($startLoc + 2) :local endLoc [:find $result "</body>" -1] :local currentIP [:pick $result $startLoc $endLoc] :log info "UpdateDynDNS: currentIP = $currentIP" # Remove the # on next line to force an update every single time - useful for debugging, but you could end up getting blacklisted by DynDNS! #:set dyndnsForce true # Determine if dyndns update is needed # more dyndns updater request details available at http://www.dyndns.com/developers/specs/syntax.html :if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={ :set dyndnsForce false :set previousIP $currentIP /tool fetch user=$username password=$password mode=http address="dyn.fi" host="dy.fi" src-path="/nic/update\?hostname=$hostname&myip=$currentIP" dst-path="/dyndns.txt" :local result [/file get dyndns.txt contents] :log info ("UpdateDynDNS: Dyndns update needed") :log info ("UpdateDynDNS: Dyndns Update Result: ".$result) :put ("Dyndns Update Result: ".$result) } else={ :log info ("UpdateDynDNS: No dyndns update needed") }
Woimalle asetukset
Woimalle perusasetukset ovat melkein samanlaiset kuin dy.fi palvelulla. Muuta vain username ja password vastaamaan dynaamisen dns palvelun käyttäjänimeä ja salasanaa. Muuta domain.com vastaamaan isäntänimeä.
curl -D -4 --user username:password http://4.dyn.woima.fi/update?domain.com
Aiheeseen liittyvää
Lähteet
http://wiki.ubuntu-fi.org/Dynaaminen_DNS
http://wiki.mikrotik.com/wiki/Dynamic_DNS_Update_Script_for_dynDNS