it-swarm.com.de

Ich habe einen Domainnamen registriert - wie kann ich ihn auf meinen DynDNS-Host verweisen?

Wie kann ich eine Website von meinem Heimcomputer aus hosten? Ich habe eine DynDNS-Adresse, sodass das Gerät auch dann erreichbar ist, wenn sich meine externe IP ändert.

Nehmen wir zum Beispiel an, die Maschine ist unter example.dyndns-home.com erreichbar (dies ist ein kostenloser Dienst von DynDNS). Ich habe einen Domainnamen für meine Website von GoDaddy registriert. Nehmen wir an, der Domainname ist example.com

Im Moment habe ich Port 80 weitergeleitet, damit ich von überall example.dyndns-home.com eingeben und alles sehen kann, was ich auf meiner Homebox gehostet habe.

Wie kann ich es so machen, dass ich bei der Eingabe von www.example.com dasselbe sehe? Ich möchte sehen, was ich auf meinem Heimcomputer über example.com im Internet hoste.

7
hari

Fügen Sie dem DNS-Eintrag für Ihre Domain einen cname-Eintrag hinzu, der von www.example.com auf example.dyndns-home.com verweist. Ich habe immer nur einen Domain-Registrar verwendet (nicht Godaddy), aber sie haben eine ordentliche Weboberfläche, über die Sie den DNS-Eintrag aktualisieren können.

Rohes Beispiel:

www.example.com.
43200
IN
CNAME
example.dyndns-home.com.

Arbeitsbeispiel wird zur Verfügung gestellt , zumindest unter Verwendung von Google-Nameservern.

Bearbeiten (zweimal):

Wenn Sie möchten, dass http://example.com auch funktioniert, müssen Sie einen zweiten Eintrag von example.com bis example.dyndns-home.com hinzufügen. Dies kann durch Weiterleiten von @.example.com geschehen. Ich weiß nicht, ob dies Standard ist oder nicht.

11
Eroen

Endlich weiß ich, wo das Problem liegt. Für mich Mein ISP blockiert Port 80 und 8080 Also konfiguriere ich Meine Website so, dass sie mit einem anderen Port funktioniert Zum Beispiel:

http://exapmle.dyndnsorg:5060

1- Ich melde mich für 14 Testtage in Dyn Standard DNS an

2- Ich konfiguriere meine Domain mit dem DNS von dyndns

xxxx.dns.dyn.com
xxxx.dns.dyn.com
xxxx.dns.dyn.com
xxxx.dns.dyn.com

3- Ich erstelle einen neuen WebHop, um beispielsweise meine Domain an meine DynDns-Domain weiterzuleiten

Host-name  : example.com    

Service    : WebHop 

Details    : http://example.dyndns.org:5060 
1
AbouHaRga

