V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhoudaiyu
V2EX  ›  问与答

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

  •  
  •   zhoudaiyu · 2021-05-20 14:21:25 +08:00 · 1909 次点击
    这是一个创建于 1291 天前的主题,其中的信息可能已经有所发展或是发生改变。

        最初,我们可以通过办公网或者外网+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,好处是对客户端影响小,坏处自然是花钱和相对没有方案一安全。

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

        方案一: v1.2.png     方案二: v2.png

    13 条回复    2021-05-21 13:26:59 +08:00
    XiLingHost
        1
    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
        2
    zhoudaiyu  
    OP
       2021-05-20 14:56:52 +08:00
    @XiLingHost #1 那这样访问不通我们的内网啊,必须通过 dmz 区的代理才能访问进内网的
    XiLingHost
        3
    XiLingHost  
       2021-05-20 15:08:09 +08:00
    @zhoudaiyu 你的意思是,你的客户端设备是无法访问公有 dns 服务器的?
    goodryb
        4
    goodryb  
       2021-05-20 15:09:43 +08:00
    搞个专门的运维系统的域名最简单,直接主域名解析到 DMZ 区的 nginx IP 上即可,这样客户端就不用什么特殊配置。
    zhoudaiyu
        5
    zhoudaiyu  
    OP
       2021-05-20 15:11:05 +08:00
    @XiLingHost #3 是可以的,但是代理必须在我们的 dmz 部署,这样才能访问进内网
    zhoudaiyu
        6
    zhoudaiyu  
    OP
       2021-05-20 15:11:51 +08:00
    @goodryb #4 唉,没法弄内网私有 dns,牵扯到好多非技术的事
    XiLingHost
        7
    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
        8
    zhoudaiyu  
    OP
       2021-05-20 15:39:24 +08:00
    @XiLingHost #7 明白了,就是买个域名加个 A 记录指向 dmz 的 nginx 代理就行了,这样外面不配 dns 也能访问到 dmz,然后 nginx 那块或者前面的 lb 直接做个访问白名单就可以了吧
    XiLingHost
        9
    XiLingHost  
       2021-05-20 17:08:41 +08:00
    @zhoudaiyu 是的,配置了 wildcard 记录(也就是含有*的通配符记录)后,符合规则的 dns 查询都会返回记录的结果
    ik
        10
    ik  
       2021-05-20 19:40:21 +08:00 via iPhone
    dns 不能自建,可以写 hosts 文件。

    如果用户比较多维护 hosts 麻烦可以开一个 http 正向代理, 流量走 http 代理,在 http 代理节点写 hosts 文件就行。
    ik
        11
    ik  
       2021-05-20 19:42:17 +08:00 via iPhone
    另外购买域名设置解析地址就行,没看懂你的顾虑是什么
    kav2007
        12
    kav2007  
       2021-05-20 20:38:20 +08:00 via Android
    在 dmz 里架设正向代理,正向代理上写 hosts 或者搭建 dns 。客户机浏览器设置 pac 代理
    sdc6882278
        13
    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 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:28 · PVG 07:28 · LAX 15:28 · JFK 18:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.