All Projects → andyjsmith → Vultr-Dynamic-DNS

andyjsmith / Vultr-Dynamic-DNS

Licence: GPL-3.0 license
Dynamically update IP addresses in Vultr DNS without services like No-IP

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Vultr-Dynamic-DNS

route53-dynamic-dns
Update AWS Route53 hosted zone with current public IP address. Alternative to Dynamic DNS services such as Dyn, No-IP, etc
Stars: ✭ 29 (+61.11%)
Mutual labels:  ddns, dynamic-dns
DnsTube
Access your computer from anywhere. DnsTube is a Windows .NET dynamic DNS client for Cloudflare.
Stars: ✭ 137 (+661.11%)
Mutual labels:  ddns, dynamic-dns
docker-ddns-cloudflare
Cloudflare DDNS Script
Stars: ✭ 21 (+16.67%)
Mutual labels:  ddns, dynamic-dns
dynamic-dns-netcup-api
A simple dynamic DNS client written in PHP for use with the netcup DNS API.
Stars: ✭ 127 (+605.56%)
Mutual labels:  ddns, dynamic-dns
CloudXNS-DDNS-with-PowerShell
The CloudXNS DDNS with PowerShell
Stars: ✭ 46 (+155.56%)
Mutual labels:  ddns
cloudflareddns
DDNS with Cloudflare
Stars: ✭ 33 (+83.33%)
Mutual labels:  ddns
Dnspython
a powerful DNS toolkit for python
Stars: ✭ 1,838 (+10111.11%)
Mutual labels:  ddns
rejig
Turn your VPS into an attack box
Stars: ✭ 33 (+83.33%)
Mutual labels:  vultr
packer-plugin-vultr
Packer Builder plugin for Vultr snapshots
Stars: ✭ 42 (+133.33%)
Mutual labels:  vultr
tinydnsdyn
[mirror] Dynamic DNS for djbdns or tinydns
Stars: ✭ 18 (+0%)
Mutual labels:  dynamic-dns
vultrcli
CLI tool to manage Vultr VPS clould
Stars: ✭ 25 (+38.89%)
Mutual labels:  vultr
ddns
No description or website provided.
Stars: ✭ 26 (+44.44%)
Mutual labels:  ddns
DynamicDNS
基于DNSPod构建的DDNS软件
Stars: ✭ 21 (+16.67%)
Mutual labels:  dynamic-dns
Ddns
🚩 自动更新域名解析到本机IP(支持dnspod,阿里DNS,CloudFlare,华为云,DNSCOM...)
Stars: ✭ 2,582 (+14244.44%)
Mutual labels:  ddns
vultr.rb
Ruby bindings for VULTR API v2.
Stars: ✭ 47 (+161.11%)
Mutual labels:  vultr
BitSrunLoginGo
深澜校园网登录程序 Go 语言版,适用于路由器、windows、linux 等。提供对 OpenWrt、Docker、Go Module 的支持
Stars: ✭ 112 (+522.22%)
Mutual labels:  ddns
dynamic-cloud-dns
Dynamic DNS with Google Cloud Functions
Stars: ✭ 30 (+66.67%)
Mutual labels:  dynamic-dns
cloudflare-ddns
A script to update your Cloudflare DNS records at a glance.
Stars: ✭ 152 (+744.44%)
Mutual labels:  ddns
digitalocean-dyndns
Dynamic DNS using DigitalOcean's DNS Services
Stars: ✭ 64 (+255.56%)
Mutual labels:  dynamic-dns
docker-machine-driver-vultr
Vultr Driver Plugin for Docker Machine
Stars: ✭ 20 (+11.11%)
Mutual labels:  vultr

Vultr Dynamic DNS

Dynamically update IP addresses in Vultr DNS without services like No-IP

If you want to map an A record in Vultr's DNS to a local machine but you aren't paying your ISP for a static IP, use this service to automatically update an IP change in Vultr. Since Vultr does not provide a Dynamic DNS service, programs like ddclient cannot be used, so this is an alternative. It uses Vultr's API and simple GET and POST requests, and uses an API key opposed to your username and password.

Basic Setup

  • First, set up your domain to use Vultr's DNS service if you haven't already. You will need access to your domain registrar to point your domain to Vultr's nameservers. After this is done you can set up your DNS records in Vultr, so add all of the necessary A, CNAME, TXT, MX, etc. records you need and then continue with this guide.
  • Once you have set up Vultr DNS, go to Vultr DNS and click on your domain name in this list. Note which records you would like to be dynamically updated. Only A records are supported by this utility. If you have multiple A records that you want updated to the same IP address, change them to CNAMEs and point them to one A record. This will simplify things for you in the long run and is considered the proper way to configure DNS.
  • Install Python 3
  • Clone this repository: git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
  • Fill out config.json. Copy sample from config.json.example, you will need to generate an API key in Vultr. It is important to click "Allow All IPv4". See See Configuration for more info.
  • Test the script and configuration: python3 ddns.py. If there aren't any errors, the setup is complete.

Known Issues

  • If you get an error stating your IP is not authorized, you must go to your Vultr account, click on your name in the top right and click API. You can then go to Access Control and click "Allow All IPv4" and/or "Allow All IPv6", or manually specify your IP. This step is important as IPv6 may not be enabled by default but some computers will communicate on IPv6 by default.

Automation

After completing the basic setup, it is important to set up a recurring task as the script does not do this by default.

Linux & Mac OSX

  • Find the full path of the ddns.py file using realpath ddns.py
  • Run crontab -e
  • Add the following line to the end of the file, adding in the real path to the ddns.py file: */30 * * * * cd [full path to ddns.py] && python3 ddns.py > /dev/null 2>&1. This will run the script every 30 minutes and redirect all of its output to /dev/null.
  • Save and quit out of the text editor. The crontab file will automatically be install and your IP will now automatically be updated.

Windows

Create a task in Task Scheduler to run every 30 minutes. Follow the Microsoft guide for basic task creation.

  • Open task scheduler and click "Create Task..."
  • Give it a name and create a new trigger
  • Click "Daily" and under Advanced Settings click to repeat the task every 30 minutes and change "for a duration of" to "Indefinitely"
  • Add a new action to start a program and browse to your python executable. Add the ddns.py script as an argument.

Configuration

{
	// Generate an API key under the Account->API page.
	// Under "Access Control", you need to click "Allow All IPv4".
	// This is required because if you had a static IP you wanted to allow,
	// you would not be using this DDNS service in the first place.
	"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",

	// The domain you want to use listed under the DNS tab in Vultr.
	"domain": "example.com",

	// Add the name(s) of the dynamic record(s) you want to update.
	// Vultr only uses the subdomain for this list.
	// For example, abc.example.com would be "abc".
	// If you want to use the base domain, use an empty string "".
	"dynamic_records": [
		"",
		"test",
		"123"
	]
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].