是否可以使用一个域与 NAT 中的服务器连接?
例子
example.ltd - > 12.12.12.12
nat1.example.ltd - > 12.12.12.12 - > 192.168.1.100
nat2.example.ltd - > 12.12.12.12 - > 192.168.1.101
etc..
有可能吗?我只有一个 IP 地址。非常感谢您的建议 :)
再解释一下。
例如我的 IP 是 12.12.12.12
我的域名:domain.ltd 记录 A 绑定到 IP 12.12.12.12
在我的路由器中,DMZ 是: 192.168.1.2 ,因此 traceroute 是 domain.ltd -> 12.12.12.12 -> 192.168.1.2
现在我想将 subdomain.domain.ltd 绑定到 192.168.1.100
是否可以?
// 编辑:非 WWW 服务器怎么办?我可以路由 ssh 端口等吗?
答案1
您可以使用像 nginx 这样的反向代理,根据使用的域名处理请求。方案如下:
Proxy-IP: 13.13.13.13
所有 www 流量通过 NAT -> 13.13.13.13
在 13.13.13.13 上,您有多个不同名称的服务器条目,并且在服务器部分内,nginx 会将您的流量重定向到匹配的主机:
server{
server_name domain.ltd;
listen 0.0.0.0:80;
proxy_pass http://12.12.12.12/;
...
}
server{
server_name nat1.domain.ltd;
listen 0.0.0.0:80;
proxy_pass http://192.168.1.100/;
...
}
server{
server_name nat1.domain.ltd;
listen 0.0.0.0:80;
proxy_pass http://192.168.1.101/;
...
}
更多信息请参见此处:https://www.nginx.com/resources/admin-guide/reverse-proxy/
答案2
antic-eye 是正确的;您可以使用某种代理将网络流量引导到内部主机。我使用 PfSense 在防火墙上使用 squid 来实现这一点。我使用它根据域名将请求发送到正确的内部服务器。
您还可以使用端口转发将任何 tcp/udp 流量发送到特定端口到特定内部服务器。这是常见的做法。
对于基于名称的非 www 协议(如 SSH)的路由,HAProxy 似乎可以工作。您必须阅读有关它的内容;我从未尝试过。我发现了一个关于它的 serverfault 问题。