neutrino-proxy的管理后台功能详解
【免费下载链接】neutrino-proxy 中微子代理(内网穿透) 项目地址: https://gitcode.com/dromara/neutrino-proxy
本文详细解析neutrino-proxy管理后台的核心功能模块,包括用户权限体系、端口映射管理、License控制机制以及安全组配置。通过角色动态路由、端口池分组、流量监控报表等功能设计,展现其灵活可控的内网穿透解决方案。
用户管理与权限控制
neutrino-proxy的管理后台提供了完善的用户管理与权限控制功能,确保系统资源的安全性和可控性。以下将详细介绍用户管理与权限控制的实现细节和功能模块。
用户管理
用户管理模块支持多用户管理,每个用户可以持有多个License。目前项目主要面向个人版用户,因此权限分为管理员和游客两类:
- 管理员:拥有所有操作的权限,包括用户管理、License管理、端口映射配置等。
- 游客:仅具备只读权限,无法执行修改操作。
用户列表
用户列表展示了所有注册用户的基本信息,包括用户名、角色、状态等。管理员可以通过列表对用户进行增删改查操作。
// 示例:获取用户列表
export function userList() {
return request({
url: '/user/list',
method: 'get'
})
}
用户详情
点击用户名称可以查看用户详情,包括其持有的License信息、流量使用情况等。
// 示例:获取用户详情
export function userDetail(id) {
return request({
url: '/user/detail',
method: 'get',
params: { id }
})
}
用户创建与更新
管理员可以通过表单创建新用户或更新现有用户信息。创建用户时需要指定用户名、密码和角色。
// 示例:创建用户
export function createUser(data) {
return request({
url: '/user/create',
method: 'post',
data
})
}
权限控制
权限控制通过角色(Role)实现,每个用户分配一个或多个角色,系统根据角色动态生成可访问的路由表。
角色定义
- admin:超级管理员,拥有所有权限。
- editor:编辑者,具备部分操作权限(如端口映射配置)。
- guest:游客,仅具备只读权限。
权限验证
系统通过hasPermission函数验证用户是否具备访问某路由的权限:
function hasPermission(roles, permissionRoles) {
if (roles.indexOf('admin') >= 0) return true // 管理员直接通过
if (!permissionRoles) return true
return roles.some(role => permissionRoles.indexOf(role) >= 0)
}
动态路由生成
用户登录后,系统根据其角色动态生成可访问的路由表:
function filterAsyncRouter(asyncRouterMap, roles) {
return asyncRouterMap.filter(route => {
if (hasPermission(roles, route)) {
if (route.children) {
route.children = filterAsyncRouter(route.children, roles)
}
return true
}
return false
})
}
权限流程图
以下为权限控制的流程图:
用户流量报表
系统还提供了基于用户维度的流量统计功能,管理员可以通过报表查看每个用户的流量使用情况。
// 示例:获取用户流量报表
export function userFlowReport() {
return request({
url: '/report/userFlowReport',
method: 'get'
})
}
通过以上功能,neutrino-proxy的管理后台实现了灵活且安全的用户管理与权限控制机制,满足不同场景下的需求。
端口池与端口映射管理
在neutrino-proxy的管理后台中,端口池与端口映射管理是核心功能之一,用于实现内网穿透服务的高效配置与管理。通过端口池的统一管理和端口映射的灵活配置,用户可以轻松实现内网服务的公网访问。以下将详细介绍这两部分的功能与使用方法。
端口池管理
端口池用于统一管理服务器上的内网穿透端口资源,方便用户按需分配和使用。端口池的主要功能包括:
-
端口池列表
展示所有可用的端口池资源,支持分页查询和条件筛选。每项资源包含以下信息:- 端口号
- 端口状态(启用/禁用)
- 所属分组
- 创建时间
-
端口池操作
支持对端口池的增删改查操作:- 新增端口池:填写端口号和所属分组,快速添加新的端口资源。
- 编辑端口池:修改端口号或分组信息。
- 删除端口池:释放不再使用的端口资源。
- 批量删除:支持一次性删除多个端口池。
-
端口可用性检查
提供端口可用性检查功能,确保端口未被占用且可正常使用。
示例代码
// 获取端口池列表
fetchList(query) {
return request({
url: '/port-pool/page',
method: 'get',
params: query
})
}
// 新增端口池
createPortPool(data) {
return request({
url: '/port-pool/create',
method: 'post',
data
})
}
端口池状态管理
| 状态 | 描述 |
|---|---|
| 启用 | 端口可正常用于映射 |
| 禁用 | 端口暂时不可用 |
端口映射管理
端口映射是实现内网穿透的核心功能,通过将服务端的公网端口映射到客户端的本地端口,实现内网服务的公网访问。端口映射的主要功能包括:
-
映射列表
展示所有已配置的端口映射,支持分页查询和条件筛选。每项映射包含以下信息:- 服务端端口
- 客户端IP与端口
- 所属License
- 映射状态(启用/禁用)
- 创建时间
-
映射操作
支持对端口映射的增删改查操作:- 新增映射:配置服务端端口、客户端IP与端口,并关联License。
- 编辑映射:修改映射配置。
- 删除映射:移除不再需要的映射。
- 批量删除:支持一次性删除多个映射。
-
映射状态管理
支持动态启用或禁用映射,灵活控制内网服务的访问权限。
示例代码
// 获取端口映射列表
fetchList(query) {
return request({
url: '/port-mapping/page',
method: 'get',
params: query
})
}
// 新增端口映射
createPortMapping(data) {
return request({
url: '/port-mapping/create',
method: 'post',
data
})
}
端口映射状态管理
| 状态 | 描述 |
|---|---|
| 启用 | 映射生效,可正常访问 |
| 禁用 | 映射暂时失效 |
端口池分组
端口池分组是对端口池资源的进一步分类管理,支持以下分组类型:
- 全局分组:所有用户均可使用该分组下的端口。
- 用户分组:仅分组绑定的用户可使用该分组下的端口。
- License分组:仅分组绑定的License可使用该分组下的端口。
分组管理功能包括:
- 分组列表:展示所有分组及其类型。
- 分组操作:支持新增、编辑、删除分组。
示例流程图
通过上述功能,用户可以高效管理端口资源,灵活配置内网穿透服务,满足多样化的业务需求。
License管理与流量监控
在neutrino-proxy的管理后台中,License管理与流量监控功能是核心模块之一,主要用于管理客户端连接凭证(License)以及监控流量使用情况。以下将详细介绍这两个功能的设计与实现。
License管理
功能概述
License是客户端连接服务端的唯一合法凭证,每个License可以绑定多个端口映射,但同一时间只能被一个客户端使用。License管理模块提供了以下功能:
- License列表展示:支持分页、筛选和排序。
- License创建与更新:支持动态生成License,并设置有效期和启用状态。
- License重置:支持重置License的密钥,防止泄露。
- License绑定端口映射:支持为License分配端口映射。
代码实现
License管理功能主要通过以下API实现:
/license/page:获取License分页列表。/license/list:获取所有License列表(用于下拉框)。/license/auth-list:获取授权License列表。/license/create:创建License。/license/update:更新License信息。/license/update/enable-status:更新License启用状态。/license/delete:删除License。/license/reset:重置License密钥。
以下是一个License列表的Vue组件示例:
<el-table-column align="center" :label="$t('table.licenseName')" width="150">
<template slot-scope="scope">
<span>{{ scope.row.licenseName }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.licenseKey')" width="300">
<template slot-scope="scope">
<span>{{ scope.row.licenseKey }}</span>
</template>
</el-table-column>
流程图
流量监控
功能概述
流量监控模块用于统计和分析License的流量使用情况,包括:
- 实时流量统计:展示当天的上行/下行流量。
- 历史流量汇总:按天统计最近15天的流量数据。
- 月度流量明细:按月统计License的流量使用情况。
代码实现
流量监控功能主要通过以下API实现:
/report/license/flow-report/page:获取License流量分页报表。/report/license/flow-month-report/page:获取License月度流量明细报表。
以下是一个流量统计表格的Vue组件示例:
<el-table-column align="center" :label="$t('table.licenseName')" min-width="120">
<template slot-scope="scope">
<span>{{ scope.row.licenseName }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.flowUp')" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.flowUp }} MB</span>
</template>
</el-table-column>
表格示例
| License名称 | 上行流量 (MB) | 下行流量 (MB) | 总流量 (MB) |
|---|---|---|---|
| License1 | 1024 | 2048 | 3072 |
| License2 | 512 | 768 | 1280 |
状态图
通过以上功能,用户可以高效管理License并实时监控流量使用情况,确保服务的稳定性和安全性。
安全组与规则配置
在neutrino-proxy的管理后台中,安全组与规则配置是保障内网穿透服务安全性的重要功能模块。通过安全组和规则的灵活配置,管理员可以精确控制端口映射的访问权限,防止未授权的访问行为。以下将详细介绍安全组与规则的功能、配置方法以及实际应用场景。
安全组管理
安全组是端口映射的访问控制单元,用于定义一组端口映射的访问规则。每个安全组可以包含多条规则,规则定义了允许或拒绝的访问行为。安全组的主要功能包括:
-
创建安全组
管理员可以通过管理后台创建安全组,并为安全组指定名称和描述信息。创建完成后,可以将端口映射绑定到安全组中。 -
绑定端口映射
端口映射可以绑定到一个或多个安全组。绑定后,端口映射的访问行为将受到安全组规则的约束。 -
启用/禁用安全组
安全组可以动态启用或禁用。禁用后,绑定到该安全组的所有端口映射将无法访问。
安全组配置示例
以下是一个安全组的配置示例:
{
"groupName": "Web服务安全组",
"description": "用于管理Web服务的访问权限",
"enable": true
}
安全规则管理
安全规则是安全组的具体实现,定义了允许或拒绝的访问行为。每条规则可以包含以下内容:
-
规则名称
规则的唯一标识,便于管理员识别和管理。 -
规则内容
规则的具体内容,可以是IP地址、端口范围或其他访问控制条件。 -
规则动作
规则的动作可以是允许或拒绝。
安全规则配置示例
以下是一个安全规则的配置示例:
{
"ruleName": "允许内网访问",
"rule": "192.168.1.0/24",
"action": "allow"
}
安全组与规则的应用场景
-
限制访问IP范围
通过配置规则,可以限制只有特定IP范围的用户才能访问绑定的端口映射。 -
动态调整访问权限
管理员可以根据业务需求动态启用或禁用安全组,快速调整访问权限。 -
多租户隔离
在多租户场景下,可以为每个租户创建独立的安全组,实现访问隔离。
配置流程图
以下是一个安全组与规则配置的流程图:
通过以上功能,neutrino-proxy的管理后台提供了强大的安全组与规则配置能力,帮助管理员轻松实现内网穿透服务的安全管理。
总结
neutrino-proxy管理后台通过模块化设计实现了完整的服务治理能力:
- 基于RBAC模型的用户权限体系
- 端口池与映射的精细化管控
- License密钥与流量双维度监控
- 安全组规则驱动的访问控制 这些功能共同构建了安全高效的内网穿透管理平台,满足企业级场景需求。
【免费下载链接】neutrino-proxy 中微子代理(内网穿透) 项目地址: https://gitcode.com/dromara/neutrino-proxy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



