我想将子域映射到我的机器上的本地 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
我想要类似NAT
或Reverse proxy
所有 TCP 有效负载的东西。
感谢您的阅读。
答案1
你不能。
这“诡计”通常用于模拟您请求的内容(使用反向代理)的 HTTP(S) 协议只能用于 HTTP(S),因为该协议在每个请求中包含请求的 DNS 主机名。这使得在主 IP 地址上运行的 HTTP 反向代理能够识别请求是针对特定站点的,并将其转发到正确的后端服务器。
大多数其他协议不包括客户端用于连接服务器的 DNS 主机名。客户端在本地将所使用的 DNS 主机名解析为 IP 地址,并尝试连接到该 IP 地址。原始主机名信息“丢失”,(初始)请求中携带的唯一信息是解析后的 IP 地址和端口号。
对于每个不是本机主机名感知的协议,都无法将请求正确地映射到特定的后端服务器。
另请参阅:如何使协议 foo 能够识别主机名?
解决方案是在所有服务器上使用 IPv6,并将每个 DNS 主机名映射到正确后端服务器的 IPv6 地址。