Gå til innhold

trøbbel med ddclient


Anbefalte innlegg

Prøver å sette opp dyndns, men får det ikke til å funke så bra... Første forsøk var vha. klient på ruteren, men det virket ikke. Så da går vi over til ddclient på serveren :)

 

I alle fall sier den at den ikke klarer å finne ip (boksen står på NAT):

 

config:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

daemon=300
syslog=yes
pid=/var/run/ddclient.pid

use=if, if=web, web=checkip.dyndns.org/, fw-skip='IP Address'

protocol=dyndns2
server=members.dyndns.org
login=kyrsjo
password=*******
kyrsjo.homelinux.org

 

feilmelding:

#ddclient -daemon=0 -debug -verbose -noquiet

=== opt ====

opt{cache} : <undefined>

opt{cmd} : <undefined>

opt{cmd-skip} : <undefined>

opt{daemon} : 0

opt{debug} : 1

opt{exec} : <undefined>

opt{facility} : <undefined>

opt{file} : <undefined>

opt{force} : <undefined>

opt{fw} : <undefined>

opt{fw-login} : <undefined>

opt{fw-password} : <undefined>

opt{fw-skip} : <undefined>

opt{geturl} : <undefined>

opt{help} : <undefined>

opt{host} : <undefined>

opt{if} : <undefined>

opt{if-skip} : <undefined>

opt{ip} : <undefined>

opt{login} : <undefined>

opt{mail} : <undefined>

opt{max-interval} : 0

opt{min-error-interval} : 0

opt{min-interval} : 0

opt{options} : <undefined>

opt{password} : <undefined>

opt{pid} : <undefined>

opt{priority} : <undefined>

opt{protocol} : <undefined>

opt{proxy} : <undefined>

opt{query} : <undefined>

opt{quiet} : 0

opt{retry} : <undefined>

opt{server} : <undefined>

opt{syslog} : <undefined>

opt{test} : <undefined>

opt{timeout} : <undefined>

opt{use} : <undefined>

opt{verbose} : 1

opt{web} : <undefined>

opt{web-skip} : <undefined>

=== globals ====

globals{daemon} : 60

globals{debug} : 1

globals{fw-skip} : IP Address

globals{if} : web

globals{login} : kyrsjo

globals{password} : *******

globals{pid} : /var/run/ddclient.pid

globals{protocol} : dyndns2

globals{quiet} : 0

globals{server} : members.dyndns.org

globals{syslog} : 1

globals{use} : if

globals{verbose} : 1

globals{web} : checkip.dyndns.org/

=== config ====

config{kyrsjo.homelinux.org}{atime} : 0

config{kyrsjo.homelinux.org}{backupmx} : 0

config{kyrsjo.homelinux.org}{cacheable} : ARRAY(0x8266384)

config{kyrsjo.homelinux.org}{custom} : 0

config{kyrsjo.homelinux.org}{host} : kyrsjo.homelinux.org

config{kyrsjo.homelinux.org}{ip} : <undefined>

config{kyrsjo.homelinux.org}{login} : kyrsjo

config{kyrsjo.homelinux.org}{max-interval} : 1296000

config{kyrsjo.homelinux.org}{min-error-interval} : 300

config{kyrsjo.homelinux.org}{min-interval} : 30

config{kyrsjo.homelinux.org}{mtime} : 0

config{kyrsjo.homelinux.org}{mx} :

config{kyrsjo.homelinux.org}{password} : ******

config{kyrsjo.homelinux.org}{protocol} : dyndns2

config{kyrsjo.homelinux.org}{server} : members.dyndns.org

config{kyrsjo.homelinux.org}{static} : 0

config{kyrsjo.homelinux.org}{status} :

config{kyrsjo.homelinux.org}{warned-min-error-interval} : 0

config{kyrsjo.homelinux.org}{warned-min-interval} : 0

config{kyrsjo.homelinux.org}{wildcard} : 0

config{kyrsjo.homelinux.org}{wtime} : 30

=== cache ====

DEBUG: get_ip: using if, web reports <undefined>

WARNING: unable to determine IP address

[code]

 

synes det var veldig mye "undefined" her...

 

Prøvde å endre i config til:

