问大家一个关于解析私有域名的解决方案

2021-05-20 14:21:25 +08:00
 zhoudaiyu

    最初,我们可以通过办公网或者外网+VPN 方式直接访问服务器内网的 HTTP 服务(例如一些运维组件的管理页面),但是现在由于网络做了一些变动,我们只能通过 DMZ 区代理去访问服务器内网。所以我们在 DMZ 区搭建了一套 NGINX,反向代理后面的 HTTP 服务,由于后面代理的服务非常多,而且有一些完全相同 url 的服务需要代理,因此我们想通过虚拟主机+域名的方式管理被代理的服务,比如 vsa.local.v1.net 代理了 172.101.110.1:8181/,vsb.local.v1.net 代理了 172.101.110.2:8180/等这种方式去区分服务。因此需要我们通过域名去访问 NGINX,但是我们并没有自己的内部 DNS (这个说来话长,不解释了)。     目前,有两种方案可选:     方案一:个人电脑上装个本地的 DNS,将*.local.v1.net 指向 DMZ 的代理 NGINX,好处是成本低,相对安全,缺点是需要每个人都装个私有 dns,有点麻烦;     方案二:在外网服务器上(华为云等)搭建一个私有 DNS 指向 DMZ 的代理 NGINX,然后个人电脑的 dns 配上这个外网服务器 ip,好处是对客户端影响小,坏处自然是花钱和相对没有方案一安全。

    下面是两个方案的网络拓扑图。请问大家选哪个方案好呢?或者有什么更好的方案?

    方案一:     方案二:

1704 次点击
所在节点    问与答
13 条回复
XiLingHost
2021-05-20 14:32:17 +08:00
直接买个域名,然后做 wildcard 解析,比如配置一条记录
*.local.com. 1 IN A 192.168.1.100
然后在 192.168.1.100 上部署你这个 nginx 作为反向代理
zhoudaiyu
2021-05-20 14:56:52 +08:00
@XiLingHost #1 那这样访问不通我们的内网啊,必须通过 dmz 区的代理才能访问进内网的
XiLingHost
2021-05-20 15:08:09 +08:00
@zhoudaiyu 你的意思是,你的客户端设备是无法访问公有 dns 服务器的?
goodryb
2021-05-20 15:09:43 +08:00
搞个专门的运维系统的域名最简单,直接主域名解析到 DMZ 区的 nginx IP 上即可,这样客户端就不用什么特殊配置。
zhoudaiyu
2021-05-20 15:11:05 +08:00
@XiLingHost #3 是可以的,但是代理必须在我们的 dmz 部署,这样才能访问进内网
zhoudaiyu
2021-05-20 15:11:51 +08:00
@goodryb #4 唉,没法弄内网私有 dns,牵扯到好多非技术的事
XiLingHost
2021-05-20 15:14:35 +08:00
@zhoudaiyu 代理当然是部署在 dmz 的,我说的那个 ip 只是个示例,实际上你也可以是 10.0.0.0/8 或者 192.168.0.0/24 或者 172.16.0.0/12 里面的任何地址,当然,你也可以把它指定为你们的公网地址,我的意思是,直接买一个域名来解析到你的代理服务器上
zhoudaiyu
2021-05-20 15:39:24 +08:00
@XiLingHost #7 明白了,就是买个域名加个 A 记录指向 dmz 的 nginx 代理就行了,这样外面不配 dns 也能访问到 dmz,然后 nginx 那块或者前面的 lb 直接做个访问白名单就可以了吧
XiLingHost
2021-05-20 17:08:41 +08:00
@zhoudaiyu 是的,配置了 wildcard 记录(也就是含有*的通配符记录)后,符合规则的 dns 查询都会返回记录的结果
ik
2021-05-20 19:40:21 +08:00
dns 不能自建,可以写 hosts 文件。

如果用户比较多维护 hosts 麻烦可以开一个 http 正向代理, 流量走 http 代理,在 http 代理节点写 hosts 文件就行。
ik
2021-05-20 19:42:17 +08:00
另外购买域名设置解析地址就行,没看懂你的顾虑是什么
kav2007
2021-05-20 20:38:20 +08:00
在 dmz 里架设正向代理,正向代理上写 hosts 或者搭建 dns 。客户机浏览器设置 pac 代理
sdc6882278
2021-05-21 13:26:59 +08:00
1.大部分商用 VPN 系统都带有 dns 劫持功能可以自定义 host 。
2.可以使用 ip 地址加 url 的形式区分反向代理的服务,比如 1.1.1.1/server1/xxxx,1.1.1.1/server2/yyyyy 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/778135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX