通过公网IP映射子域名到本地IP

通过公网IP映射子域名到本地IP

我想将子域映射到我的机器上的本地 IP,以便为我的每个虚拟机实现一个 IP。

我知道我可以在自己的机器上设置一个DNS,但这只能解决domain我自己机器上的问题。

subdomain.domain.com -> Public IP -> Internal IP 1
subdomain2.domain.com -> Public IP -> Internal IP 2
subdomain2.domain.com -> Public IP -> Internal IP 3

有什么可以实现同样的目标吗?

注意:我不想只想要端口,80我想要类似NATReverse proxy所有 TCP 有效负载的东西。

感谢您的阅读。

答案1

你不能。

“诡计”通常用于模拟您请求的内容(使用反向代理)的 HTTP(S) 协议只能用于 HTTP(S),因为该协议在每个请求中包含请求的 DNS 主机名。这使得在主 IP 地址上运行的 HTTP 反向代理能够识别请求是针对特定站点的,并将其转发到正确的后端服务器。

大多数其他协议不包括客户端用于连接服务器的 DNS 主机名。客户端在本地将所使用的 DNS 主机名解析为 IP 地址,并尝试连接到该 IP 地址。原始主机名信息“丢失”,(初始)请求中携带的唯一信息是解析后的 IP 地址和端口号。

对于每个不是本机主机名感知的协议,都无法将请求正确地映射到特定的后端服务器。

另请参阅:如何使协议 foo 能够识别主机名?

SSH 或 FTP 协议是否会告诉服务器我尝试连接哪个域?


解决方案是在所有服务器上使用 IPv6,并将每个 DNS 主机名映射到正确后端服务器的 IPv6 地址。

相关内容