Chances are, when you log into the Internet via your Internet service provider (ISP), you are assigned a different IP (Internet protocol) address every time. Your IP address is like your street address on the Internet. It consists of 4 numbers from 0 to 255 separated by a period, or more often called a dot. Example: 192.168.1.1. When you download your e-mail or visit a web page, your software gives the server your IP address, so it knows where to send the data. After all, if you mailed a letter to your long-lost friend, but didn't put a return address on the envelope, how would your friend write you back?
So why does your IP address change every time you sign on to the Internet? There are several reasons. First and most important of all, there are a limited amount of IP addresses available. (Engineers are working on the problem. Do a search on IPv6 if you care to know more.) If everyone was assigned a permanent IP address, we would have run out of addresses a long time ago. Typically, not everyone is on the Internet at the same time, so there are enough IP addresses to share. Second, ISP's do this to discourage users from running servers on their home computers. Obviously, your ISP would rather you pay them more to host your web site or other service on a dedicated server with lots of bandwidth. If you are sharing illegal files and content via your Internet connection, your ISP has to shut down your account and lose a paying customer which is more time consuming than simply deleting the files off their server. Third, dynamic IP addresses make you safer. It's a lot harder to hit a moving target, right? With hackers finding software vulnerabilities every day and loading spyware on your computer without your knowledge, a dynamic IP address throws them off your tail...at least for a little while.
You may be wondering at this point, "Why can I just type in some .com address and get to a server without knowing it's IP address?" Good question! Obviously, it would be quite difficult to remember 184.108.40.206 is Yahoo's web server. That is why the domain naming system (DNS) was invented. There are entire volumes of books written about how DNS works, so I'll try to simplify it as much as possible. There are numerous computers out on the Internet that their sole purpose is to resolve a given domain name and return the corresponding IP address. A domain name is resolved from right to left. First, the root DNS servers are contacted. All they know is all the IP addresses for DNS servers for a given domain suffix such as .com, .net, .org, .us, etc. The .com DNS servers know all about the DNS IP address for a given top-level domain (TLD) ending in .com. Then each TLD must have a DNS server that can resolve IP addresses to a web server (www.somedomain.com), mail server (mail.somedomain.com), etc. So when you go to http://www.yahoo.com/, your web browser contacts one of the root DNS servers. The root DNS server tells the browser that it doesn't know anything about www.yahoo.com, but here is the IP address of a .com DNS server. Your web browser then queries the .com DNS server. The .com DNS server says I don't know anything about www, but here is the IP address of yahoo.com's DNS server. Finally, your browser queries the yahoo.com DNS server. The yahoo.com server says yes, I am authoritative for that domain. Here is the IP address of www.yahoo.com: 220.127.116.11. Then, your browser connects directly to the Yahoo web server via its IP address with your return IP address.
You can take advantage of DNS to find your home computer on the Internet without ever knowing your IP address or worry about it changing all the time. You will need to leave your computer on and have a little program that periodically checks your IP address and updates a DNS server when your IP address has changed. A DNS server must have a static IP address, so you can't just run one on your home computer. Fortunately, there are many services on the Internet that will let you borrow their DNS server for free or for a small fee. This is called dynamic DNS.
Before you go running to find a company that provides dynamic DNS, you need to think about your domain name. Obviously, it must be unique, and registering a domain name is on a first come, first serve basis. If you are content with having a subdomain (ex., mycomputer.somecompany.com), often you can find a dynamic DNS service for free. If you want your own top-level domain (ex., mydomain.com) then you will need to register your domain name first. There are lots of domain registrars. Among the cheapest and the ones I recommend are 1&1 and GoDaddy. Once you find a domain name and register it, you will need to point your domain name to two dynamic DNS servers. (That's another reason why you can't host a DNS server yourself. There must be a backup domain server in case the primary fails.) Fortunately, there are domain registrars that provide dynamic DNS, and often dynamic DNS services can register a domain name for you as well. If all of this seems overwhelming to you, you might seek this option out. It might costs a few extra bucks, but your domain name will automatically be pointed to your IP address. Generally, the dynamic DNS service will provide or recommend a certain client to install on your home computer. Whether you want a subdomain or TLD, here is a good list of providers. A web search will probably bring up more.
What can you do once you have a domain name pointing to your computer? There is lots of server software out there, most of it freeware. If you just want to share some files with your friends or be able to access your files at home from work, look into an FTP server (port 21). If you want to be able to see and control your computer and transfer files to/from a remote location, I recommend installing TightVNC (ports 5800 and 5900). You can even set up your own web and mail server. See my list of downloads for more recommendations. Unless you want to learn how to become a server administrator, I recommend staying away from the web and mail servers as configuring them can be aggravating and time consuming. If not configured properly, a mail server can easily be used by anyone to send spam. In order to get these server applications to work, you will need to unblock the ports in your firewall. A software firewall will generally ask you if it is ok to let another computer access a certain program on your computer and then configure the firewall accordingly. If you have a broadband router, you will need to forward the port(s) to the computer with the server application. You can also make that computer the DMZ (demilitarized zone). That means all requests to your external IP address will be forwarded to that one computer on your home network, but I would generally recommend against doing this. After doing all of this and you can't connect to your home computer from elsewhere, learn whether your ISP is blocking some or all ports. Broadband Reports is an excellent resource for determining whether your ISP is blocking ports or you configured something wrong.
That's it. It may seem daunting, but once you get everything working, pat yourself on the back. Not only do you have a better understand of how the Internet works, but you are well on your way to becoming a network or server administrator and making the big bucks!
Last updated January 27, 2006