【网络工具】NetProxy网络代理用户手册

NetProxy 用户手册

目录

  1. 产品简介
  2. 功能特性
  3. 系统要求
  4. 安装与启动
  5. 主程序使用说明
  6. 配置工具使用说明
  7. 配置项详解
  8. 故障模拟场景
  9. 日志说明
  10. 常见问题

下载地址


产品简介

NetProxy 是一款 Windows 桌面 TCP 中继代理工具,主要用于模拟网络故障场景。它可以在客户端与服务器之间建立 TCP 连接中继,并支持灵活的数据包过滤和丢弃规则,帮助测试人员验证系统在异常情况下的健壮性。

适用场景

  • 证券、银行等金融系统的故障演练
  • 网络不稳定场景下的系统测试
  • 分布式系统异常处理验证
  • 接口容错能力测试

核心能力

  • TCP 中继转发:在监听端口与目标地址之间建立双向数据转发
  • 多线路管理:支持同时配置多条代理线路
  • 灵活过滤:支持按方向(请求/应答)丢弃数据包
  • 流量统计:实时显示各线路的流量数据
  • 详细日志 :提供运行日志和数据包 Hex 日志

功能特性

1. 多线路代理

支持配置多条独立的代理线路,每条线路可以:

  • 监听不同的端口
  • 转发到不同的目标地址
  • 配置独立的过滤规则
  • 单独启用/禁用

2. 双向数据转发

每条代理线路提供完整的双向转发能力:

  • C2S 方向:客户端 → 代理 → 服务端
  • S2C 方向:服务端 → 代理 → 客户端

3. 数据包过滤

支持灵活的数据包丢弃规则:

  • 丢弃请求:丢弃 C2S 方向的数据包
  • 丢弃应答:丢弃 S2C 方向的数据包
  • 最小业务包大小:小于指定大小的数据包自动跳过(用于过滤心跳等小包)

4. 实时流量统计

  • 实时显示每秒传输速率(B/s, KB/s, MB/s)
  • 显示累计传输总量
  • 每秒自动更新

5. 详细日志记录

  • 运行日志:记录连接建立、数据转发、丢弃事件
  • 数据日志:记录每个数据包内容的 Hexdump
  • 分级日志:支持 Trace、Debug、Info、Warn、Error 等级别

6. 连接管理

  • 空闲超时断开:连接空闲 3 分钟自动关闭
  • 异常处理:对端正常关闭时不再报错
  • 首包数据记录:连接目标端失败时记录首包数据内容

系统要求

项目 要求
操作系统 Windows 7 或更高版本
.NET Framework 4.6.2 或更高版本
内存 最低 512MB
磁盘空间 最少 50MB

安装与启动

1. 检查运行环境

确保已安装 .NET Framework 4.6.2 或更高版本:

  • 打开「控制面板」→「程序和功能」→「查看已安装更新」
  • 确认存在 .NET Framework 4.6.2 或更高版本

2. 启动程序

双击运行 NetProxy.exe 即可启动主程序。

3. 启动配置工具

双击运行 NetProxyConfig.exe 启动配置管理工具,或通过主程序的「文件」→「代理配置」菜单启动。


主程序使用说明

主界面布局

复制代码
┌─────────────────────────────────────────────────────────────┐
│  NetProxy - 网络代理转发工具                                │
├─────────────────────────────────────────────────────────────┤
│  [启动所有] [停止所有]                                       │
│                                                              │
│  ┌───┬──────────┬────────┬────────────┬────────────┬───────┐│
│  │序号│代理名称  │监听端口│目标地址    │流量统计    │处理规则││
│  ├───┼──────────┼────────┼────────────┼────────────┼───────┤│
│  │ 1 │证券      │60502   │127.0.0.1:20502│0B/s | 0B│       ││
│  │ 2 │银行      │60501   │127.0.0.1:20501│0B/s | 0B│       ││
│  └───┴──────────┴────────┴────────────┴────────────┴───────┘│
│                                                              │
│  选项:☑ 丢弃请求  ☑ 丢弃应答                                │
│                                                              │
│  ┌─────────────────────────────────────────────────────────┐│
│  │ [20260813 10:00:00.000] [Info] 程序启动...              ││
│  │ [20260813 10:00:00.001] [Info] 加载 2 条代理线路        ││
│  └─────────────────────────────────────────────────────────┘│
│                                                              │
│  文件 (F)  帮助 (H)                                          │
└─────────────────────────────────────────────────────────────┘

控件说明

工具栏按钮
按钮 功能 说明
启动所有 启动所有启用的代理线路 启动后无法修改线路启用状态
停止所有 停止所有运行的代理线路 停止后可修改线路启用状态
代理列表