use=if, if=web, web=checkip.dyndns.org/, fw-skip='Current IP Address:'

 

Men samme resultat...

 

*GRR*

Endret av kyrsjo
Lenke til kommentar
Videoannonse
Annonse

Menmen. Uansett, jeg må bruke web-metoden. Tror ikke jeg gidder styre mer med ddclient - går for en heimspikra script løsning i stedet...

 


#!/bin/bash
nyip=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed 's#addr:##g'`
wget -a /var/log/dyndnslog "http://mittbrukernavn:[email protected]/nic/update?system=dyndns&hostname=mitthostname" -O /var/log/dyndnsres
cat /var/log/dyndnsres>>/var/log/dyndnslog

 

Noen postet denne for ikke så lenge siden. Burde gå ann å modde den litt :)

 

I alle fall kan jeg bruke http://checkip.dyndns.org/, noe som gir en en-linjers html-kode á la:

<html><head><title>Current IP Check</title></head><body>Current IP Address: 83.109.166.193</body></html>

[code]

 

er det noen som kan sed/awk som gidder hjelpe meg med å "extracte" ip-adressen sånn at det bare er å stappe den inn i en shell-variabel?

Lenke til kommentar

Bare en forhåpentligvis brukbar ide:

 

I debian (siden debconf nevnes, ser det ut som om det er den du bruker) er det et script /etc/dhclient-script som kjøres av dhcp-klienten når den oppdaterer ip-addressen, blant annet lager dette scriptet en ny /etc/resolv.conf vha

 

make_resolv_conf() {

echo search hhv3 >/etc/resolv.conf

echo nameserver 192.168.1.1 > /etc/resolv.conf

for nameserver in $new_domain_name_servers; do

echo nameserver $nameserver >>/etc/resolv.conf

done

return 0

}

 

(Linjen med 192.168.1.1 har jeg lagt inn for at den skal automatisk legge inn den locale dns'en) Burde jo være en smal sak å også kalle en ddns i denne sammenhengen. (Bruker ikke ddns selv (enda))

 

M.

 

Edit, fant ut hvorfor jeg trodde at kyrsjo brukte debian

Endret av mysjkin
Lenke til kommentar

På denne serveren kjøres debian ja. På en venn av meg sin med samme problem, fedora. Med fast ip, bak NAT. NAT. NAT. GRR!!!

 

Derfor jeg tenkte at det enkleste ville være å modde det scriptet der, og det ser ikke veeeldig vanskelig ut (forutsatt at wget-linja virker). Men jeg trenger hjelp til å røske ut ip-adressen fra den html-koden...

Lenke til kommentar

Bare for å bevise at jeg mener alvor:

 

Kyrres modifiserte super-kode (takk for lån av alle viktige deler), versjon 0.1

#!/bin/bash
#Initiere loggen:
echo "Running:" 'date' >> /var/log/dyndnslog
#Ikke denne nei...
#nyip=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed 's#addr:##g'`
#finne IP:
wget -a /var/log/dyndnslog checkip.dyndns.org -O /tmp/dyndns
nyip=cat /tmp/dyndns | blah blah | røsk ut ip-nummer
#Logge...
echo "Found IP:"  $nyip >> /var/log/dyndnslog
#Her skal det altså være en if-setning som sjekker om denne ip'n er ny, og bare oppdaterer i dette tilfellet.... (abuse)
#oppdaterer...
wget -a /var/log/dyndnslog "http://mittbrukernavn:[email protected]/nic/update?system=dyndns&hostname=mitthostname" -O /var/log/dyndnsres
#Why?
#cat /var/log/dyndnsres>>/var/log/dyndnslog

Lenke til kommentar

Mekka litt på configen, fjernet et mellomrom... Fremdeles ca. samme resultat, men det virker som om den finner den noen ganger.... *URK!*

 

server:/etc# ddclient --daemon=0
WARNING:  unable to determine IP address
server:/etc# ddclient --daemon=0 --query
use=if, if=eth0 address is 192.168.1.199
use=if, if=lo address is 127.0.0.1
use=web, web=dyndns address is 83.109.177.52
server:/etc#

 

WTF?!?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...