Dynamic DNS


This is a short tutorial on getting Dynamic DNS to work on a PC, sitting behind a router, using VPN, and running Exceed. If this isn't your exact configuration, then you probably won't get that much out of this.

DNS maps a hostname to an IP address. On many home computers, the IP address can change frequently. Dynamic DNS alows you to establish a hostname that maps to a dynamic IP address.


  1. Get a Dynamic DNS account. I use dyndns.org (it's free!), but there are many other similar sites.
  2. Create a Dynamic DNS Host entry. Just pick a hostname and domain now. Leave the IP address set to whatever shows up. I don't use any of the other features, but you might have some reason to.
  3. Download a Dynamic DNS Client. This is an application (or sometimes a service) that will run on your host (your computer). I've reviewed a few clients for Windows on my Windows Internet page, so please read that (BaliDynDNS is my current favorite).
  4. There are several IP addresses that apply to your computer. There's the LAN IP address assigned by the router (usually something like 192.168.0.100). There's the IP address assigned to you router by your ISP. And finally there's the IP address assigned to your VPN connection. It's the last one we need to find.
    1. First, and least importantly for this discussion, is the LAN IP address assigned by the router (usually something like 192.168.0.100). You can usually find your LAN IP address by checking a status page on your router's web server.
    2. Next, your router is assigned an IP address by your ISP. You can sometimes find the router's public IP address on the router's web server, but you can always find it by checking a public IP detection page, like this one at DynDNS, if you haven't started a VPN connection yet.
    3. Once you have a VPN connection, your public IP address (as detected by sites like DynDNS) will appear to be coming from somewhere inside the VPN (this is usually set to some kind of proxy server inside corporate firewalls). This address is useless.
    4. The address that you really want is your privateVPN IP address. To find this, you'll need an IP detection page located inside your corporate firewall (you can save this Perl CGI script to an internal web server, if they'll let you).
  5. Once all of those things are done (account and host setup, client downloaded, and private VPN IP address is detected through a web page), you need to configure the Dynamic DNS client. Enter your Dynamic DNS service (e.g., dyndns.org), your host, and the username and password (if required) for your service. Enter the URL for the IP detection page (located inside your VPN/corporate connection) somewhere inside the client (for BaliDynDNS, it's on the Proxy tab, next to "URL giving your public IP"). On some clients (like DynSite), you might need to check off an option saying that "Private IP Addresses are allowed", since the IP want is often (always?) in the private IP range 10.x.x.x.
  6. You can set your client to check that IP detection page at regular intervals. I just run my client (with an "update and quit" option) immediately after establishing a new VPN connection. Some clients (like DynSite) can detect that an IP address has changed, thus keeping you from having to poll a web server (which can really annoy some administrators, rightfully so!).
  7. Inside Exceed, you can launch xterms, etc., with the "-display" option set to your Dynanic DNS Host (e.g., -display myhost.dyndns.org:0). Sometimes, though, a newly updated Dynamic DNS IP address is not completely visible to the UNIX server. In that case, you can use the much more cumbersome -display `/usr/sbin/nslookup myhost.dyndns.org | tail -2 | head -1 | sed -e 's/.*. \(.*\)/\1:0/'` to specify your X display.