列表显示所有配置的代理线路,各列含义:

列名 说明
序号 线路顺序号
代理名称 线路的唯一标识名称
监听端口 代理监听的 TCP 端口号
目标地址 转发目标(格式:IP:端口)
流量统计 实时显示「速率/累计总量」
处理规则 当前启用的过滤规则
线路状态颜色
颜色 状态 说明
绿色 运行中 线路正在监听和转发
灰色 禁用 线路已配置但未启用
黑色 已配置 线路已启用但未运行
选项面板

选中某条线路后,选项面板显示该线路的实时控制选项:

  • 丢弃请求:勾选后丢弃 C2S 方向(客户端→服务端)的数据包
  • 丢弃应答:勾选后丢弃 S2C 方向(服务端→客户端)的数据包

菜单说明

文件菜单
菜单项 功能
代理配置 打开配置管理工具
退出 关闭程序
帮助菜单
菜单项 功能
关于 显示软件及作者信息

基本操作流程

  1. 配置线路:启动配置工具,添加/编辑代理线路
  2. 启用线路:在主程序中勾选需要启用的线路
  3. 启动代理:点击「启动所有」按钮
  4. 调整规则:选中线路,勾选/取消勾选「丢弃请求」或「丢弃应答」
  5. 停止代理:点击「停止所有」按钮

配置工具使用说明

配置界面布局

复制代码
┌──────────────────────────────────────────────────────────────────┐
│  代理配置管理                                                     │
├──────────────────────────────────────────────────────────────────┤
│  [添加] [编辑] [删除] [上移] [下移] [保存] [取消]                  │
│                                                                   │
│  ┌──┬──────┬────────┬────────────┬──────────┬──────────┬───────┐│
│  │№ │名称  │端口    │目标地址    │发送名称  │接收名称  │规则   ││
│  ├──┼──────┼────────┼────────────┼──────────┼──────────┼───────┤│
│  │ 1│证券  │60502   │127.0.0.1:20502│银行请求│证券应答 │       ││
│  │ 2│银行  │60501   │127.0.0.1:20501│证券请求│银行应答 │       ││
│  └──┴──────┴────────┴────────────┴──────────┴──────────┴───────┘│
│                                                                   │
│  最小业务包大小:75                                               │
│  ☑ 启用                                                          │
└──────────────────────────────────────────────────────────────────┘

按钮功能

按钮 功能 快捷键
添加 添加新的代理线路 -
编辑 编辑选中的线路配置 -
删除 删除选中的线路配置 -
上移 将选中线路向上移动一位 -
下移 将选中线路向下移动一位 -
保存 保存所有配置到文件 Ctrl+S
取消 放弃修改并关闭 -

线路编辑对话框

点击「添加」或「编辑」按钮后弹出:

字段 说明 示例
名称 线路唯一标识(必填) 证券、银行
监听端口 代理监听端口(1-65535) 60502
目标地址 转发目标(格式:IP:端口) 127.0.0.1:20502
发送名称 C2S 方向的数据包标识 银行请求
接收名称 S2C 方向的数据包标识 证券应答
规则 过滤规则(逗号分隔) 丢弃请求,丢弃应答
最小业务包大小 小于此值的数据包不参与过滤 75
启用 是否启用该线路

配置保存

配置工具会将配置保存到 NetProxy.exe.config 文件中,格式如下:

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="proxy" type="NetProxyKit.Config.ProxyConfigSection, NetProxyKit"/>
    </configSections>

    <proxy timeout="10">
        <proxies>
            <add name="证券" 
                 proxyPort="60502" 
                 target="127.0.0.1:20502" 
                 sendName="银行请求" 
                 recvName="证券应答" 
                 rules="" 
                 enabled="true" 
                 minBizPackSize="75"/>
            <add name="银行" 
                 proxyPort="60501" 
                 target="127.0.0.1:20501" 
                 sendName="证券请求" 
                 recvName="银行应答" 
                 rules="" 
                 enabled="true" 
                 minBizPackSize="75"/>
        </proxies>
    </proxy>
</configuration>

配置项详解

基础配置项

名称 (name)
  • 类型:字符串
  • 必填:是
  • 说明:线路的唯一标识符,用于区分不同的代理线路
  • 示例证券 银行 订单线路
监听端口 (proxyPort)
  • 类型:整数
  • 范围:1 - 65535
  • 说明:代理程序监听的 TCP 端口号
  • 注意:不同线路不能使用相同的端口号
  • 示例60502
目标地址 (target)
  • 类型:字符串
  • 格式IP 地址:端口主机名:端口
  • 说明:代理转发数据的实际目标地址
  • 示例127.0.0.1:20502server.cmschina.com.cn:8080

高级配置项

