前言

当我们在进行网络游戏开发的时候,往往想要在本地测试弱网环境下游戏的同步表现如何,正巧一位友人@Ray告诉了我Clumsy这款工具,使用之后感觉非常良好,推荐给大家。

Clumsy

Clumsy是一个开源MIT协议的弱网模拟工具,基于WinDivert实现,可以在本地非常方便的模拟弱网效果

  • 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。
  • 掉包(Drop),随机丢弃一些数据。
  • 节流(hrottle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。
  • 重发(Duplicate),随机复制一些数据并与其本身一同发送。
  • 乱序(Out of order),打乱数据包发送的顺序。
  • 篡改(Tamper),随机修改小部分的包裹内容。
  • TCP RST攻击模拟(Set TCP RST)
  • 带宽限制(BandWidth),通过限制带宽来达到不同级别宽带下的表现

仓库地址:https://github.com/jagt/clumsy 可以直接从Release列表下载

官方使用说明:http://jagt.github.io/clumsy/cn/index.html

使用说明

Clumsy已经内置了一些常用配置,如果需要对配置进行自定义,可以打开软件根目录下的config.txt以键值对的形式填写自己的配置,例如我想添加一个 起始和目标端口为10003,10004的udp连接 配置

1
NKGMoba: udp and (udp.DstPort == 10003 or udp.DstPort == 10004) or (udp.SrcPort == 10003 or udp.SrcPort == 10004)

随后打开Clumsy即可选中自己的配置,进行网络模拟

image-20211205151135745

配置好Functions下面的模块,然后点击Start,就可以看到效果了

Unity检测网络状况工具,C2GPing值就是10003或10004的端口Ping值

对于参数的更多详情配置,可以参见 WinDivert的说明文档