![在 Ubuntu 中将请求从外部主机名路由到内部 IP 地址](https://linux22.com/image/518523/%E5%9C%A8%20Ubuntu%20%E4%B8%AD%E5%B0%86%E8%AF%B7%E6%B1%82%E4%BB%8E%E5%A4%96%E9%83%A8%E4%B8%BB%E6%9C%BA%E5%90%8D%E8%B7%AF%E7%94%B1%E5%88%B0%E5%86%85%E9%83%A8%20IP%20%E5%9C%B0%E5%9D%80.png)
我想使用同一个 IP 地址托管多个网站。我的 ISP 为我提供了一个静态 IP 地址,但是我有三个不同的 Web 服务器(都运行不同的网站)连接到一个廉价交换机后面,它们最终都位于这个 IP 地址后面(其中一个是 Apache,两个是 Windows 机器,所以我无法真正合并它们)。我可以根据端口和传入 IP 地址使用此交换机进行端口转发,但不能根据主机名进行端口转发。这不是一个长期的解决方案,因为区分我尝试访问哪个 Web 服务器的唯一方法是通过端口。这太丑了。
我还有一个带两块网卡的 Linux 机器,希望将其用作更强大的防火墙/路由器。我的问题是 - 将我的 Linux 机器(运行 Xubuntu)变成能够基于主机名而不仅仅是 IP 地址进行路由的路由器的最佳方法是什么?不过我想将 Xubuntu 保留在机器上,所以请不要使用专用的路由器 Linux 发行版。
我查看了 Shorewall,但找不到让它根据主机名而不是 IP 地址路由数据包的方法。IPTables 是可行的方法吗?如果是,有人能给我提供教程或有关如何执行此操作的内容吗?我在 Google 上搜索了一下,我很震惊,这不是一个更常见的场景!