# netflow **Repository Path**: zheng_chenliang/netflow ## Basic Information - **Project Name**: netflow - **Description**: netflow - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-12 - **Last Updated**: 2025-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NetFlow Docker 部署指南 本文档提供了如何使用Docker部署NetFlow网络流量管理系统的指南。 ## 目录结构 ``` netflow-docker/ ├── Dockerfile # Docker镜像构建文件 ├── docker-entrypoint.sh # 容器启动脚本 ├── src/ # C源代码目录 │ ├── bandwidth_manager.c # 带宽管理模块 │ └── priority_scheduler.c # 优先级调度模块 ├── models/ # Lua模型文件目录 │ ├── model_bandwidth.lua # 带宽模型 │ ├── model_priority.lua # 优先级模型 │ ├── model_settings.lua # 设置模型 │ └── web_interface.lua # Web界面接口 ├── views/ # HTML视图文件目录 │ ├── view_overview.htm # 系统概览页面 │ └── view_statistics.htm # 统计信息页面 ├── controller/ # LuCI控制器目录 │ └── netflow.lua # NetFlow控制器 ├── etc/ # 配置文件目录 │ └── netflow.conf # NetFlow配置文件 └── scripts/ # 脚本目录 └── init.d/ # 初始化脚本目录 └── netflow # NetFlow服务启动脚本 ``` ## 使用方法 ### 1. 构建Docker镜像 在项目根目录下运行以下命令构建Docker镜像: ```bash docker build -t netflow-openwrt-dev . ``` ### 2. 使用卷挂载运行容器 使用以下命令启动容器,将宿主机上的源代码目录挂载到容器中: ```bash docker run -d --name netflow-dev \ -p 8080:80 \ -v $(pwd)/src:/usr/lib/netflow/src \ -v $(pwd)/models:/usr/lib/netflow/models \ -v $(pwd)/views:/usr/lib/lua/luci/view/netflow \ -v $(pwd)/controller:/usr/lib/lua/luci/controller/netflow \ -v $(pwd)/etc:/etc/netflow \ -v $(pwd)/scripts/init.d:/etc/init.d \ netflow-openwrt-dev ``` ### 3. 访问Web界面 在浏览器中访问 `http://localhost:8080`,登录LuCI界面。在"网络"菜单下,您应该能看到"NetFlow 流量管理"选项。 ### 4. 开发工作流程 1. 在宿主机上编辑源代码文件 2. 对于Lua和HTML文件的更改,无需重新编译,直接刷新浏览器即可看到更改 3. 对于C文件的更改,容器会在启动时自动编译,如果需要手动重新编译: ```bash docker exec netflow-dev gcc -o /usr/lib/netflow/bin/bandwidth_manager /usr/lib/netflow/src/bandwidth_manager.c -lm -lpthread ``` 4. 如果需要重启服务: ```bash docker exec netflow-dev /etc/init.d/netflow restart ``` ## 启动脚本说明 `docker-entrypoint.sh` 是容器的入口点脚本,它在容器启动时执行以下操作: 1. 编译C源代码文件 2. 设置必要的权限 3. 启用NetFlow服务 4. 执行CMD命令(通常是启动OpenWRT系统) 这个脚本使得容器能够在启动时自动处理编译和配置工作,让您专注于代码开发而不是环境配置。 ## 注意事项 1. 这个Docker部署方案主要用于开发和测试,可能不适合生产环境 2. OpenWRT在Docker中运行时,某些网络功能可能受限 3. 如果遇到权限问题,可能需要以特权模式运行容器:`docker run --privileged`