Skip to content
Tcl script for updating NearlyFreeSpeech DNS entry
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

NearlyFreeSpeech.NET Dynamic DNS

This script will update the A DNS record for a subdomain at NearlyFreeSpeech.NET with the public IP address for the machine the script runs on. Run this script on a server in which the public IP address is dynamic and changes so your subdomain is always up to date.

How It Works

There are two steps to this script. First, it retrieves the configured IP address for the subdomain, the current public IP address of the server, and then compares the two. If the public IP address is different, it updates the A record of the subdomain with the new IP address.


Tcl and Tcllib are the only two requirements. They come pre-installed on most *nix operating systems.


Configurations are set straight within the dns.tcl file in the CONFIG section.


username  USERNAME
api_key   API_KEY
domain    DOMAIN
subdomain SUBDOMAIN
username    --Your NFSN username
api_key     --API key for using NFSN's APIs. This can be obtained via a service request
domain      ---Domain that the subdomain belongs to
subdomain   ---Subdomain to update with the script


It is as easy as running: tclsh dns.tcl

or make it executable with chmod u+x dns.tcl and then run ./dns.tcl


It can even be setup to run as a cron job to completely automate this process. Something such as:

@hourly /usr/local/bin/tclsh /scripts/nfs-dynamic-dns/dns.tcl


The script communicates with NearlyFreeSpeech.NET via its RESTful API. Specifics about the API can be found here.

You can’t perform that action at this time.