So your Internet service provider sticks you with a dynamic IP address. Many people have opted to use a Cable/DSL router to get around this issue. This type of router allows you to use multiple computers sharing one Internet connection and IP address through Network Address Translation (NAT). A popular one is the LinkSys BEFSR41 4-port Cable/DSL Router. There are numerous vendors that make a similar product. This article describes how to use No-IP in a NAT environment using the LinkSys Cable/DSL Router. If you have a different router, this article is still a good read.
This router, like many others, prevents users on the Internet from accessing PCs connected to your local network. That is fine, unless you want to run a server, and therefore need the ability for people to connect via the internet. This is an easy fix as the LinkSys router has a feature called port forwarding. Port forwarding is a mechanism used to take route Internet traffic destined for a particular port to a computer on your local network.
So how do you make this all work? Read the steps below to find out.
Setting Up the Update Client
First, if your external IP is dynamic you will need to download the No-IP dynamic update client to keep your hostname updated with the most current IP. Simply install the client on any machine that resides on your local network. If you just use the default settings the client will try to send the local LAN IP address to the No-IP servers. No-IP doesn’t allow the assignment of private network addresses. So what we want to send is the IP address of the router.
How do I do that? The new Windows client will auto detect your router. On the Mac version select use “Router/Gateway” under the address resolution tab of the update client. On the Linux version set the client to use NAT.
So you have applied the changes and added your host yourhost.servehttp.com to the update client. The updater client now updates the host yourhost.servehttp.com with the most current IP address of your LinkSys router.
Port Forwarding
Your friend now enters http://yourhost.servehttp.com into their browser, but whoops… nothing is there. The router doesn’t have port forwarding configured so it just denies the connection. So you need to configure port forwarding. Open up a web browser and login to your router’s web-based configuration. By default the IP address for configuration is set to http://192.168.1.1/. Enter the username and password, click on the “Advanced Tab”. In the advanced section, click on the “Forwarding” tab.
Example: I’m running a web server on 192.168.100.2 so I am going to enter 80 in both boxes on the Service Port Range fields and 192.168.100.2 for the IP address.
Once you have selected your ports click apply. Port forwarding is now setup for web services. Now all your friends can access your server using http://yourhost.servehttp.com/.
Gotchas
- Keep in mind that you are not limited to just web servers. As long as you know the port number you can do this for almost any type of server, like ftp, vnc, irc, pcanwyhere… just about anything.
- Each port can only be forwarded to one local IP. So we can’t have multiple web servers running on port 80.
- You need to disable Remote Management to run a web server on port 80.
- When testing your webserver, the external IP address may not work from inside your local network. Consider having a friend on a different network connection bring up your website.