Tôi đã đăng ký một tên miền - làm cách nào tôi có thể trỏ nó đến máy chủ DynDNS của mình?


8

Làm thế nào tôi có thể lưu trữ một trang web từ máy chủ của tôi? Tôi có một địa chỉ DynDNS để ngay cả khi IP bên ngoài của tôi thay đổi, máy vẫn có thể truy cập được.

Hãy nói, ví dụ, máy có thể truy cập tại example.dyndns-home.com(đây là dịch vụ miễn phí từ DynDNS). Tôi đã đăng ký một tên miền cho trang web của tôi từ GoDaddy. Hãy nói rằng tên miền làexample.com

Ngay bây giờ, tôi đã chuyển tiếp cổng 80 để tôi có thể nhập example.dyndns-home.comtừ bất cứ đâu và tôi có thể thấy bất cứ điều gì tôi đã lưu trữ tại nhà của mình.

Làm thế nào tôi có thể làm cho nó để khi tôi vào www.example.com, tôi thấy điều tương tự? Tôi muốn xem những gì tôi lưu trữ trên máy chủ của tôi trên internet thông qua example.com.


Cần có một tùy chọn từ nhà đăng ký tên miền của bạn để cho phép tên miền trỏ đến một cái gì đó khác, trong trường hợp này là địa chỉ DynDNS của bạn.
slhck

Bạn có nghĩa là chuyển tiếp? vì vậy khi ai đó nói www.example.com, họ được đưa đến example.dyndns-home.com?

Cá nhân, tôi không thích thêm các bước nhảy không cần thiết nếu có thể tránh được. Bạn sẽ có thể trỏ tên miền của bạn đến địa chỉ IP của bộ định tuyến gia đình của bạn. Nếu ISP của bạn cung cấp địa chỉ IP tĩnh thì điều này sẽ giải quyết vấn đề của bạn. Nếu không, bạn luôn có thể hỏi ISP của bạn thời gian thuê của các địa chỉ IP là gì và sau đó hỏi xem họ có địa chỉ IP dính không. Cá nhân, tôi đã trao đổi các gói dịch vụ, modem và bộ định tuyến và không bao giờ mất địa chỉ IP của mình vì đó là một IP động dính.
kobaltz

Câu trả lời:


13

Thêm bản ghi cname vào bản ghi DNS cho tên miền của bạn, trỏ từ www.example.comđến example.dyndns-home.com. Tôi chỉ từng sử dụng một công ty đăng ký tên miền (không phải Godaddy), nhưng họ có giao diện web gọn gàng nơi bạn có thể cập nhật bản ghi DNS.

Ví dụ thô:

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

Ví dụ hoạt động được cung cấp , ít nhất là sử dụng máy chủ tên của Google.

Chỉnh sửa (hai lần):

Nếu bạn cũng muốn http://example.comlàm việc, bạn phải thêm một mục thứ hai từ example.comđến example.dyndns-home.com. Điều này có thể được thực hiện bằng cách chuyển tiếp @.example.com, tôi không biết đó có phải là tiêu chuẩn hay không.


Cảm ơn Eroen. Tôi không muốn bất cứ ai nhìn thấy example.dyndns-home.com trong thanh địa chỉ của họ hoặc bất cứ nơi nào khác. điều đó có thể không?

3
Chắc chắn, miễn là máy chủ web tuyên bố www.example.comvà không chuyển hướng đến example.dyndns-home.com.

1
Cảm ơn bạn! Tôi vừa mới thực hiện thay đổi này. Hãy để nó tuyên truyền! Tôi sẽ báo cáo lại.

1
Tôi không biết ý của bạn trong bản ghi DNS hoặc trên máy tính của bạn, nhưng nếu nó hoạt động cho trường hợp đầu tiên, bạn có thể sẽ phá vỡ thứ gì đó nếu bạn thay đổi nó. Trong trường hợp thứ hai, có lẽ bạn muốn sử dụng máy chủ của Godaddy trong khi bạn đang thay đổi công cụ, vì vậy bạn sẽ không phải chờ bộ nhớ cache được làm mới trước khi thử nghiệm.

1
Hãy nghĩ về các bản ghi máy chủ tên miền cho tên miền của bạn như là thứ quảng cáo nơi bản ghi DNS của bạn. Nếu bạn thay đổi máy chủ tên thì các bản ghi trên godaddy sẽ không làm gì cả, vì vậy bạn phải nhập các bản ghi đó tại vị trí bạn đặt máy chủ tên.

1

Cuối cùng tôi biết vấn đề là gì? Đối với tôi Khối ISP của tôi cổng 80 và 8080 Vì vậy, tôi định cấu hình Trang web của tôi hoạt động với một cổng khác Ví dụ:

http://exapmle.dyndnsorg:5060

