Multiple servers/services on home network and how to access through hostnames

1

I am in the early stages of setting up my home network. I finally just built a modern machine (AMD FX-4100) to use as the server. Because of this I am starting to play around with Virtualization and many more services than I had before.

One of my primary goals is for everything to be easy, and one hurdle is making things easily accessible through the web browser from both inside the LAN and over the internet.

I run the following services:

  • media server with subsonic
  • webmin for configuration
  • the mediatomb configuration page
  • FTP
  • HTTP

With possibly more in the future(ex: media.domain.com, ftp.domain.com, config.domain.com, and eventually being able to do something like, say, VNC to each machine ex: vnc.machine1.domain.com, vnc.winserver.domain.com, etc.)

Rather than having to enter the port numbers for each service, I would prefer to have something forward the requests for me based on hostname. I have read enough that I don't think my router could do it (unless I flashed it with DD-WRT, and even then, I'm not sure how to go about configuring it). My router config page only allows simple port forwarding, which, I believe only allows one port to one machine, but I may be wrong.

In addition to different services, it is possible that I will run a service on more than one machine, especially http and ftp, as I have a Windows Server that is specifically for testing my ASP.NET applications.

Is there any technically feasible way to do this without buying new hardware or changing my internet connection to have more than 1 public IP? I would be willing to run a seperate machine to forward requests (especially if I could run it as a VM or on my Raspberry Pi)

Kyle

Posted 2012-07-13T14:30:38.140

Reputation: 249

Answers

1

Each combination of IP and port number is unique.

If you only have on public IP and also want to be able to do all of this from outside your LAN you either need to:

  1. Configure all programs so all ports are unique. (and thus IP:ports is unique)
  2. Or, as you already wrote, get more public IPs from your current ISP.

If your network understands IPv6 then you have additional options.

The last would be my preferred way, but even after more than a decade of IPv6 usage there are still programs which do not gracefully support it. it also means that you have yet another thing to learn and adds complexity.

Hennes

Posted 2012-07-13T14:30:38.140

Reputation: 60 739

I think most of my things support IPv6. At least the servers do. I'm not sure about my ISP, I'll have to look into that (its Time Warner in Akron, Ohio) I was kind of afraid of that, you're saying that I'd still have to type in hostname:port or ipaddr:port from outside the LAN, correct (eg. mydomain.com:10000 for webmin)? – Kyle – 2012-07-13T15:26:54.823

You might not always actually type host name and port, but that just means that most programs use the default port. Thus in most cases telnet myserver:23 is the same as telnet myserver. Same for ssh (defaulting to port 22), web browsing (to port 80) etc etc. If you do not ever want to type a port number then you use the default values. – Hennes – 2012-07-13T15:43:35.863

Ok, well if I am using multiple servers, or it is an oddball port, then I can't really do that. I was looking more of a "forward to port based on name" solution and i've read about it and it doesn't seem possible. – Kyle – 2012-07-13T15:54:31.280