V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Renco
V2EX  ›  程序员

对于部分需要本地化部署(内网部署)的需求,如果满足互联网也能访问到服务上。

  •  
  •   Renco · 1 天前 · 1523 次点击

    标题可能说法有点怪,理论上本地化部署的服务,应该是纯内网环境,不走互联网的。但是公司接的本地化项目越做越混乱了,不仅需要支持内网访问,同时也可以在互联网上访问到这个服务。

    以我自己的认知水平,大概就是需要提供一个能接到互联网的电脑,并且也能访问内网环境,只有满足于这个条件下,在这台电脑上做文章,比如用 nginx 反代,或者 VPN 通道等方式,才能实现。

    我们的甲方都是医院。目前接了多个本地化项目,有些不严谨的,直接就是开个互联网服务器,限制端口,走 nginx 转发访问到内网部署的服务。但是更多的医院是完全不同意出互联网的,最主要是安全问题,nginx 反代这种基本不可能同意。因此现在这个所谓本地化的项目,也不知道要如何推进了。

    不知道 v 友们有没有类似 遇见过这种需求的,想知道这种内网服务部署,但是互联网也能访问的,安全是要怎么保证,或者有什么方式实现。

    22 条回复    2025-01-17 16:27:16 +08:00
    Renco
        1
    Renco  
    OP
       1 天前
    因公司也没什么正儿八经的架构师,就全是业务开发的水平。所以这种安全架构方向的东西基本上毫无了解。也不知道有什么通用方案。
    Mianmiss
        2
    Mianmiss  
       1 天前
    医院一般都有公网 IP 吧? 直接部署一个雷池开源 WAF ,需要外网访问的系统挂到 WAF 上面,也能抵挡一下攻击扫描。
    chairuosen
        3
    chairuosen  
       1 天前
    先接 VPN 再用内网访问
    killva4624
        4
    killva4624  
       1 天前
    VPN 方案请
    mooyo
        5
    mooyo  
       1 天前
    你这个典型的 zero trust 场景,如果小公司,搞个 cloudflare 的免费版就行了,大公司找国内云买。
    KIMI360
        6
    KIMI360  
       1 天前
    是不是搞个网闸会比较合适
    linuxsir2020
        7
    linuxsir2020  
       1 天前
    公有云基本都能提供混合部署方案 :)
    wheat0r
        8
    wheat0r  
       1 天前
    这要看你的内网是什么要求。如果内网只是一个网络中的一个安全域,用 VPN 、反代的方式解决。如果是物理隔离的独立网络,可是用网闸。如果是接收公文的那个网络,直接去公安局自首。
    chengrui0428
        9
    chengrui0428  
       1 天前
    可以考虑这样处理:
    1. 内网服务不连接互联网
    2. 内网的机器上部署 jumpserver
    3. jumpserver 本身可以配置 MFA ,增加安全性
    4. 对内网的操作通过 jumpserver 完成,jumpserver 内审功能,可以对内网访问进行记录和审计
    5. jumpserver 通过 cloudflare tunnel 暴露为公网服务
    pieerepeng
        10
    pieerepeng  
       1 天前
    https://docs.olares.xyz/zh/manual/concepts/network.html

    需要鉴权的服务走 tailscale 类 vpn 服务
    不需要鉴权,对外公开访问的服务放到 CND 和反向代理后( Cloudflare Tunnel 最简单)
    xjzshttps
        11
    xjzshttps  
       1 天前
    网闸
    不过没实际搞过
    MFWT
        12
    MFWT  
       1 天前
    基本就是走 VPN 方案了
    liuzhaowei55
        13
    liuzhaowei55  
       1 天前 via Android   ❤️ 1
    VPN:其实我就是用来做这个的,翻墙只是副业 👻
    SingeeKing
        14
    SingeeKing  
       1 天前
    我咋觉得 lz 的意思不是服务器需要被外网访问而是需要让本来没有外网访问权限的服务器可以访问授权内网
    SingeeKing
        15
    SingeeKing  
       1 天前
    我咋觉得 lz 的意思不是服务器需要被外网访问而是需要让本来没有外网访问权限的服务器可以访问有限/经过审计的外网
    humbass
        16
    humbass  
       1 天前
    @Renco 所有访问都必须启用 vpn 不就行了。
    mapleincode
        17
    mapleincode  
       1 天前   ❤️ 1
    我大概能理解你说的情况。你们公司接了项目,但是可能因为某些原因。不想驻场,只想通过互联网去访问内网的服务进行开发。
    一般来说最安全的是 vpn ,但是这个需要甲方同意并且通过正规渠道和接口进行部署。这很明显不符合你们对甲方的要求。
    我遇到这个情况,一般是偷偷摸摸用类似向日葵、或者 toDesk 这类工具,在连接内网又连接外网的某一台电脑上开启就好了,这样就可以远程在内网进行开发,而且请求也不会经过外网。当然这也涉及安全性问题和监管问题,有些甲方会明令禁止此类操作。
    如果甲方对此监管不严,还有个更好办法就是 frp ,这个本身也和向日葵比较类似,但是是基于独立部署(也会被检测),里面有一种叫做 stcp 的工作方式,特别适合这类工作需求。他是和向日葵一样,需要一台独立 ip ,其次,所有服务并非被暴露在外网(只有端口被暴露在外网而且无法被直接访问),起到了类似 VPN 一样的效果,而且部署成本更低(不需要甲方的网络来提供 vpn )
    huzhizhao
        18
    huzhizhao  
       1 天前
    VPN
    Renco
        19
    Renco  
    OP
       22 小时 15 分钟前
    @SingeeKing #15 嘶,对实际上是这个需求。主要是要让用户外网能访问。我们运维可以去现场运维,我的描述可能不太对。
    starNew
        20
    starNew  
       20 小时 39 分钟前
    kvm 向日葵控控 A2 ,转发屏幕画面模拟键鼠操作,应该可以满足你的需求
    test00001
        21
    test00001  
       19 小时 20 分钟前
    楼主是不是说希望访问内网环境中某些允许外网访问的接口?规模不大的话实现这个功能只需要医院提供一台连接他们总路由的机器并分配联网功能。然后你可以在这台机器上使用内网穿透工具暴漏出去接口。请务必做好端口和接口的保护。不要轻易开放远程桌面的端口。
    69partner
        22
    69partner  
       17 小时 35 分钟前
    楼主的需求是服务既要公网访问也要内网访问, 这里其实就是一个入口问题。 把网关端口映射出去就可行了。 访问的时候是有两个不同的 server_name ,这里做一下配置即可。 如果不能这么做的话,就老老实实 l2tp vpn 进家门吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 02:02 · PVG 10:02 · LAX 18:02 · JFK 21:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.