1- Tôi đăng ký 14 ngày dùng thử trong Dyn Standard Dns

2- Tôi định cấu hình tên miền của mình với DNS từ dyndns

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

3- Tôi tạo một WebHop mới để chuyển tiếp Miền của tôi sang Miền DynDns của tôi Ví dụ

Host-name  : example.com    

Service    : WebHop 

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

1

Giả sử bạn có máy chủ chạy Linux và bạn đang tìm cách cập nhật bản ghi DNS A với IP của máy chủ gia đình của bạn trên DNS được lưu trữ bởi GoDaddy, bạn có thể thực hiện các thao tác sau trên máy chủ gia đình. Lưu ý rằng nó vi phạm EULA của bạn. Hãy chắc chắn rằng bạn làm theo các quy tắc!

  1. Cài đặt Python2.7 (có khả năng đã được cài đặt).

  2. Đặt các tập tin sau tại /config/scripts/godaddy_ddns.py. Đây là phần thực hiện công việc cập nhật godaddy bằng thư viện pygodaddy. Nó sẽ cập nhật tất cả các tên miền được liên kết với tài khoản godaddy của bạn. Nó sẽ thiết lập một bản ghi A cho ký tự đại diện tên miền phụ '@'. Bạn có thể chỉnh sửa điều này, nếu bạn muốn chỉ định tên miền phụ thay thế. Bạn cũng phải thay thế ' @USERNAME@' bằng tên người dùng godaddy của bạn và ' @PASSWORD@' bằng mật khẩu godaddy của bạn.

    #!/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. Chạy sudo chown root /config/scripts/godaddy_ddns.py

  4. Chạy sudo chmod u+x /config/scripts/godaddy_ddns.py
  5. Đặt các tập tin sau tại /config/scripts/godaddy_ddns.sh. Đây là một tập lệnh bao bọc thiết lập một virtualenv để cô lập các thư viện được sử dụng bởi tập lệnh python. Sau đó, nó gọi kịch bản python ở trên.

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

  7. Chạy sudo chmod u+x /config/scripts/godaddy_ddns.sh
  8. Đặt tệp sau tại /etc/cron.hourly/run_godaddy_ddns(không có phần mở rộng tệp). Điều này sẽ gọi kịch bản godaddy_ddns.sh mỗi giờ.

    #!/bin/sh
    
    WORKING_DIR=/var/local/godaddy_ddns
    exec /config/scripts/godaddy_ddns.sh $WORKING_DIR     
    exit 0                                                
    
  9. Chạy sudo chown root /etc/cron.hourly/run_godaddy_ddns

  10. Chạy sudo chmod u+x /etc/cron.hourly/run_godaddy_ddns
  11. Nhật ký sẽ được ghi godaddy.logvào /var/local/godaddy_ddnsthư mục. Thư mục này có thể được thay đổi bằng cách chỉnh sửa tập lệnh run_godaddy_ddns.
  12. Đặt tệp sau tại /etc/logrotate.d/godaddy_ddns(không có phần mở rộng tệp). Điều này sẽ đảm bảo rằng tệp nhật ký của bạn không lấp đầy đĩa của bạn, bằng cách xoay tệp nhật ký. Nếu bạn thay đổi vị trí ghi nhật ký, bạn sẽ cần chỉnh sửa vị trí tệp nhật ký.

    /var/local/godaddy_ddns/godaddy.log {
        weekly
        missingok
        rotate 12
        compress
        delaycompress
        notifempty
        copytruncate 
        maxage 365                                                       
    }                                                                    
    
  13. Bạn cũng sẽ cần thêm bản ghi CNAME trong trình quản lý miền GoDaddy để trỏ ' www' đến ' @'

Lưu ý bảo mật: Có lẽ bạn nên chỉnh sửa run_godaddy_ddnstập lệnh và sucho người dùng không phải là root, để tập lệnh được chạy với nhiều quyền hạn chế hơn.


OP chỉ đơn giản yêu cầu có tên miền bây giờ của mình trỏ đến tên miền mà anh ấy đã đăng ký với dyndns. Đối với điều này, bạn đề nghị cài đặt Python và gần 100 dòng mã trở lên?
Sói Matthias

1

Đăng ký / di chuyển tên miền của bạn đến một công ty đăng ký hỗ trợ chức năng DNS động. Namecheap.com là một trong những nhà đăng ký như vậy. Hướng dẫn là trong kiến ​​thức của họ . Lưu ý rằng bạn có thể bật DNS động cho tên miền phụ bằng cách tạo mục nhập tên miền phụ loại 'A + DNS động'.

Cấu hình mặc định cho ddclientgói (ít nhất là trên Arch Linux) bao gồm các cài đặt cho giao thức của nhà đăng ký này:

##
## 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.