内网穿透选frp还是nps_内网多重穿透管理工具

2025-02-1413:10:51经营策略0

曾经,我曾在家中的树莓派和香橙派上搭建了个人网盘、日记等服务,并使用frp和nps作为内网穿透代理工具。frp缺乏web控制台且配置稍显繁琐,而nps则不时出现无业务负载时cpu占用率飙升的问题。面对这些工具的使用痛点,我最终决定花费业余时间开发了一款轻量级的内网穿透代理工具——tiny-ws-tunnel,简称twt,以供自己使用。

其实现原理图详见下述功能特点:

  • 支持TLS安全传输
  • 服务端可前置nginx或caddy等反向代理,并支持TLS加密
  • Agent支持TLS验证,确保数据传输安全
  • Agent支持连接认证,保障连接的安全性
  • 在不使用TLS时,支持aes(aead)加密以保护数据传输
  • 具备数据流量统计功能,便于资源使用监控
  • 支持web api接口,方便进行远程管理
  • 进行了buffer调优,提升数据传输效率
  • 自带基于curl的管理工具脚本,简化管理流程
  • 支持在docker容器中运行,便于部署和管理
  • 经过时间验证的tcp代理以及正在测试阶段的udp(udp over tcp)代理功能

至今,tiny-ws-tunnel已稳定运行半年多,表现优异,资源占用极少,完全满足了我的个人需求,并已提供给公司使用。下面将简要介绍其使用方法,未来视情况考虑开源以供更多人使用。

该软件为绿色软件,只需下载解压即可安装使用。关于程序包目录结构及使用方法,请参考以下说明:

通常服务端会部署在具有公网IP或出口的设备上。启动服务端后,如果遇到相关错误日志提示,可通过twt脚本工具手动创建认证的agent密钥。添加认证的agent后,即可用于agent连接时的认证参数。

我们还可以在本地设备上启动agent,通常是在没有公网IP的内网设备上。指定agentId和key等参数后,即可与公网服务器建立连接。服务端通过相关命令可查看已连接的agent明细及状态信息。

通过将公网server端的地址端口映agent所在设备地址,我们实际上添加了一个代理,实现了内网穿透访问的目标。假设本地有一个httpbin的web服务在8077端口,我们可以在server机器上启动一个本地代理,将该端口映公网的8078端口上。

如果使用nginx或caddy等作为前置代理,并已配置正规的tls,tiny-ws-tunnel server则可利用前置代理的tls功能,以增强数据传输的安全性。这里提供了caddy的配置示例 Caddyfile供参祺考。

开发者或高级用户可以根据web api自行开发web控制台。比如我个人的web控制台界面就整合在了另一个web应用里。关于web api的详细文档后期将视情况补充。

我附上了自己另一个应用的web控制台两张截图,以供参考。感兴趣的读者可以访问我的个人blog了解更多关于tiny-ws-tunnel的详细内容和实用案例。

  • 版权说明:
  • 本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 295052769@qq.com 举报,一经查实,本站将立刻删除。