这个词或许是国内常用,在 Google 搜到的都是中文网页,并且都是公司学校的入口。不知道正式的名字叫什么。
很早的时候有 Glype ,缺点是没有登录认证,现在也停止维护了。
总之,不想直接将 NAS 的服务暴露在公网,想要加一层保护,并且临时使用的时候不需要客户端。
1
Lightbright 2023-10-05 13:59:12 +08:00 via Android
这个其实就是反代,nginx 就能配置
|
2
flyqie 2023-10-05 14:06:30 +08:00 via Android
挺好奇现有 webvpn 方案对 spa 支持怎么样。。
感觉 spa 解决起来不容易啊。 |
3
ysc3839 2023-10-05 14:15:19 +08:00 via Android
OpenCore
|
5
ysc3839 2023-10-05 14:17:15 +08:00 via Android
正式名字应该叫 SSL VPN 或者 TLS VPN ,因为跟 Web 毫无关系,不基于浏览器,也不基于 http 。再者国内哪会用“Web”这个词,都叫“H5”的。
|
6
ysc3839 2023-10-05 14:18:33 +08:00 via Android
如果要求不需要客户端,只使用浏览器的话实现不了 VPN 功能,最多只能反向代理
|
7
bao3 2023-10-05 14:24:45 +08:00
你说得是 ssl vpn ,juniper 、cisco 都支持。 用楼上的 open connect 可以模拟 Cisco 的。
|
8
Puteulanus 2023-10-05 14:36:19 +08:00
你跑个带密码、novnc 的 Chrome docker 镜像暴露出来,访问内网其他服务的时候通过里面的浏览器访问
|
9
serafin 2023-10-05 14:53:27 +08:00
L2TP/IPsec ,群晖自带 VPN 服务端。iPhone 安卓自带 VPN 客户端就行。
|
10
adoal 2023-10-05 14:58:14 +08:00
@ysc3839 不,这几年在大学流行起来的 WebVPN 并不是你说的这种从 Web 上安装 VPN 插件的 SSL VPN ,而是改写规则做得很细致的反代
|
11
hefish 2023-10-05 14:58:27 +08:00
以前有个基于 openvpn + java web application 的,
用 web 登录进去,然后 web 上调用 Java 在本地起一个端口映射器。 好像是叫 openvpn-as 吧。 |
12
mikewang OP @adoal 是的,非常好奇那些大学的反代是怎么做的。我大学 WebVPN 的 URL 可以随便输,甚至可以上 B 站看视频和直播(可以表现为视频流、WebSocket 都是支持的)。除了网速有点卡以外没有遇到其他问题。感觉非常神奇。
|
13
ysc3839 2023-10-05 15:23:13 +08:00 via Android
@adoal 否的,我之前上的学校就是直接用深信服的 EasyConnect 。
再者现在主流浏览器都不支持第三方插件了,不存在“Web 上安装 VPN 插件”。 |
14
datocp 2023-10-05 15:29:23 +08:00
用的全能型 softether ,
OpenConnect?几年前 android 不断的升级不知道是不是 android8/9 就不能运行了。 softether ,提供了 l2tp/openvpn/softether 自己的客户端,也可以实现直接通过 vpn 链路通过 vps 来转发端口服务。它可以安装在 openwrt 路由里,如果有多条线路更是可以通过 cron 调用命令不断的切换不同线路来达到条条大路通过罗马。 |
15
bao3 2023-10-05 15:36:11 +08:00
不是这几年流行,你要的只是 web auth 的 vpn ,用 java 实现,这个 juniper 的就是这样的。vpn 本身就支持这个设定。但上面 open Connect 不知道能不能用 java 来做。
|
16
yaoyao1128 2023-10-05 15:39:02 +08:00 via iPhone
你說的實際就是反向代理()
大學圖書館常用就是 ezproxy 但是這個比較重並且主要用的就是圖書館() 自己用的話自己 web 服務器反向代理加認證就好了 |
17
mali2002 2023-10-05 15:45:47 +08:00 1
飞塔的 sslvpn 有一个网页的 portal 可以实现,但是似乎对 ws 这类新协议兼容性不是很好,这个帖子里也有很多类似的,但似乎都没有集成认证,不知道实际体验怎么样。
https://v2ex.com/t/932851 |
18
andyben 2023-10-05 16:05:48 +08:00
同求
|
19
andyben 2023-10-05 16:07:57 +08:00
同求,我知道目前商业产品做的比较好的是 sxf ,虽然知道原理就是反代。但是不知道有没开源的 webvpn ,可以比较好实现 用户权限管理和站点配置等这些
|
20
adoal 2023-10-05 17:07:48 +08:00 4
@ysc3839 不,我就是在大学里工作的,知道你说的 EasyConnect 是啥玩意,深信服的 SSL VPN 嘛,但我说的是 [
这几年] 大学里普遍新上的另一个系统,纯 web 的,登录进去之后有一个清单是校内资源/对校园网出口 IP 授权的学术资源,也可以自己输入 URL ,这个系统只是为了让麻瓜用户好理解而取名“WebVPN”,其实并不是任何技术意义上的 VPN ,实际是对取来的页面里 URL 做了精致改写的反代。OP 说的应该就是这玩意。 另,“Web 上安装 VPN 插件”是我表述不严谨,你明白是啥就行。另另,虽然现在主流浏览器都不支持第三方插件了,但是类似 EasyConnect 这种 SSL VPN ,登录进去之后是会让你下载客户端安装的……好吧我按你的严谨说法不叫它插件,但要用 EasyConnect 必须要安装,而且安装好的会在浏览器里搞一个 extension 进去,下次你在网站登录后,这个 extension 会运行起来触发 EasyConnect 的客户端运行以接入内网并接管 DNS 等某些配置。不管我叫它“Web 上安装 VPN 插件”还是你叫它“不存在“Web 上安装 VPN 插件””,反正是从 Web 提示你的,安装是一定要安装的,插是必须要插的,贱也是无奈一定要犯的。所以,这个玩意的称呼,你有啥一目了然的好建议? |
21
kdwnil 2023-10-05 17:16:59 +08:00 1
补充楼上说的”近几年大学里普遍新上的另一个系统”,应该是这个: https://www.wrdtech.com/content/content.php?p=2_30_203 ,前两年它的官网还提供过镜像下载,不过激活需要去申请 key ,所以有镜像也用不了
|
22
butanediol2d 2023-10-05 17:50:01 +08:00 via iPhone
我有类似的需求,现在用的是 jsproxy ,但是有时候也出问题,比如登陆之类的。
|
23
leo97 2023-10-05 17:54:05 +08:00 via Android
类似零信任,Okta 这种提供 Oauth 服务接入的吧,不是传统 VPN 了
|
24
leo97 2023-10-05 17:54:26 +08:00 via Android
本质就是搞个 OAuth 网关
|
26
docx 2023-10-05 19:26:38 +08:00 via iPhone
用过深信服的 webvpn
|
27
docx 2023-10-05 19:29:15 +08:00 via iPhone
看起来就是个反代,地址栏改改就能访问自己想要的其他地址了……
|
28
sduoduo233 2023-10-05 20:06:19 +08:00 via Android
https://hideip.network/
op 是不是要这种效果? |
29
ncepuzs 2023-10-05 21:44:29 +08:00
|
30
mikewang OP |
31
flynaj 2023-10-05 23:28:33 +08:00 via Android
楼主的需求 Firefox + HTTP2 代理就行。Glype 这种已经不能满足现在的互联网了。
|
32
busier 2023-10-05 23:30:33 +08:00 via Android
思想放开阔点!
Nginx 的 proxy_pass 后面可以跟变量的,给这个变量传不同值就可以灵活反代。 最简单的方法就是用自定义 http head 传这个值! |
33
sldaniel 2023-10-06 00:13:30 +08:00
关注,
之前一直想有一个方案可以不用客户端就能连回家里的网,实现车机访问家里的 plex 。 当时第一反应也是大学里用过的基于 web 的 vpn |
34
Fader10 2023-10-06 00:36:53 +08:00
不太清楚你说的具体是哪种
如果是 SSL VPN 带个 web 管理界面的话可以看一下 OpenVPN Access Server 如果说的是类似于 cloudflare zero trust 加的一个认证界面的那种的话可以看一下开源的 goteleport |
35
dusu 2023-10-06 01:04:49 +08:00 via iPhone 2
看看 m1k1o/neko 项目看满足需求么
|
37
01802 2023-10-06 07:45:37 +08:00 via Android
还不如直接 wireguard 后爱怎么连怎么连
|
39
uncat 2023-10-06 10:30:14 +08:00
WireGuard 全平台兼容( Windows/iOS/Android/Linux/MacOS ),直接 systemd netdev 配置一个 WireGuard 虚拟设备就好了,现在基本所有的最新发行版的 systemd 都是内置支持 WireGuard 的了
我想在用的方案就是:WireGuard + FRP |
40
uncat 2023-10-06 10:49:07 +08:00
1. WireGuard 构建一个 VPN 网关,允许接入 VPN 的设备访问局域网网段中的任何设备(比如:192.168.188.0/24 )
2. VPN 网关运行在局域网内( 192.168.188.33 ),基于 FRP 暴露公网( 1.1.1.1 ) 3. 签发设备 WireGuard VPN 证书并分发证书到各个设备,证书对应的 VPN 网关服务器地址配置为 FRP 暴露后的公网地址( 1.1.1.1 ) 4. 各个设备安装 WireGuard ,载入证书,连接 VPN 网关后,即可访问局域网中所有设备 可以用来组件自己的虚拟办公网络,实现远程办公。局域网内配合虚拟化和网桥(让虚拟机具备跟物理机类似的局域网 IP )可以释放巨大的生产力(比如:自建大量的基础服务,gitLab/miniflux/xray/jira/vscode remote-ssh/transmission/vaultwarden/loki/grafana/prometheus/k8s/pg/mysql/rsshub/jellyfin/mitmproxy/keycloak ,每台虚拟机一个服务) |
41
vvhy 2023-10-06 16:27:49 +08:00 1
这个可以参考一下 https://github.com/EtherDream/jsproxy ,不过也不完美
|
42
patrickyoung 2023-10-07 00:23:01 +08:00
|
43
friparia 2023-10-07 09:36:00 +08:00
方案原理大概是前端劫持了浏览器 js 的相关 api ,在涉及到所有和 URL 相关的地方做自动化替换
实际上和 https://github.com/EtherDream/jsproxy 差不多,但是是服务器端的 |
44
Kinnice 2023-10-07 10:32:04 +08:00
要不换个思路,敲门模式,野路子 webvpn ,无需反代
0. 随便糊个后端,部署在你需要被 webvpn 访问的机器上,使用 iptables/ufw ,除了管理端口,其他端口的包全部 drop 1. 糊一个公开的 web 段提供 auth ,auth 成功后把当前/24 的 ip 段加到你的 [需要被访问的 iptables accept 列表中] 2. 如果 n 分钟没有新连接、手动断开,就删除这个 accept 规则 more: 切换 ip 后,web 如果还在通过 websocket/轮询,更新新的 ip |
45
d460686680 2023-10-07 14:55:02 +08:00
发现一个你说的这玩意 https://github.com/Hideipnetwork/hideipnetwork-web/tree/dev
试了下 除了套 cf 盾的其他都好使 |
46
yg503 2023-10-10 14:42:24 +08:00
https://github.com/NginxProxyManager/nginx-proxy-manager
https://github.com/k8scat/lua-resty-feishu-auth 我们的需求是把公司内的一些 web 服务暴露到公网,想通过钉钉控制只有企业内的人访问,基于这个开源的 lua 适配了钉钉 API ,搭配 https://github.com/liftoff/GateOne 也能实现 shell 功能。 |
47
DIO 142 天前 via Android
请问 op 现在在用什么好的方案吗
|
49
MFWT 140 天前 via Android
我也在考虑类似的玩意,最大的痛点其实是前端链接的改写,因为浏览器不知道你这个是代理,所以光做后端反代(包括楼上说到传递变量给 nginx 的 proxy_pass )没有用,对于页面中的外链(不同域名)和带主机的链接,浏览器在前端就发走了,根本不会发往你的代理服务器
在后端收到内容之后提前嗅探并改写数据流中的链接是个方法,但是覆盖面不够(比如前端动态生成资源地址的完全没辙),性能消耗也大。比较通用的方法是前端尽可能用 js 改写掉所有有可能发起请求的函数(比如 XMLHTTPRequest ,fetch ,扫描并嗅探所有 html 标签的 src/href 属性值),但是我不确定浏览器允不允许这么干,或者说有些请求会不会覆盖到? |
50
MFWT 140 天前 via Android
另外就是,学校或者企业用 webVPN 比较多的原因是,这种位于内网的网站很多都是自己部署且仅面对内网的(比如内部 OA ,学校在线图书馆),很少存在外站链接,所以实现起来比较简单,也是最早应用起来的
此外就是,这种部门信息化比较早,『适配 IE6.0 』这个笑话大概也就是起源于此。IE 浏览器最大的杀手锏其实是 ActiveX 控件,这玩意近似理解就是前端可以很方便执行原生二进制文件,可玩空间就高很多,说是说 clientless ,但实际上只是自动下载部署了个很小体积的客户端(在华为那边这个就是 Web Link 模式的 SSL VPN )。可惜现在 IE 已经作古,ActiveX 也被放弃,现代浏览器呢,又越来越强调沙盒化,这种玩法也就没落了 |