Mapping a domain name to your High Speed Internet account
I have an always-running Linux server on my home network. It acts as a file server for various files, streams audio through my network, and acts as an anti-spam Email proxy. Sometimes when I'm at work, I feel compelled to access these files. Sure, there are ways I can remember my semi-static IP Address that my cable provider offers me, but I thought I'd drop $8 at GoDaddy and map a domain to my account.
First and foremost, consider security. If you're going to do this - you have to realize you should take measures to allow only yourself access to the services you are going to make public. You may wish to make a web server public and unrestricted, just realize you're essentially letting someone into your home - so to say.
As I mentioned, you'll need a domain name. You'll need an Internet Connection (you can get almost any type to work) with an externally available IP address. Note that some ISPs will give you an a private IP address, these can't be used. You'll also need a router that does port forwarding tasks (almost any new low end wireless router you can find at Best Buy will do this). You'll also need a service that maps your domain name to your IP Address.
Services like DynDNS are popular. They are a bit expensive, but some routers have automatic utilities for interfacing with the service built right in. (I know modern Linksys and Netgear devices do). You can also get the DNS Service for free, though I don't see how these free services could be totally reliable. I'm currently using DynDNS - but when my year is up, I may look at someone like ZoneEdit. Any company you look at will likely require a small annual charge.
Realize that your ISP likely blocks common service ports, like 80 for Web Servers. This isn't a problem. On your subnet machine, let's say 192.168.1.9, configure your web service to listen on port 6000. Then on your router, which will have your Public IP address and a private subnet address, will forward external connection requests to port 6000 on your private machine. In other words, the service that was running on your private network is now available to the public Internet.
As I mentioned, you'll need to consider security. For me, I have a firewall that only allows a range of addresses from my work's network. I also have user authentication on this web service. You may wish to use a combination of systems to keep your network secure should you elect to do this.