我一直在寻找解决方案,但似乎不可能,但也许我遗漏了一些东西。我研究了 DNS、反向代理、1to1 nat...
我有一堆本地系统在家里零配置正在运行。例如:
- raspberry.local
- 笔记本电脑.本地
- 本地电脑
他们彼此交谈毫无问题。我有一个路由器将我的系统连接到互联网只有一个IP。
我购买了一个域名,例如:我的域名。
有没有办法将公共子域映射到本地域?根据子域重定向所有端口和服务(不仅是 Web,还有 ssh)
现在我正在调整端口转发,但这并没有升级。
我拥有的:
- mydomain.com:3022 => raspberry.local:22
- mydomain.com:4022 => laptop.local:22
我想要的是:
- raspberry.mydomain.com:* => raspberry.local:*
- laptop.mydomain.com:* => laptop.local:*
答案1
域名与端口无关,只与 IP 地址相关...在“互联网”中,它们仅与公共 IP 地址相关。DNS 域记录中实际上没有任何内容可以使其指向特定的内部 LAN 服务器 IP 或名称。
您可以设置“mydomain.com”指向 IP 12.13.14.15 或您希望的任何 IP,并且如果您已经为各种子域(如“raspberry.mydomain.com”)设置了 DNS 记录,您可以将其指向相同或不同的 IP 地址,但您的路由器或服务器必须将这些 IP 地址端口转发到正确的内部主机。
请不要将其与 Web 服务器的映射相混淆,Web 服务器会获取对“http://blog.mydomain.com' 并知道映射到 'mydomain.com/web/blog/index.html' 或 'webserver.local/web/pages/blog/index.html',因为服务器明确暗示重定向到那里,这是完全不同的事情。DNS 记录不会这样做,但 http 请求包含正在请求的域名 url。
老实说,在住宅或小型企业环境中,将各种服务的唯一端口连接到不同机器的第一个解决方案通常是最可行的。在中型到大型企业中,通常有多个公共 IP 地址用于将事物映射到不同的主机。