Skip to content

ethanliew/ddns-updater-aws

 
 

Repository files navigation

DDNS updater for AWS

Build Status Coverage Status

This script keeps a domain name pointing server.yourdomain.com to your ip address using Amazon's route53 api. It can be useful something like a home server or a raspberry pi, or anything that could execute python.

This script could be a replacement for no-ip, dyn or duck dns services if executed often.

How it works

  1. A dns query is made to get your external ip address.
  2. A rest api call is made to update your domain to point on your ip address.

The Amazon route53 API provides an api to change the A record on a domain (on which ip the domain points to). This script uses this api and push it the ip address it discovered on a subdomain.

Why

I have a server at home that i use on a weekly basis and I wand it to be always accessible on internet using my own domain name. My ISP Provider charges for fixed ip address and my ip changes often. I was using will warren bash script, but I wanted to have something more reliable. Also I wanted to have logs that showed what the script did, and when error happened. Those are the reason why I invested time to create this project.

Setup

Please follow these instruction from step 2-4 to setup your amazon server. The recovered values should be added to your ddns_aws_updater.ini

Usage

  1. Copy and edit the ddns_updater_aws/ddns_updater_aws.default.ini to ddns_updater_aws/ddns_updater_aws.ini
  2. Install the requirements python setup.py install
  3. Execute the software (python style python -m ddns_updater_aws, bash style ddns_updater_aws/__main__.py)

The script only updates once the IP, it's intended usage is to launch the script at an interval by something like a cron job. see Advanced usage

Tests

only tested on ubuntu 12.04, should work on other platforms however.

tox -r

Limitations

  • This script does not save your current IP, in other words, EVERYTIME a call is made to this script it post the new IP to Amazon route53.
  • This script currently does not support IPV6 (AAAA record). See section below.
  • Additionnal requirements for using specific interface, see Advanced usage for details

Contributions

Opening a pull-request or an issue is encouraged !

About

This script keeps a domain name pointing *server.yourdomain.com* to your ip address using Amazon's route53 api

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%