Angenommen, Sie haben einen Server unter Linux und möchten einen DNS-A-Eintrag mit der IP-Adresse Ihres Heimservers auf dem von GoDaddy gehosteten DNS aktualisieren, können Sie auf dem Heimserver Folgendes ausführen. Beachten Sie, dass dies gegen Ihren EULA verstößt. Stellen Sie sicher, dass Sie die Regeln befolgen!

  1. Installieren Sie Python2.7 (wahrscheinlich ist es bereits installiert).

  2. Legen Sie die folgende Datei unter /config/scripts/godaddy_ddns.py ab. Es ist der Teil, der die eigentliche Arbeit der Aktualisierung von Godaddy mit der Pygodaddy-Bibliothek erledigt. Es werden alle Domains aktualisiert, die Ihrem Godaddy-Konto zugeordnet sind. Es wird ein A-Datensatz für den Platzhalter '@' der Subdomäne festgelegt. Sie können dies bearbeiten, wenn Sie alternative Unterdomänen angeben möchten. Sie müssen außerdem "@[email protected]" durch Ihren Godaddy-Benutzernamen und "@[email protected]" durch Ihr Godaddy-Passwort ersetzen.

    #!/usr/bin/env python
    
    import logging
    import pif
    import pygodaddy
    
    # Original Source:
    # https://saschpe.wordpress.com/2013/11/12/godaddy-dyndns-for-the-poor/
    # https://github.com/observerss/pygodaddy
    # 
    # Modified by Jeremy Sears (https://stackoverflow.com/users/1240482/jsears)
    
    
    logging.basicConfig(filename='godaddy.log', format='%(asctime)s %(message)s', level=logging.INFO)
    # the "requests" library logs noisily, so turn that off                                                       
    logging.getLogger("requests").setLevel(logging.WARNING)
    
    logging.debug("DEBUG:   Running godaddy_ddns.py");
    
    U="@[email protected]"                        
    P="@[email protected]"                    
    client = pygodaddy.GoDaddyClient()                       
    success = client.login(U,P)                              
    if success:                                                                                      
            logging.debug("DEBUG:   Successfully logged in.")                                        
    else:                                                                                            
            logging.error("ERROR:   Failed to log in to godaddy.com with username: '{0}'.".format(U))
    
    for domain in client.find_domains():                                            
            logging.debug("DEBUG:   Looking up DNS Records for {0}.".format(domain))           
            dns_records = client.find_dns_records(domain)                                      
            public_ip = pif.get_public_ip()                                                    
            logging.debug("DEBUG:   Domain '{0}' DNS records: {1}".format(domain, dns_records))
            logging.debug("DEBUG:   Current Public IP '{0}'.".format(public_ip))
            if len(dns_records) == 0:                                                                  
                    logging.debug("DEBUG:   No existing DNS records found.")                           
            else:                                                                                      
                    logging.debug("DEBUG:   Existing IP in DNS is '{0}'.".format(dns_records[0].value))
    
            if len(dns_records) == 0 or public_ip != dns_records[0].value:                      
                    logging.debug("DEBUG:   Updating A record for domain '{0}'.".format(domain))                                  
                    success = client.update_dns_record("@."+domain, public_ip)                                                    
                    if success:                                                                                                   
                            logging.info("INFO:     Domain '{0}': Successfully set public IP to '{1}'.".format(domain, public_ip))
                    else:                                                                                                                                  
                            logging.error("ERROR:   Domain '{0}': Unable to update public IP to '{1}'.".format(domain, public_ip))                         
            else:                                                                                                                                          
                    logging.info("INFO:     Public IP A record DNS record for domain '{0}' is up to date, and does not need to be updated.".format(domain))
    
  3. Sudo chown root /config/scripts/godaddy_ddns.py ausführen

  4. Sudo chmod u+x /config/scripts/godaddy_ddns.py ausführen
  5. Legen Sie die folgende Datei unter /config/scripts/godaddy_ddns.sh ab. Dies ist ein Wrapper-Skript, das eine virtuelle Umgebung einrichtet, um die vom Skript python verwendeten Bibliotheken zu isolieren. Es ruft dann das obige Skript python auf.

    #!/bin/sh
    
    # Original Source:
    # https://saschpe.wordpress.com/2013/11/12/godaddy-dyndns-for-the-poor/
    # https://github.com/observerss/pygodaddy
    # 
    # Modified by Jeremy Sears (https://stackoverflow.com/users/1240482/jsears)
    
    OLD_PWD=$PWD
    ROOT_DIR=$(dirname $0)
    if [ -n "$1" ] ; then
        WORKING_DIR=$1
    else
        WORKING_DIR=$ROOT_DIR
    fi
    mkdir -p $WORKING_DIR
    cd $WORKING_DIR
    if [ ! -d .venv27 ] ; then
        curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.tar.gz
        tar xvfz virtualenv-1.9.tar.gz
        python virtualenv-1.9/virtualenv.py .venv27
    fi
    source .venv27/bin/activate
    pip install -q --upgrade pif pygodaddy
    $ROOT_DIR/godaddy_ddns.py
    deactivate
    cd $OLD_PWD
    
  6. Sudo chown root /config/scripts/godaddy_ddns.sh ausführen

  7. Sudo chmod u+x /config/scripts/godaddy_ddns.sh ausführen
  8. Platzieren Sie die folgende Datei unter /etc/cron.hourly/run_godaddy_ddns (keine Dateierweiterung). Dadurch wird das Skript godaddy_ddns.sh jede Stunde aufgerufen.

    #!/bin/sh
    
    WORKING_DIR=/var/local/godaddy_ddns
    exec /config/scripts/godaddy_ddns.sh $WORKING_DIR     
    exit 0                                                
    
  9. Sudo chown root /etc/cron.hourly/run_godaddy_ddns ausführen

  10. Sudo chmod u+x /etc/cron.hourly/run_godaddy_ddns ausführen
  11. Protokolle werden in godaddy.log im Verzeichnis /var/local/godaddy_ddns geschrieben. Dieses Verzeichnis kann durch Bearbeiten des Skripts run_godaddy_ddns geändert werden.
  12. Platzieren Sie die folgende Datei unter /etc/logrotate.d/godaddy_ddns (keine Dateierweiterung). Dadurch wird sichergestellt, dass Ihre Protokolldatei Ihre Festplatte nicht ausfüllt, indem Sie die Protokolldatei drehen. Wenn Sie den Speicherort der Protokolldatei geändert haben, müssen Sie den Speicherort der Protokolldatei bearbeiten.

    /var/local/godaddy_ddns/godaddy.log {
        weekly
        missingok
        rotate 12
        compress
        delaycompress
        notifempty
        copytruncate 
        maxage 365                                                       
    }                                                                    
    
  13. Sie müssen auch einen CNAME-Eintrag im GoDaddy-Domain-Manager hinzufügen, um "www" auf "@" zu verweisen.

Sicherheitshinweis: Wahrscheinlich sollten Sie das run_godaddy_ddns -Skript und su für einen anderen Benutzer als root bearbeiten, damit das Skript mit eingeschränkteren Berechtigungen ausgeführt wird.

1
jsears

Registrieren/verschieben Sie Ihre Domain zu einem Registrar, der die Dynamic DNS-Funktionalität unterstützt. Namecheap.com ist ein solcher Registrar. Anweisungen sind in ihrer Wissensdatenbank . Beachten Sie, dass Sie dynamisches DNS für eine Unterdomäne aktivieren können, indem Sie einen Unterdomäneneintrag vom Typ 'A + dynamisches DNS' erstellen.

Die Standardkonfiguration für das Paket ddclient (mindestens unter Arch Linux) enthält die Einstellungen für das Protokoll dieses Registrars:

##
## NameCheap (namecheap.com)
##
protocol=namecheap,                     \
server=dynamicdns.park-your-domain.com, \
login=YOUR-TOP-LEVEL-DOMAIN,            \
password=HEX-PASSWORD-FROM-DASHBOARD    \
YOUR-DYNAMIC-SUBDOMAIN.YOUR-TOP-LEVEL-DOMAIN
1
alexei