Я зарегистрировал доменное имя - как я могу указать его на мой узел DynDNS?

Как я могу разместить веб-сайт с моей домашней машины? У меня есть адрес DynDNS, так что даже если мой внешний IP изменяется, машина доступна.

Допустим, например, машина доступна в example.dyndns-home.com (это бесплатный сервис от DynDNS). Я зарегистрировал доменное имя для своего сайта с GoDaddy. Предположим, что доменное имя example.com

Прямо сейчас, я переслал порт 80, чтобы я мог ввести example.dyndns-home.com из любого места, и я могу видеть, что я размещал в мой домашний ящик.

Как я могу сделать так, чтобы при вводе www.example.com, я вижу то же самое? Я хочу посмотреть, что я размещаю на своей домашней машине в Интернете через example.com.

5 голосов | спросил hari 8 MarpmThu, 08 Mar 2012 22:59:19 +04002012-03-08T22:59:19+04:0010 2012, 22:59:19

4 ответа


9

Добавьте запись cname в запись DNS для вашего домена, указав из www.example.com на example.dyndns-home.com. Я только использовал один регистратор домена (не Godaddy), но у них есть опрятный веб-интерфейс, где вы можете обновить запись DNS.

Исходный пример:

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

Рабочий пример предоставлен , по крайней мере, с помощью серверов имен Google.

Изменить (дважды):

Если вы хотите, чтобы http://example.com тоже работал, вы должны добавить вторую запись из example.com до example.dyndns-home.com. Это может быть сделано путем пересылки @.example.com, я не знаю, стандартно это или нет.

ответил Eroen 8 MarpmThu, 08 Mar 2012 23:45:59 +04002012-03-08T23:45:59+04:0011 2012, 23:45:59
1

Наконец, я знаю, в чем проблема? Для меня порт ISP 80 и 8080 Поэтому я настраиваю свой сайт для работы с другим портом. Пример:

http://exapmle.dyndnsorg:5060

1- Я регистрируюсь в течение 14 дней испытаний в Dyn Standard Dns

2- Я настраиваю свой домен с помощью DNS из dyndns

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

3- Я создаю новый WebHop для пересылки моего домена в мой домен DynDns Для примера

Host-name  : example.com    

Service    : WebHop 

Details    : http://example.dyndns.org:5060 
ответил AbouHaRga 1 Jpm1000000pmWed, 01 Jan 2014 17:19:09 +040014 2014, 17:19:09
1

Предполагая, что у вас есть сервер под управлением Linux, и вы хотите обновить запись DNS A с IP-адресом вашего домашнего сервера в DNS, размещенном GoDaddy, вы можете сделать следующее на домашнем сервере. Обратите внимание, что это мое нарушение вашего лицензионного соглашения. Обязательно соблюдайте правила!

  1. Установите Python2.7 (скорее всего, он уже установлен).

  2. Поместите следующий файл в /config/scripts/godaddy_ddns.py. Это часть, которая выполняет фактическую работу по обновлению godaddy, используя библиотеку pygodaddy. Он обновит все домены, связанные с вашей учетной записью godaddy. Он установит запись A для подстановки поддомена «@». Вы можете отредактировать это, если хотите указать альтернативные поддомены. Вы также должны заменить '@[email protected]' своим именем пользователя godaddy и @[email protected] "с вашим паролем godaddy.

    #!/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

  4. Выполнить sudo chmod u+x /config/scripts/godaddy_ddns.py
  5. Поместите следующий файл в /config/scripts/godaddy_ddns.sh. Это скрипт-оболочка, который устанавливает виртуальный диск для изоляции библиотек, используемых скриптом python. Затем он вызывает вышеупомянутый скрипт python.

    #!/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

  7. Выполнить sudo chmod u+x /config/scripts/godaddy_ddns.sh
  8. Поместите следующий файл в /etc/cron.hourly/run_godaddy_ddns (без расширения файла). Это вызовет скрипт godaddy_ddns.sh каждый час.

    #!/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

  10. Выполнить sudo chmod u+x /etc/cron.hourly/run_godaddy_ddns
  11. Журналы будут записаны в godaddy.log в /var/local/godaddy_ddns. Этот каталог можно изменить, отредактировав скрипт run_godaddy_ddns.
  12. Поместите следующий файл в /etc/logrotate.d/godaddy_ddns (без расширения файла). Это гарантирует, что ваш файл журнала не заполнит ваш диск, вращая файл журнала. Если вы изменили местоположение ведения журнала, вам нужно будет отредактировать местоположение файла журнала.

    /var/local/godaddy_ddns/godaddy.log {
        weekly
        missingok
        rotate 12
        compress
        delaycompress
        notifempty
        copytruncate 
        maxage 365                                                       
    }                                                                    
    
  13. Вам также нужно добавить запись CNAME в диспетчере домена GoDaddy, чтобы указать 'www' to '@ '

Примечание по безопасности. Вероятно, вы должны отредактировать скрипт run_godaddy_ddns и su для пользователя, отличного от root, так что сценарий запускается с более ограниченными правами.

ответил jsears 4 MaramWed, 04 Mar 2015 02:55:08 +03002015-03-04T02:55:08+03:0002 2015, 02:55:08
1

Зарегистрируйте /переместите свой домен в регистратор, который поддерживает функции динамического DNS. Namecheap.com является одним из таких регистраторов. Инструкции в своей базе знаний . Обратите внимание, что вы можете включить динамический DNS для субдомена, создав запись поддомена типа «A + Dynamic DNS».

Конфигурация по умолчанию для пакета ddclient (по крайней мере, в Arch Linux) содержит настройки для этого протокола регистратора:

##
## 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 7 Jam1000000amThu, 07 Jan 2016 07:40:27 +030016 2016, 07:40:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132