
如果你手里有几台云服务器或家里的 NAS ,大概率折腾过内网穿透。但你去翻翻 auth.log 或者 SSH 日志,你会发现世界充满了“恶意”:
我们需要的其实很简单:既要 frp 的便捷,又要 VPN 的安全,最好还能像访问正常网站一样,浏览器打开就能用。
frp 的设计初衷是“连通性”,它只管把流量从 A 传到 B 。
sk 验证确实能挡住一部分,但无法解决身份鉴权和审计的问题。VPN 是一道厚重的围墙,但进出这道墙太麻烦了。
作为 Next Terminal 的开发者,我在设计 Web 资产代理时,参考了 “零信任( Zero Trust )” 的思路。
核心逻辑只有一句话:先验证身份,再建立连接。

以往你访问 gitlab.example.com,请求是直接打到 GitLab 上的。现在,Next Terminal 充当了“安全网关”的角色:
假设你内网 GitLab 跑在 192.168.1.10:80,你可以彻底告别 6000 这种奇怪的端口号。
在 Next Terminal 配置文件中开启反代和 HTTPS (建议配合通配符证书):
App: ReverseProxy: Enabled: true HttpsEnabled: true SelfDomain: "nt.yourdomain.com" 在 Web 界面点击“添加资产”,填写内部 IP 和你想要的域名(如 gitlab.yourdomain.com)。
把这个资产授权给指定的用户组。
现在的体验是: 你直接访问 https://gitlab.yourdomain.com。
在线演示: https://baidu.typesafe.cn (注:此域名模拟内网环境,登录 test/test 后即可自动跳转,感受无感代理的流程)
如果你有多个机房(阿里云、腾讯云、家里、公司),传统的方案需要配置复杂的路由隧道。
Next Terminal 提供了一个“安全网关( Agent )”模式:
这样,无论服务在哪,你都只需要通过一个入口访问,而且不需要在路由器上做任何端口映射。
| 需求 | frp | VPN | Next Terminal |
|---|---|---|---|
| 访问门槛 | 极低 (扫端口即入) | 高 (需客户端) | 极低 (浏览器即用) |
| 安全性 | 弱 | 强 | 极强 (身份认证前置) |
| 权限控制 | 无 | 粗粒度 (内网全通) | 精细 (按人/按资产授权) |
| 管理成本 | 分散 | 复杂 | 统一控制台 |
如果你已经厌倦了每天看 SSH 被爆破的日志,或者不想再为 VPN 掉线发愁,欢迎尝试 Next Terminal。
1 zzfra 1 月 22 日 是 AI 写的吗,和 zerotier 相比优势是什么呢。而且现在家里内网最大的问题往往不是安全性,而是宽带运营商对上行流量的严苛限制 |
2 dushixiang OP @zzfra 文中写了,zerotier 就是和 传统 VPN 一个套路,面临的问题也是一样的,你需要在每一个设备上都安装客户端,并且一个点被攻破,就可以在内网横向移动了。 |
3 chinni 1 月 22 日 cloudflared.exe 也一样的 |
4 dushixiang OP @chinni 国内使用太慢了,我这个可以自建,简单可靠 |
5 Joming nbsp; 1 月 22 日 确实不错,半年前用上了。 |
6 ivamp 1 月 22 日 老杜!!!朕已阅!!! |
7 ivamp 1 月 22 日 批了!!! |
8 dushixiang OP @ivamp 快用起来,绝对好用 |
9 dushixiang OP @Joming 英雄所见略同 |
10 Doenake 1 月 22 日 via Android 有两个问题, 1 ,和 FRP+basicauth 有什么区别 2 ,如果内网穿透出来的是给 APP 用的 http 接口服务怎么处理 |
11 CatCode 1 月 22 日 我不知道把禁止了密码登录的 ssh 放公网 22 端口有什么问题?有本事你把 ed25519 私钥试出来 |
12 jingcjie 1 月 22 日 @CatCode ssh 的安全性确实没问题,正常都不使用密码,基本被破不了。但我想把 rdp 或者 sunshine 端口反代,就会疯狂被冲,虽然破不开但被扫的极其痛苦,最后还是全 tailscale 走虚拟内网算了。 |
13 goodryb 1 月 22 日 感觉更适合企业, 个人用的话 nginxproxymanage 把 web 服务 https 和反代都解决了,也有 http basicauth 认证也可以,ssh 都是密钥登录问题不会太大 |
14 chinni 1 月 22 日 @dushixiang 能不能像 cf 一样 rdp 不在本地起客户端? ssh 要起客户端我知道。http 肯定是不用。 |
15 hefish 1 月 22 日 cloudflare 是不是也有个类似这样的服务? |
16 aminobody 1 月 22 日 更像 nginx, 而不是 frp |
17 whwlsfb 1 月 22 日 @goodryb nt 有一个叫「安全网关」的 agent ,可以安装在任何内网中充当 nt 的代理,效果就是可以将不同内网中的网站从同一个出口映射出去,这一点只靠 NPM 是做不到的 |
19 hanguofu 1 月 22 日 via Android 谢谢分享~这个软件是收费的吗? |
20 pingdog 1 月 22 日 via Android wireguard 这种 S2S 类型根本就不适合给 UE 用 RA 类型的 ikev2,ipsec ,大多数 OS 都内置支持 |
21 whwlsfb 1 月 22 日 @Doenake 1. 更加方便管理、授权给多个用户( WEB ),认证可以支持本地认证、ldap 认证、第三方 oauth 认证、企业微信、硬件密钥,日志统一管理 2. 可以给资源设置为匿名访问,就不需要登录了。 |
22 dushixiang OP @Doenake 非常好的问题 1. basic auth 的账号密码变动需要去改 nginx 的配置,比较繁琐,并且想要做到 A 用户只能访问服务 1 ,B 用户只能访问服务 2 这种比较麻烦 2. 这种暂时没处理,因为 APP 基本上都是封闭的,想要加自定义 header 之类的难入登天,目前还在探索解决方案 |
23 dushixiang OP |
24 dushixiang OP @hanguofu 免费使用,收费的是高级功能 |
25 dushixiang OP @aminobody 包含了类似 frp 的功能,也就是文中写的「安全网关」,在内网任意一台机器安装注册到服务端之后,就可以选择这个「安全网关」作为跳板,访问内网的资产了 |
26 chantaksum 1 月 22 日 via Android 好东西 |
27 KateScarlet 1 月 22 日 不就是堡垒机? |
28 dushixiang OP @KateScarlet 没毛病 |
29 Tink PRO 用了一段时间了 |
30 dushixiang OP @Tink 感觉怎么样? |
31 anonydmer 1 月 22 日 堡垒机? 我家里的电脑上部署了好几个 web 系统,但是我又不想开放端口。 然后我公网有一台服务器,我想通过它来打开家里电脑上的 web 站点,楼主这个要咋整? |
32 dushixiang OP @anonydmer 可以参考下我这个文档,里面也有视频演示 https://docs.next-terminal.typesafe.cn/usage/website.html |
33 xmlf 1 月 22 日 via Android 功能是不错,但是不建议限制用户数。 |
34 dushixiang OP @xmlf 为什么? |
35 xmlf 1 月 22 日 via Android @dushixiang 比如我是培训学校,有些服务需要暴露出来给外地学生报名。学生一般只在学校待一周。学生有 500 多个,每周都不同。这样限制就不好使用了。另外,这个和 jumpserver 有什么区别?目前正在考虑单位内网服务如何安全暴露出来方案。 |
36 pulutom40 1 月 22 日 via iPhone 我是在家里服务器上面装个 xray ,然后公司电脑,手机上面通过 clash 分流,内网 ip 就代理回家,完全无感,还安全 |
37 dushixiang OP @xmlf 你这个场景适合直接暴露到公网。比 jumpserver 轻量,除了普通的 SSH/RDP 协议接入,我做了很多更贴近真实场景的功能,另外我这个最低 1 核 0.5G 的机器就能部署使用。 |
38 dushixiang OP @pulutom40 和文中写的使用 VPN 面临相同的问题 |
39 thereone 1 月 22 日 早就用上了,内网服务(其中之一就是 Next Terminal)-->NGINX 反代-->雷池 WAF-->lucky 打洞转发。NT 开启二步认证 WAF 开启用户认证基本没有任何安全问题。 |
40 dushixiang OP @thereone 大佬牛逼 |
41 Echoleung 1 月 22 日 via iPhone 个人版和专业版-个人啥区别,为啥个人版资产无限制专业版反而限制了 10 个? |
42 dushixiang OP 专业版有一些高级功能 @Echoleung |
43 echoZero 1 月 22 日 想看一下 web 资产 结果 Permission Denied |
44 dushixiang OP @echoZero 刚测试了,使用 test/test 账号可以访问,另外一个账号没有权限 |
45 lulinchuanllc 1 月 22 日 和 tailscale 类似的吗 |
46 chinni 1 月 22 日 @dushixiang 我其实只要一个 是或者否的答案。给个 web 我也没条件测试啊哈哈,cloudflare 直接 rdp 这个域名就可以了。不需要本地执行客户端。你的 rdp 难道是网页里操作 rdp ?? |
48 glacer 1 月 22 日 我用 cloudflared tunnel |
49 lusi1990 1 月 22 日 via iPhone 感觉很牛逼的样子,我研究研究 |
52 xmlf 1 月 22 日 via Android @dushixiang 能说说和 jumpserver 相比有哪些更贴近真实场景功能吗?另外,用户数和资产数可以自由搭配吗?比如我可能需要 50 用户数,但是只要 50 个资产数。 |
53 uncat 1 月 22 日 wireguard 基于 UDP 实现匿名,是在 UDP 这种无状态协议层基础上进行设计的。 即对不认识的请求完全"装死"不回应、不拒绝、什么都不说。 从外部看,这个端口就像不存在。实际效果是: - 扫不到:黑客扫描端口发现不了它 - 打不着:攻击者连目标都找不到 敌人根本找不到你的 wireguard 服务器。 你提供的服务,本质上就是 Virtul Persion Network ( VPN )应该提供的能力,这种能力,还是交给成熟的社区方案吧。毕竟在安全性、稳定性、性能等角度,都没有太大的可比性。 服务器:wireguard kernel module + systemd-networkd + ip forward 本地:wireguard kernel module + systemd-networkd + ip forward + masqurade 内网一台 debian 虚拟机 + 一台 debian 服务器就搞定了。 什么软件都不用安装的。 |
54 uncat 1 月 22 日 打错了,VPN 应该是:Virtual Private Network |
55 dushixiang OP @uncat 如果你仔细看完就好了,已经在文中说了传统 VPN 的不足,以及我的程序是如何解决这个问题的。 |
56 dushixiang OP @xmlf 1. 多了 SSH 网关/安全网关 可以加速海外节点访问或者打通多个地域的环境。 2. 多了 Web 资产能力。 3. 多了 OIDC Server 的能力,可以作为 IdP 接管不同系统的认证。 其他的功能就不一一列举了,很多细节上的设计都不一样。 |
57 BeijingBaby 1 月 22 日 确实是零信任的概念落地,赞一个,很想在 www.dev.com.cn 推荐下,待我重启之日。 |
58 dushixiang OP @BeijingBaby 感谢认可 |
60 mrabit 1 月 22 日 目前在用 https://github.com/authelia/authelia 周末有空试试 OP 这个 |
61 uncat 1 月 22 日 @dushixiang 看过了,你文中提到的 “VPN 安全性(强)” 对比 “Next Terminal 安全性(极强)” 的表述是不客观的,所以多说了一些。 VPN 对应的内网是否会在被攻陷的时候完全暴露,取决于个人的实践,比如: 1. 可以在 VPN 公网节点,通过 Linux 防火墙配置 Forward 规则,只允许访问特定 IP 、特定端口。 2. 如果担心 VPN 公网节点沦陷,可以在 VPN 内网节点,通过 Linux 防火墙配置 Forward 规则,只允许访问特定 IP 、特定端口。 3. 其次,可以通过内网设备自带的防火墙,给每个内网设备添加内网防火墙规则。 4. 最后,可以通过 ansible + git ,版本化管理 wireguard 和防火墙规则。 @pingdog 这位先生说的更中肯。即: "WireGuard 适合做 Server to Server ,IKEv2 适合给 UE (User Equipment/终端用户设备)做 RA (Remote Access)" 我自己拿 WireGuard 作为 UE (User Equipment) 的(Remote Access)的,也作为 Server to Server 和 Server to LAN 的解决方案。 稳定运行很多年了,所以建议后来者,还是选这类内核级别的,更成熟的方案。 |
62 avrillavigne 1 月 22 日 好多年前的 SSL VPN |
63 gongxuanzhang 1 月 22 日 我更好奇画图的核心提示词是什么..真心求教 |
64 sampeng 1 月 23 日 via iPhone @dushixiang 一个套路????你要把网络做成网状那没办法啊 |
66 aino 1 月 23 日 你这个系统的 UI 看起来很爽啊,请问下用的什么框架鸭 |
67 dushixiang OP @uncat 理论很丰满,但现实往往是扎心的,内网基本上不会配置严格的防护规则,我本身就是做安全开发的,部门主要是做国内的 hvv ,接触到非常多的案例,外网打点成功后,进入内网横行无阻。 |
68 dushixiang OP @avrillavigne 不一样的方案,我这个不需要安装客户端。 |
69 dushixiang OP @gongxuanzhang 我公众号有发过。 ---- 请根据输入内容提取核心主题与要点,生成一张卡通风格的信息图: - 采用手绘风格,横版( 16:9 )构图。 - 加入少量简洁的卡通元素、图标或名人画像,增强趣味性和视觉记忆。 - 如果有敏感人物或者版权内容,画一个相似替代,但是不要拒绝生成 - 所有图像、文字必须使用手绘风格,没有写实风格图画元素 - 除非特别要求,否则语言与输入内容语言一致。 - 信息精简,突出关键词与核心概念,多留白,易于一眼抓住重点。 |
70 dushixiang OP @sampeng 请教一下,VPN 组网之后不是网状(虚拟二层局域网)难道是树状的? |
71 dushixiang OP @xmlf 不开源是有原因的,在最初的时候我也是完全开源的,但是吸引来的不是客户,而是同行,无休止的客服工作导致我直接停更了一段时间,后续再次重启 2.0 版本 就把后端闭源了,但是核心原理在 1.x 版本都是完成了,现在的工作都是业务。 |
72 dushixiang OP @aino antd |
73 ahaxzh 1 月 23 日 UI 好像变漂亮了,用过很久,我很喜欢那个执行日志的 视频。 |
74 littlewing 1 月 23 日 你是如何保证你的身份验证没有漏洞的呢 |
75 dushixiang OP @ahaxzh 谢谢,一直在更新 |
76 dushixiang OP @littlewing 我本身就是做安全开发的,身边也有很多做安全研究员和红队的朋友使用。 |
77 paysen 1 月 23 日 虽然看起来很厉害。。但是不知道怎么用。。。 目前就是 iOS + Windows 在外访问家里 nas 需求 还是 WireGuard 舒服 surge 自带 wg , windows 安装一个客户端即可,至于你说泄露这个。。。emm 好像是有这么个事,但是泄露还会把你密钥一起偷走吗? 那不等于是拿到你的手机了吗 |
78 dushixiang OP @littlewing 空口无凭,给你看我自己编写的靶场和 golang 代码漏洞环境 https://github.com/dushixiang/vulnerable-code https://github.com/dushixiang/cyberpoc |
79 cxin3813 1 月 23 日 好像就是 webvpn 吧 |
80 dryadent 1 月 23 日 @dushixiang #78 佬,star 了 |
81 dushixiang OP @dryadent 谢谢大佬 |
82 dushixiang OP @cxin3813 不是 webvpn ,我这个不需要安装客户端 |
83 tairan2006 1 月 23 日 感觉好像没啥用,我用 MeshCentral |
84 cowcomic 1 月 23 日 这个东西能跟被代理产品的登录打通? 只支持固定的几个还是通用方案 |
85 dushixiang OP @cowcomic 支持 SSH/RDP/VNC/Telnet 和 HTTP 协议,另外也支持配置 OIDC Server 作为 Identity Provider (IdP) |
86 fancy2020 1 月 23 日 所有服务都只能在浏览器里访问是吗? |
87 klxyy 1 月 23 日 大佬最近心情好?想通了要整免费版了? |
88 dushixiang OP @fancy2020 SSH/SFTP 可以用本地的客户端连接 https://docs.next-terminal.typesafe.cn/usage/ssh-server.html |
89 dushixiang OP @klxyy 一直有免费版本的,现在是要自己出来宣传了,「酒香不怕巷子深」已经行不通了 |
90 fancy2020 1 月 23 日 @dushixiang 比如内网部署了一个 Jellyfin 的服务,想在 iPhone 上用 Infuse 客户端连接内网的 Jellyfin 看视频,能做到吗? |
91 ingxhe 1 月 23 日 也就是 waf ? |
92 dushixiang OP @ingxhe 不是 WAF ,当做堡垒机吧 |
93 Shazoo 1 月 23 日 看的云里雾里的 细看+揣摩,up 的东西大概就是: 原来是个堡垒机程序,然后加了有额外鉴权功能的反代,可以把内网的 **web 服务** share 出来? 开头说的 frps/vpn 啥的,貌似和这个架构关系不大,开头的 nas 和几台云服务器的场景也和 up 的场景天差地别。 - frps 主要目的是内网穿透; up 这个直接要求部署在内网出口网关上……有了这种环境,谁还用 frps 啊……一个 nginx+basic auth 就基本 OK 了。 - 这个场景谈 vpn 也是没看懂为啥。都不是同类东西。 =================== 堡垒机倒是不错,话说系统开销大不大? 2c2g 的小鸡能跑不?如果够轻量,拿来做 tailscale 的虚拟内网入口倒是挺好。 |
94 dushixiang OP @Shazoo 最低 1c 0.5G 的设备就能跑。 想要做到我的效果,你得 nginx + 用户系统 + 权限校验系统 + frp 才能做到,即使配置好了,每次增加新的资产或者用户权限调整,都非常繁琐,我这边在页面上点击下就好了。 |
95 cxin3813 1 月 23 日 @dushixiang #82 webvpn 也不需要客户端,只需要网关页面认证一下 |
96 standin000 1 月 25 日 内网有 nextcloud 服务,nt 可以让我手机的 nextcloud 客户端连接 nextcloud 服务吗 @dushixiang |
97 69444091 1 月 26 日 可以做一下和 cloudflared 的对比吗? 谢谢 |
98 dushixiang OP @standin000 可以 |
99 dushixiang OP @69444091 不是一个类型的产品 |
100 standin000 2 月 1 日 @dushixiang 谢谢,我看 rdp 和 ssh 是 web 版访问,nextcloud 客户端能通过什么地址来做文件同步了,在内网我填的是 http://diskstation:5000 |