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

8

Wie kann ich eine Website von meinem Heimcomputer aus hosten? Ich habe eine DynDNS-Adresse, damit auf das Gerät zugegriffen werden kann, auch wenn sich meine externe IP ändert.

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

Im Moment habe ich Port 80 weitergeleitet, damit ich example.dyndns-home.comvon überall aus zugreifen und sehen kann, was ich in meiner Homebox gehostet habe.

Wie kann ich es so machen, dass ich beim Betreten www.example.comdasselbe sehe? Ich möchte sehen, was ich auf meinem Heimcomputer im Internet über hoste example.com.

Hari
quelle
Ihr Domain-Registrar sollte die Möglichkeit haben, die Domain auf etwas anderes verweisen zu lassen, in diesem Fall auf Ihre DynDNS-Adresse.
Slhck
Meinst du weiterleiten? Wenn also jemand www.example.com sagt, wird er zu example.dyndns-home.com weitergeleitet?
Persönlich mag ich es nicht, unnötigen Hopfen hinzuzufügen, wenn dies vermieden werden kann. Sie sollten in der Lage sein, Ihre Domain auf die IP-Adresse Ihres Heimrouters zu verweisen. Wenn Ihr ISP eine statische IP-Adresse bereitstellt, werden Ihre Probleme dadurch gelöst. Wenn nicht, können Sie Ihren ISP jederzeit nach der Lease-Zeit der IP-Adressen fragen und dann fragen, ob diese über IP-Adressen verfügen. Persönlich habe ich Servicepakete, Modems und Router ausgetauscht und meine IP-Adresse nie verloren, da es sich um eine Sticky Dynamic IP handelt.
Kobaltz

Antworten:

13

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

Rohes Beispiel:

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

Es wird ein Arbeitsbeispiel bereitgestellt , zumindest unter Verwendung der Nameserver von Google.

Bearbeiten (zweimal):

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

Eroen
quelle
Danke Eroen. Ich möchte nicht, dass jemand example.dyndns-home.com jemals in seiner Adressleiste oder anderswo sieht. ist das möglich?
3
Sicher, solange der Webserver behauptet zu sein www.example.comund nicht umleitet example.dyndns-home.com.
1
Vielen Dank! Ich habe gerade diese Änderung vorgenommen. Lass es sich ausbreiten! Ich werde zurückmelden.
1
Ich weiß nicht, ob Sie im DNS-Eintrag oder auf Ihrem Computer meinen, aber wenn es für den ersten Fall funktioniert, werden Sie wahrscheinlich etwas kaputt machen, wenn Sie es ändern. Im zweiten Fall möchten Sie wahrscheinlich die Server von Godaddy verwenden, während Sie Änderungen vornehmen, damit Sie vor dem Testen nicht auf die Aktualisierung der Caches warten müssen.
1
Stellen Sie sich die Nameserver-Einträge für Ihre Domain als das Objekt vor, das anzeigt, wo sich Ihre DNS-Einträge befinden. Wenn Sie Ihre Nameserver ändern, tun die Datensätze auf godaddy nichts. Sie müssen diese Datensätze also an dem Ort eingeben, auf den Sie den Nameserver festgelegt haben.
1

Endlich weiß ich Was ist das Problem? Für mich Mein ISP blockiert Port 80 und 8080 Also konfiguriere ich Meine Website so, dass sie mit einem anderen Port funktioniert. 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 meine Domain beispielsweise an meine DynDns-Domain weiterzuleiten

Host-name  : example.com    

Service    : WebHop 

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

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

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

  2. Platzieren Sie die folgende Datei unter /config/scripts/godaddy_ddns.py. Es ist der Teil, der die eigentliche Arbeit der Aktualisierung von Godaddy mithilfe 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 Subdomain '@' festgelegt. Sie können dies bearbeiten, wenn Sie alternative Subdomänen angeben möchten. Sie müssen auch ' @USERNAME@' durch Ihren Godaddy-Benutzernamen und ' @PASSWORD@' 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="@USERNAME@"                        
    P="@PASSWORD@"                    
    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. Lauf sudo chown root /config/scripts/godaddy_ddns.py

  4. Lauf sudo chmod u+x /config/scripts/godaddy_ddns.py
  5. Platzieren Sie die folgende Datei unter /config/scripts/godaddy_ddns.sh. Dies ist ein Wrapper-Skript, das eine virtuelle Umgebung einrichtet, um die vom Python-Skript verwendeten Bibliotheken zu isolieren. Anschließend wird das obige Python-Skript aufgerufen.

    #!/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. Lauf sudo chown root /config/scripts/godaddy_ddns.sh

  7. Lauf sudo chmod u+x /config/scripts/godaddy_ddns.sh
  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. Lauf sudo chown root /etc/cron.hourly/run_godaddy_ddns

  10. Lauf sudo chmod u+x /etc/cron.hourly/run_godaddy_ddns
  11. Protokolle werden godaddy.login das /var/local/godaddy_ddnsVerzeichnis 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 Protokollspeicherort 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-Domänenmanager hinzufügen, um auf ' www' bis ' @' zu zeigen.

Sicherheitshinweis: Sie sollten das run_godaddy_ddnsSkript wahrscheinlich sufür einen anderen Benutzer als root bearbeiten , damit das Skript mit eingeschränkteren Berechtigungen ausgeführt wird.

jsears
quelle
OP hat lediglich darum gebeten, dass seine Domain jetzt auf die Domain verweist, die er bei dyndns registriert hat. Dazu schlagen Sie vor, Python zu installieren und fast 100 oder mehr Codezeilen?
Matthias Wolf
1

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

Die Standardkonfiguration für das ddclientPaket (zumindest 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
alexei
quelle