发送名称 (sendName)
  • 类型:字符串
  • 必填:否
  • 说明:C2S 方向(客户端→服务端)数据包在日志中的显示名称
  • 示例银行请求 订单
接收名称 (recvName)
  • 类型:字符串
  • 必填:否
  • 说明:S2C 方向(服务端→客户端)数据包在日志中的显示名称
  • 示例证券应答 响应
规则 (rules)
  • 类型:字符串
  • 格式:逗号分隔的规则列表
  • 可选值
    • 丢弃请求:丢弃 C2S 方向的数据包
    • 丢弃应答:丢弃 S2C 方向的数据包
  • 示例
    • 空:不丢弃任何数据
    • 丢弃请求:只丢弃请求
    • 丢弃应答:只丢弃应答
    • 丢弃请求,丢弃应答:双向都丢弃
启用 (enabled)
  • 类型:布尔值
  • 可选值truefalse
  • 说明:是否启用该线路,未启用的线路启动代理时不会运行
最小业务包大小 (minBizPackSize)
  • 类型:整数
  • 范围:≥ 0
  • 说明
    • 值为 0 时不启用此功能
    • 值大于 0 时,小于此字节数的数据包被视为「小包」
    • 小包不会被记录日志,也不会被丢弃规则处理
  • 用途:过滤心跳包、Keep-Alive 等小包,避免干扰测试
  • 示例75

故障模拟场景

场景 1:模拟证券请求丢失

目标:模拟客户端发送的证券请求在传输过程中丢失

配置

复制代码
线路名称:证券
监听端口:60502
目标地址:127.0.0.1:20502
发送名称:银行请求
接收名称:证券应答
规则:丢弃请求
最小业务包大小:75

操作步骤

  1. 启动配置工具,配置上述线路
  2. 在主程序中启用「证券」线路
  3. 点击「启动所有」
  4. 选中「证券」线路,勾选「丢弃请求」
  5. 此时客户端发送的请求将被丢弃,服务端收不到请求

场景 2:模拟银行应答丢失

目标:模拟服务端返回的银行应答在传输过程中丢失

配置

复制代码
线路名称:银行
监听端口:60501
目标地址:127.0.0.1:20501
发送名称:证券请求
接收名称:银行应答
规则:丢弃应答
最小业务包大小:75

操作步骤

  1. 启动配置工具,配置上述线路
  2. 在主程序中启用「银行」线路
  3. 点击「启动所有」
  4. 选中「银行」线路,勾选「丢弃应答」
  5. 此时服务端返回的应答将被丢弃,客户端收不到响应

场景 3:双向丢包

目标:模拟双向网络故障

配置

复制代码
规则:丢弃请求,丢弃应答

操作步骤

  1. 同时勾选「丢弃请求」和「丢弃应答」
  2. 双向数据都将被丢弃,连接完全中断

场景 4:过滤小包

目标:忽略心跳包,只处理业务数据

配置

复制代码
最小业务包大小:75

说明

  • 小于 75 字节的数据包(如心跳包)不会被记录日志
  • 小包也不会被丢弃规则处理,正常转发
  • 业务数据包(通常大于 75 字节)正常参与过滤

日志说明

日志文件位置

日志类型 文件路径
主程序运行日志 log/NetProxy_yyyyMMdd.log
配置工具日志 log/NetProxyConfig_yyyyMMdd.log
数据包内容日志 log/data_yyyyMMdd.log

日志级别

级别 颜色 说明
Trace 灰色 追踪级别,最详细的调试信息
Debug 蓝色 调试信息
Info 黑色 一般信息
Data 紫色 数据相关
Warn 橙色 警告信息
Error 红色 错误信息

日志格式

复制代码
[yyyyMMdd HH:mm:ss.fff] [级别] [进程 ID,线程 ID] 消息内容

典型日志示例

启动日志
复制代码
[20260813 10:00:00.000] [Info] [12345,10] ========================================
[20260813 10:00:00.001] [Info] [12345,10] NetProxy - 网络代理转发工具
[20260813 10:00:00.002] [Info] [12345,10] 作者:林武
[20260813 10:00:00.003] [Info] [12345,10] ========================================
[20260813 10:00:00.010] [Info] [12345,10] 加载 2 条代理线路
连接日志
复制代码
[20260813 10:00:01.000] [Info] [12345,11] [证券] 代理启动:监听端口 60502, 目标 127.0.0.1:20502
[20260813 10:00:05.100] [Trace] [12345,12] [证券,1] 建立新连接:127.0.0.1:54321
[20260813 10:00:05.150] [Trace] [12345,12] [证券,1] 连接建立:客户端 -> 127.0.0.1:20502
数据转发日志
复制代码
[20260813 10:00:06.000] [Info] [12345,12] [证券,1] [C2S] [128B] 接收到银行请求
[20260813 10:00:06.001] [Info] [12345,12] [证券,1] [C2S] [128B] 转发银行请求
[20260813 10:00:06.050] [Info] [12345,12] [证券,1] [S2C] [256B] 接收到证券应答
[20260813 10:00:06.051] [Info] [12345,12] [证券,1] [S2C] [256B] 转发证券应答
丢弃日志
复制代码
[20260813 10:00:07.000] [Info] [12345,12] [证券,1] [C2S] [128B] DROP 丢弃银行请求
关闭日志
复制代码
[20260813 10:03:07.000] [Warn] [12345,12] [证券,1] [C2S] 空闲超时(3 分钟),关闭连接
[20260813 10:03:07.001] [Trace] [12345,12] [证券,1] 连接关闭

数据包内容日志

数据包内容日志以 Hexdump 格式记录每个数据包的内容:

复制代码
[2026-08-13 10:00:06.000] [证券,1] [C2S] [128B] === 银行请求 ===
00000000  48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D  |HTTP/1.1 200 OK.|
00000010  0A 43 6F 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74  |.Content-Type: t|
00000020  65 78 74 2F 70 6C 61 69 6E 0D 0A 0D 0A           |ext/plain....|
=== 数据结束 ===

常见问题

Q1: 启动代理时报「端口已被占用」

原因:指定的监听端口已被其他程序占用

解决方法

  1. 使用 netstat -ano | findstr :端口号 查看占用端口的进程
  2. 关闭占用程序或修改代理配置的端口号

Q2: 连接无法建立

可能原因

  1. 目标地址不可达
  2. 目标服务未启动
  3. 防火墙阻止连接

排查步骤

  1. 检查目标服务是否正常运行
  2. 使用 telnet 目标 IP 端口 测试连通性
  3. 检查防火墙设置

Q3: 数据包没有被丢弃

可能原因

  1. 最小业务包大小设置过大,数据包被视为小包
  2. 规则配置未保存

解决方法

  1. 检查 minBizPackSize 设置,确保小于数据包大小
  2. 在配置工具中修改规则后点击「保存」

Q4: 如何查看完整的数据包内容

方法

  1. 查看 log/data_yyyyMMdd.log 文件
  2. 该文件记录所有数据包的 Hexdump 内容

Q5: 代理启动后没有流量统计

可能原因

  1. 没有客户端连接
  2. 客户端没有发送数据

解决方法

  1. 确认客户端已连接到代理端口
  2. 确认客户端正在发送数据

Q6: 配置工具打不开

可能原因

  1. 配置文件损坏
  2. .NET Framework 版本不匹配

解决方法

  1. 检查 NetProxy.exe.config 文件格式是否正确
  2. 确认已安装 .NET Framework 4.6.2 或更高版本

附录

A. 配置文件完整示例

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section name="proxy" type="NetProxyKit.Config.ProxyConfigSection, NetProxyKit"/>
    </configSections>

    <proxy timeout="10">
        <proxies>
            <!-- 证券线路 -->
            <add name="证券" 
                 proxyPort="60502" 
                 target="127.0.0.1:20502" 
                 sendName="银行请求" 
                 recvName="证券应答" 
                 rules="" 
                 enabled="true" 
                 minBizPackSize="75"/>
            
            <!-- 银行线路 -->
            <add name="银行" 
                 proxyPort="60501" 
                 target="127.0.0.1:20501" 
                 sendName="证券请求" 
                 recvName="银行应答" 
                 rules="" 
                 enabled="true" 
                 minBizPackSize="75"/>
        </proxies>
    </proxy>
    
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
    </startup>
</configuration>

B. 快捷操作指南

操作 步骤
快速启用线路 主程序勾选线路 → 点击「启动所有」
快速禁用线路 点击「停止所有」→ 取消勾选线路
实时调整规则 选中线路 → 勾选/取消「丢弃请求」或「丢弃应答」
查看数据内容 打开 log/data_yyyyMMdd.log 文件
清空日志 主程序菜单「文件」→「清空日志」

文档版本:1.0.0

最后更新:2026 年 8 月 13 日

相关推荐
微小冷1 小时前
海康威视相机C#二次开发环境配置
数码相机·c#·.net·海康威视·相机开发
汉字萌萌哒2 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院2 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙2 小时前
C语言:变量三属性——存储类型
c语言·开发语言
消失的旧时光-19432 小时前
第一篇:Ktor Client 到底是什么?从 Retrofit 迁移理解 Ktor 网络请求架构
网络·架构·retrofit·ktor·dsl
数据知道3 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
果果燕3 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤3 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