Temat: OpenDNS a DyDNS
Witam, może ktoś mi pomoże jak skonfigurować DyDNS w OPENWRT Luci CC konto w OpenDNS. Posiadam jedynie login w postaci adresu mailowego i hasło. Jakoś nie chce mi ruszyć aktualizacja adresu.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → OpenDNS a DyDNS
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam, może ktoś mi pomoże jak skonfigurować DyDNS w OPENWRT Luci CC konto w OpenDNS. Posiadam jedynie login w postaci adresu mailowego i hasło. Jakoś nie chce mi ruszyć aktualizacja adresu.
To raz działa, raz nie (z wielu przyczyn niezależnych od openwrt i klienta ddns w nim). Ja to obchodzę trochę na okrągło sprawdzonym sposobem, czyli skryptem wywoływanym z crona:
#!/bin/sh
wget -q --user=<mejl, którym możesz się zalogować na opendns, jako login> --password=<wiadomo - na opendns...> 'https://updates.opendns.com/nic/update?hostname=<podana nazwa połączenia z opendns - nie ma w darmowej wersji opcji hostname, którą umie obsłużyć openwrt>&myip=' -O -Działa od strzału i zawsze, również pod linuchem - wymaga pełnej wersji wget z wkompilowaną obsługą ssl.
Możesz sobie echo na powłokę dorobić, wtedy będziesz miał potwierdzenie w logach (logread).
tak ale co wpisać w polu "hostname"
No już Ci pisałem - wejdź na opendns i wszystko się rozjaśni - wpisujesz nazwę połączenia, jak ją zadeklarowałeś w konfiguracji - ta nazwa to nie nazwa domenowa - to tu tkwi błąd w rozumowaniu - opendns nie dostarcza w wersji darmowej domen - to jest umowna nazwa, jaką zna opendns, ale nie umie jej obsłużyć openwrt.
oto co mi wyskakuje:
-ash: can't open mariusz.i@interia.pl: no such file
(...)
wget -q --user=mariusz.i@interia.pl
(...)tez mialem z tym problem, musialem pokombinowac ze skryptami
na poczatek musisz zainstalowac pelny wget
opkg update
opkg install wget
/etc/config/ddns
zmienic tylko option domain, option username, option password na swoje dane
config service 'OpenDNS'
option enabled '1'
option update_url 'http://[USERNAME]:[PASSWORD]@updates.opendns.com/nic/update?hostname=[DOMAIN]'
option domain 'nazwasieciwopendns'
option username 'mail'
option password 'haslo'
option use_https '1'
option cacert 'IGNORE'
option interface 'wan'
option use_syslog '2'
option use_logfile '1'
option ip_source 'network'
option ip_network 'wan'Teraz trzeba zmienic plik /usr/lib/ddns/dynamic_dns_functions.sh
tam w sekcji get_registered_ip zmien wszystko na
get_registered_ip() {
local __CNT=0
local __ERR=255
local __REGEX __PROG __RUNPROG __DATA
[ $# -lt 1 -o $# -gt 2 ] && write_log 12 "Error calling 'get_registered_ip()' - wrong number of parameters"
write_log 7 "Detect registered/public IP"
[ $use_ipv6 -eq 0 ] && __REGEX="$IPV4_REGEX" || __REGEX="$IPV6_REGEX"
if [ -x /usr/bin/host ]; then
__PROG="/usr/bin/host"
[ $use_ipv6 -eq 0 ] && __PROG="$__PROG -t A" || __PROG="$__PROG -t AAAA"
if [ $force_ipversion -eq 1 ]; then
[ $use_ipv6 -eq 0 ] && __PROG="$__PROG -4" || __PROG="$__PROG -6"
fi
[ $force_dnstcp -eq 1 ] && __PROG="$__PROG -T"
__RUNPROG="$__PROG $domain $dns_server >$DATFILE 2>$ERRFILE"
__PROG="BIND host"
elif [ -x /usr/bin/wget ]; then
[ $force_ipversion -ne 0 -o $force_dnstcp -ne 0 ] && \
write_log 14 "Busybox wget - no support to 'force IP Version' or 'DNS over TCP'"
__RUNPROG="/usr/bin/wget -q --no-check-certificate --no-proxy 'https://mail%40mail.com:haslo@updates.opendns.com/nic/update?hostname=nazwasieciwopendns' -O - | grep -oe '\(\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)\(\.\|$\)\)\{4\}' >$DATFILE 2>$ERRFILE"
__PROG="BusyBox wget"
else
write_log 12 "Error in 'get_registered_ip()' - no supported Name Server lookup software accessible"
fi
while : ; do
write_log 7 "#> $__RUNPROG"
eval $__RUNPROG
__ERR=$?
if [ $__ERR -ne 0 ]; then
write_log 3 "$__PROG error: '$__ERR'"
write_log 7 "$(cat $ERRFILE)"
else
if [ "$__PROG" = "BIND host" ]; then
__DATA=$(cat $DATFILE | awk -F "address " '/has/ {print $2; exit}' )
else
__DATA=$(cat $DATFILE )
fi
[ -n "$__DATA" ] && {
write_log 7 "Registered IP '$__DATA' detected"
eval "$1=\"$__DATA\""
return 0
}
write_log 4 "NO valid IP found"
__ERR=127
fi
[ $LUCI_HELPER ] && return $__ERR
[ -n "$2" ] && return $__ERR
[ $VERBOSE_MODE -gt 1 ] && {
write_log 4 "Get registered/public IP for '$domain' failed - Verbose Mode: $VERBOSE_MODE - NO retry on error"
return $__ERR
}
__CNT=$(( $__CNT + 1 ))
[ $retry_count -gt 0 -a $__CNT -gt $retry_count ] && \
write_log 14 "Get registered/public IP for '$domain' failed after $retry_count retries"
write_log 4 "Get registered/public IP for '$domain' failed - retry $__CNT/$retry_count in $RETRY_SECONDS seconds"
sleep $RETRY_SECONDS &
PID_SLEEP=$!
wait $PID_SLEEP
PID_SLEEP=0
done
write_log 12 "Error in 'get_registered_ip()' - program coding error"https://mail%40mail.com:haslo@updates.opendns.com/nic/update?hostname=nazwasieciwopendns zmien na swoje dane (%40 to znak @ więc tego nie usuwaj)
Po tej operacji juz normalnie bedzie dzialac aktualizowanie ip w opendns
PS to byc moze popsuje dzialanie innych normalnych ddnsow jesli ktos uzywa. (ale moze bedzie dzialac nie wiem nie sprawdzalem)
Ja nie jestem programista i tak to wykombinowalem, ale jesli ktos ma jakis sposob na ulepszenie tego skryptu to chodzi o to ze teraz w CC skrypt chce sprawdzac to co sie poda jako domene... a ze w opendns domena to nazwa sieci to wyskakuje error ze nie znaleziono zadnego IP.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → OpenDNS a DyDNS
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc