工具人小良 · 内网穿透软件 简介
这是一套开源免费、AI 智能体(通过 MCP)都能使用的 TCP 内网穿透工具。它基于 Go 语言采用 C/S 架构,
由公网服务端 nattserver 和内网客户端 nattuser 组成。
服务端负责公网监听、客户端授权、隧道状态和流量统计;客户端负责连接服务端、绑定本地目标服务,
并把公网访问流量转发到内网 TCP 服务。
当前版本v0.1,只支持 TCP 端口穿透,不包含 UDP、HTTP 域名转发、P2P 打洞。
百度网盘链接(提取码: 6666): https://pan.baidu.com/s/1SvAqFQfEbizim0t7q6beeQ
GitHub:https://github.com/gongjuliang/xiaoliang02
GitCode:https://gitcode.com/gongjuliang/xiaoliang02
logs/audit/YYYY-MM-DD.jsonl。服务端 默认运行时母目录:
客户端 默认运行时母目录:
默认启动只读取上述母目录中的 config.json。显式传入 -config <path> 时仍支持
.json、.yaml、.yml。
服务端:
| 用途 | 默认值 |
|---|---|
| Web 管理后台 | 0.0.0.0:25510 |
| MCP 接口 | 0.0.0.0:25510/mcp |
| 客户端控制连接 | 0.0.0.0:25511 |
| 客户端数据连接 | 0.0.0.0:25512 |
| 公网映射端口范围 | 0-65535 |
客户端:
| 用途 | 默认值 |
|---|---|
| Web 管理后台 | 127.0.0.1:25520 |
| MCP 接口 | 127.0.0.1:25520/mcp |
| 默认服务端控制端口 | 25511 |
| 默认服务端数据端口 | 25512 |
启动前会检查本机监听端口是否被占用。服务端检查 Web、控制、数据端口;客户端检查本机 Web 端口。
cd 项目文件夹路径\nattserver
go run .
首次启动访问:
http://127.0.0.1:25510/init.html
初始化页分两步:
cd 项目文件夹路径\nattuser
go run .
首次启动访问:
http://127.0.0.1:25520/init.html
客户端初始化时只配置默认控制端口和默认数据端口,不配置默认服务端地址。 服务端地址在新增隧道连接时填写。
cd 项目文件夹路径\nattserver
go run . -config xiaoliang02_server\config\config.json
cd 项目文件夹路径\nattuser
go run . -config xiaoliang02_user\config\config.json
cd 项目文件夹路径\nattserver
go build -p 1 ./...
cd 项目文件夹路径\nattuser
go build -p 1 ./...
编译后的 exe 放到空文件夹直接启动时,程序会以 exe 所在目录作为工作目录,
并自动创建 xiaoliang02_server/ 或 xiaoliang02_user/。
nattserver。nattuser。隧道归属规则:
nattserver 管理公网监听端口、状态、秘钥和流量。nattuser 管理服务端地址、服务端端口、隧道秘钥和本地目标。两端 MCP 都使用标准 Streamable HTTP JSON-RPC:
POST http://<host>:<port>/mcp
鉴权方式:
Authorization: Bearer <MCP_KEY>
或:
X-MCP-Token: <MCP_KEY>
支持方法:
initializenotifications/initializedpingtools/listtools/call服务端常用工具:
server.list_clientsserver.get_clientserver.list_tunnelsserver.create_tunnel(省略 auto_start 时默认 true,创建后进入待连接状态)server.start_tunnelserver.stop_tunnelserver.delete_tunnelserver.get_dashboard客户端常用工具:
client.list_tunnel_connectionsclient.list_serversclient.create_tunnel_connectionclient.delete_tunnel_connectionclient.connect_tunnelclient.connect_serverclient.disconnect_tunnelclient.disconnect_serverclient.list_tunnelsclient.get_network_status
客户端新增隧道连接工具参数: name、server_host、client_secret、local_host、local_port 为必填;
server_port、data_port 可省略,省略时使用客户端配置里的默认控制端口和数据端口。
工具发现示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
工具调用示例:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "server.list_tunnels",
"arguments": {
"page": 1,
"page_size": 20
}
}
}
服务端:
cd 项目文件夹路径\nattserver
go test ./... -count=1 -p 1
go build -p 1 ./...
客户端:
cd 项目文件夹路径\nattuser
go test ./... -count=1 -p 1
go build -p 1 ./...
如果 Windows 下测试临时 exe 被占用,可以设置独立 GOTMPDIR 后重试。
skills/xiaoliang02-natt/SKILL.mdskills/xiaoliang02-natt/references/project-map.mdGitCode:
https://gitcode.com/gongjuliang/xiaoliang02
本软件默认基于 GNU Affero General Public License v3.0 (AGPL-3.0) 开源协议发布。 除非您符合下面的第 2 条规定的例外条件能获得MIT开源协议,否则您的使用、修改、分发行为均受 AGPL-3.0 约束。
AGPL-3.0 协议全文见项目根目录下的 LICENSE 文件,或访问:
https://www.gnu.org/licenses/agpl-3.0.html
在同时满足以下全部条件时,您自动获得本软件的 MIT 开源协议 授权:
注:企业或个体工商户需要联系开发者本人获取 MIT 开源授权书,否则请遵循 AGPL-3.0 开源协议。
免责声明 及 AGPL-3.0 协议共同构成完整的许可条款。冲突时优先级如下:
© 工具人小良 · 小良内网穿透