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

webvpn 和反向代理的区别

  •  
  •   nowheretoseek · 2022-01-20 15:10:34 +08:00 · 924 次点击
    这是一个创建于 839 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问大家,webvpn 是拥有本地 vpn 的很多特征,跟反向代理不同的技术吗,还是只是反向代理的一种通俗称谓?

    5 条回复    2022-02-21 18:06:01 +08:00
    bugfan
        1
    bugfan  
       2022-02-19 21:27:56 +08:00
    webvpn 是以反向代理为基础来做的,反向代理需要处理很多情况,(请求头,行,体),当然还要借助插入 js 到 web 中来做,,, 主要这两大部分吧!
    nowheretoseek
        2
    nowheretoseek  
    OP
       2022-02-20 01:45:57 +08:00
    @bugfan 谢谢回复,这么说 webvpn 是深度定制的反向代理了。请求头、请求体我知道,请求行是指映射后的 url 吗?
    我在一个开启 webvpn 的站点观察到了“插入 js 到 web 中”的情况,具体就是一个 js 主文件,一些配置变量,然后一些执行 vpn_eval 函数的 script 标签,请问其目的是什么,是授权相关吗,还是别的作用?
    bugfan
        3
    bugfan  
       2022-02-20 22:25:22 +08:00   ❤️ 1
    @nowheretoseek 目的就是把源网站的 js 包起来,你可以理解为一个 jsVM ,比如源网站用到了 location.href=‘/’(意思是把当前页面跳到'https://vpn.xxx.com/'),但是经过 vpn_eval 执行 location.href=‘/’之后,你看到的地址应该是'https://vpn.xxx.com/https/yourdomain.xxx.com/' 类似的一个地址,总之目的就是把你浏览的所有涉及到 url 的东西,都在前面加上了'https://vpn.xxx.com',这样可以先把流量送到‘vpn.xxx.com’,‘vpn.xxx.com’收到所有流量后就可以进行反代处理了。。。这个涉及到很多技术点,一句两句说不清,如果有兴趣,可以加我微信(antian53)细聊!🤝
    nowheretoseek
        4
    nowheretoseek  
    OP
       2022-02-21 12:11:47 +08:00
    @bugfan 多谢指教!我比对了原生 url 和挂 webvpn 后的页面代码,注意到了 vpn_eval 的特征,就是把原 script 标签进行了一次包裹,但不确定这么做是因为授权、url 格式化还是别的目的。
    因为我猜想 webvpn 应该会处理所有原生 url 后再提供 html ,实际观察到也是如此。
    如果 js 操作的 url 或由 js 发起请求的 url 不直观,不便直接替换,那么用 vpn_eval 函数包裹后执行,可能是较好的办法吧。

    网上能搜到的 webvpn 的技术细节不多,近些年一些机关单位逐渐开始采用 webvpn 提供原先内网才能访问的服务,部分淘汰了客户端 vpn 方案,说明这种技术和一些解决方案是近些年才发展起来的吧,是一个挺大的市场。
    bugfan
        5
    bugfan  
       2022-02-21 18:06:01 +08:00
    @nowheretoseek 现在主要是高校用的多,尤其疫情期间,更流行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1132 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:06 · PVG 03:06 · LAX 12:06 · JFK 15:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.