jaxiu He
Home
博客
动态
关于
jaxiu He
Categories
技术 (53)
项目分析 (17)
架构设计 (10)
Ai工具 (8)
教程 (3)
Ai (2)
技术实践 (2)
源码解析 (2)
运维 (2)
Ai应用 (1)
Blog (1)
Devops (1)
前端 (1)
安全 (1)
应用案例 (1)
开发指南 (1)
开源项目 (1)
总结 (1)
效率工具 (1)
智能客服 (1)
系统设计 (1)
自动化 (1)
Featured Tags
nps (18)
go语言 (15)
ai (13)
deepchat (13)
qwen code (9)
架构设计 (8)
todoing (7)
内网穿透 (6)
开源项目 (6)
electron (5)
开发工具 (4)
教程 (4)
服务端 (4)
docker (3)
git (3)
mongodb (3)
node.js (3)
多平台 (3)
客户端 (3)
架构 (3)
Recommend Series
Qwen Code实践 (1)
开源项目 (1)
Blogs
58 posts
««
«
16
17
18
19
20
»
»»
NPS 代理实现:TCP 隧道与 HTTP 代理
Jul 18, 2025
4 minutes read
引言 在上一篇文章中,我们深入探讨了 nps/server/proxy/base.go 中定义的通用代理基础和流量控制机制。本篇文章将聚焦于 NPS 最常用也是最基础的两种代理模式:TCP 隧道和 HTTP 代理。我们将通过分析 nps/server/proxy/tcp.go 文件,揭示这两种模式的具体实现细节。 tcp.go:TCP 隧道与 HTTP 代理的实现 tcp.go 文件主要定义了 TunnelModeServer 结构体,它是实现 TCP 隧道和 HTTP 代理的核心。此外,该文件还包含了 WebServer 结构体,用于启动 NPS 的 Web 管理界面。 TunnelModeServer:通用隧道模式服务器 TunnelModeServer 结构体继承了 BaseServer,并增加了两个特定于隧道模式的字段: type TunnelModeServer struct { BaseServer process process listener net.Listener } BaseServer:继承了 base.go 中定义的通用功能,如流量统计、安全检查等。 process process:这是一个函数类型 type process func(c *conn.Conn, s *TunnelModeServer) error,它定义了如何处理传入的客户端连接。不同的代理模式会传入不同的 process 函数。 listener net.Listener:用于监听传入连接的网络监听器。 NewTunnelModeServer() 函数用于创建并初始化一个 TunnelModeServer 实例。 ......
技术
项目分析
NPS
TCP代理
HTTP代理
Go语言
内网穿透
NPS 代理实现:通用基础与流量控制
Jul 18, 2025
5 minutes read
引言 在 NPS 服务端核心解析中,我们了解了 server.go 如何作为服务端的“大脑”,协调各项任务。本篇文章将深入 NPS 的代理实现细节,从 nps/server/proxy/base.go 文件入手,剖析所有代理服务共用的基础结构、接口定义以及流量控制、安全检查等通用逻辑。理解这些通用组件,有助于我们更好地把握 NPS 多样化代理模式的实现原理。 base.go:代理服务的基石 base.go 文件定义了 NPS 中所有代理服务的基础抽象和通用功能。它确保了不同代理模式(如 TCP、UDP、SOCKS5、HTTP 等)能够遵循统一的接口规范,并共享一些核心的辅助功能。 ......
技术
项目分析
NPS
代理
Go语言
流量控制
安全
NPS 服务端核心解析:架构与流量管理
Jul 18, 2025
6 minutes read
引言 在 NPS 项目概述中,我们对这款强大的内网穿透工具进行了宏观的介绍。本篇文章将深入 NPS 的服务端(Server)核心,从 nps/server/server.go 文件入手,详细剖析其架构设计、任务管理、流量处理以及系统监控等关键功能。理解 server.go 的运作机制,是掌握 NPS 核心原理的基石。 server.go:服务端的"大脑" server.go 文件是 NPS 服务端的启动入口和主要协调者。它负责初始化各项服务、管理客户端连接、调度隧道任务以及收集系统运行状态。 核心组件概览 在 server.go 中,我们可以看到几个关键的全局变量和结构: Bridge *bridge.Bridge:这是服务端与客户端之间通信的核心桥梁。它负责维护客户端连接、处理客户端发送的指令以及转发数据。 RunList sync.Map:一个并发安全的 Map,用于存储当前正在运行的所有隧道(proxy.Service 实例)。通过 sync.Map,NPS 能够高效地管理和访问多个并发的隧道服务。 once sync.Once:用于确保某些初始化操作(如 flowSession)只执行一次。 NPS 服务端核心组件架构可以用下图表示: ......
技术
项目分析
NPS
服务端
架构
流量管理
Go语言