我正处于建立家庭网络的早期阶段。我终于构建了一台现代机器 (AMD FX-4100) 用作服务器。因此,我开始尝试虚拟化和比以前更多的服务。
我的主要目标之一是使一切变得简单,而一个障碍是使一切能够通过网络浏览器从局域网内部和互联网上轻松访问。
我运行以下服务:
- 带亚音速的媒体服务器
- webmin 用于配置
- mediatomb 配置页面
- FTP
- HTTP
将来可能会有更多(例如:media.domain.com、ftp.domain.com、config.domain.com,最终能够对每台机器执行类似 VNC 的操作,例如:vnc.machine1.domain.com、vnc.winserver.domain.com 等)
我更希望有东西可以根据主机名转发请求,而不是必须输入每个服务的端口号。我已经读了足够多的内容,我认为我的路由器无法做到这一点(除非我用 DD-WRT 刷新它,即使这样,我也不确定如何配置它)。我的路由器配置页面只允许简单的端口转发,我相信这只允许一个端口到一台机器,但我可能错了。
除了不同的服务之外,我还可能在多台机器上运行服务,尤其是 http 和 ftp,因为我有一个专门用于测试我的 ASP.NET 应用程序的 Windows Server。
有没有技术上可行的方法可以做到这一点,而无需购买新硬件或将我的互联网连接更改为拥有 1 个以上的公共 IP?我愿意运行一台单独的机器来转发请求(特别是如果我可以将其作为 VM 或在我的 Raspberry Pi 上运行)
答案1
每个 IP 和端口号的组合都是唯一的。
如果您只有一个公共 IP,并且希望能够在 LAN 之外执行所有这些操作,那么您需要:
- 配置所有程序,使所有端口都是唯一的。(因此 IP:端口也是唯一的)
- 或者,正如您已经写过的,从您当前的 ISP 获取更多公共 IP。
如果你的网络理解IPv6那么您就有更多选择。
最后一种是我喜欢的方式,但即使在使用 IPv6 十多年之后,仍然有一些程序不能很好地支持它。这也意味着你还有另一件事要学习,并且增加了复杂性。