Oct 23
Tomato firmware: Dynamic DNS with dynDNS.org
When you have a home server, you may not have the chance to be connected to the Internet using a static IP address, instead your IP address is a lease from your Internet Service Provider and may change every day depending on the setup.
So when you are in the outside world, it is not possible to guess the IP address of your computer, how could you connect to it if you wanted to? The solution is to use a dynamic DNS forwarder like DynDNS.org. Talking about DynDNS, many standard firmwares (Netgear, Linksys, etc.) support updating your IP when it changes. Since I use Tomato firmware, I will explain how to configure it.
- First, you must register on DynDNS.org by creating an account.
- Then go into the “My Services / Host services” section of the site and add a new host name
- The free service offers you to choose any sub-domain name from their available list.
(ex: myhostname.getmyip.com, myhostname.kick-ass.net) - So you have to enter:
- the name you want (myhostname)
- the domain name (kick-ass.net)
- if you want to enable wildcards
(if enabled, anything.myhostname.kick-ass.net will be forwarded as well) - the service type: Host with IP address
- leave the IP address, Tomato will update it automatically
- leave the mail router checkbox unchecked

- create that host…
- Now you have to configure Tomato
- Navigate to the router’s web administration
- Open up the page under Basic / DDNS.
- Tomato offers to configure up to 2 host names, let’s fill the first one:
- IP Address: Use WAN IP xxx.xxx.xxx.xxx (recommended)
- Service: DynDNS – Dynamic
- Username: your account name
- Password: your account password
- host name: myhostname.kick-ass.net

A handy tip that I found
Go to scheduler -> Custom 1
ddns-update 0 force
ddns-update 1 force
It will automatically update your DDNS automatically and you can change the frequency.
In what situation do you need to schedule this? I never had to force an update because as soon as the router get a connection, it updates dyndns.org automatically… I guess you have an ISP that changes your IP address frequently?
Pascal.
Eric’s tip is exactly what I was looking for. I have a problem where my no-ip domain expires because my IP address changes so infrequently. Using this method, I can ensure that the domain stays active even when my IP address is nearly static.
Maybe I’m missing it, but where is a good reference for these kinds of commands in Tomato?
I have mine set to every 12 hours. It updates both my DynDNS hosts. I have been running it like that for the last 6 months and I have not yet been banned. My IP rarely ever changes (Once a month) but if it changes, my downtime is minimal.
Does this method work if tomato router is setup in client mode behind the main router? I guess this depends on whether tomato takes the help of external services to figure out what the public IP is (like the services running on windows do).
I currently have tomato router with the public ip and ddns works fine without a schedule. But I do get the reminders from dyndns.com to click on a link to avoid expiration. Does a schedule to do a force update of ddns avoid this (in a sense, auto extend the expiration)?
You saved my day!
Thanks!
Dont use ddns-update * force .. if you are gaming or
something like that when the update occurs you will suffer lag as
ddds-update * force invokes a nvram commit () – writes to the flash
memory. Use “mdu –service custom –conf ddnsx0.conf” or “mdu
–service custom –conf ddnsx1.conf” instead.. they do not invoke a
nvram commit () ! Just a note.. ddns-update runs the mdu call just
like above.. but it also commits to the nvram.. (perhaps only if
the force parameter is given, havent checked on that.. but calling
mdu directly fixed the lag issue on PSN for me) (:
there is supposed to be two “-” before service and conf in
the comment above.. as in (without spaces between – and -) “mdu -
-service custom – -conf ddnsx*.conf”
I did everything like you said but cannot connect. I am a newbie so please help
I am trying to access my router but it does not connect. Do I type the hostname I created or my IP address in the address field of the browser?
Do I even know what am I saying?
Thank you!
YES! I just needed to add the 8080 in the end of the host address. It works! Thanks anyway!
Good!
Would you mind writing up how to setup Media Server/DNLA for Tomato? I can setup fine I guess from what I googled so far but I do not know how to access it? Can you give some sample addresses of the media server/USB hard drive? I am little lost (again)
Thanks!
I guess I should be more clear. I figured it out how to access to my files when I am in my home network but I want to be able to watch my movies when I am away from such as watching from an iPhone/iPad or another computer. Thanks Pascal!
[...] To simplify connections use OpenDNS [...]
There seems to be some changes at the dyndns site.
You show pictures of the account that show no need to input your IP and also in the firmware you have selected wildcard.
Are those pics from dyndns from an account that you paid for or are they of a free account?
When I sign up for an account it requires that i imput my IP Address. And also the Wildcard is only for the paid option. What is the Wildcard option you checked in the Tomato firmware?
it’s been a long time since I logged in DynDNS. Sure they have done some changes since the screenshot was taken. I will verify and come back with additional information.
Notice that Tomato supports other dynamic dns providers that could offer you more than DynDNS. It may be worth to look at.
Thanks. I found a guide at HowToGeek.com that helped. Check it out:
http://www.howtogeek.com/60774/connect-to-your-home-network-from-anywhere-with-openvpn-and-tomato/