zhoudaiyu
V2EX  ›  问与答

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

  •  
  •   zhoudaiyu ·
    PRO
    · May 20, 2021 · 2844 views
    This topic created in 1820 days ago, the information mentioned may be changed or developed.

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

    如果用户比较多维护 hosts 麻烦可以开一个 http 正向代理, 流量走 http 代理,在 http 代理节点写 hosts 文件就行。
    ik
        11
    ik  
       May 20, 2021 via iPhone
    另外购买域名设置解析地址就行,没看懂你的顾虑是什么
    kav2007
        12
    kav2007  
       May 20, 2021 via Android
    在 dmz 里架设正向代理,正向代理上写 hosts 或者搭建 dns 。客户机浏览器设置 pac 代理
    sdc6882278
        13
    sdc6882278  
       May 21, 2021
    1.大部分商用 VPN 系统都带有 dns 劫持功能可以自定义 host 。
    2.可以使用 ip 地址加 url 的形式区分反向代理的服务,比如 1.1.1.1/server1/xxxx,1.1.1.1/server2/yyyyy 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   934 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 21:21 · PVG 05:21 · LAX 14:21 · JFK 17:21
    ♥ Do have faith in what you're doing.