如何在 OS X 上模拟慢速 Internet 连接?

slh*_*hck 6 simulation internet-connection macos

我想测试一些网站和其他服务在使用慢速连接时的行为,比如最大带宽为 512 kBit/s,延迟为 500 毫秒。

我怎样才能在 OS X 中做到这一点?

slh*_*hck 8

使用内置ipfw(8)实用程序控制 ipfw 防火墙和 dummynet 流量整形器以创建新管道。该管道将​​用作虚拟链接,数据包必须通过该链接。

我们可以设置有限的带宽、传播延迟、队列大小和丢包率。

/Applications/Utilities/Terminal.app启动终端。然后,输入以下内容,并准备输入您的管理员密码:

sudo ipfw pipe 1 config bw 512Kbit/s delay 500ms
Run Code Online (Sandbox Code Playgroud)

此处使用的值是不言自明的。对于丢包,添加plr <n>,其中<n>是 0 到 1 之间的浮点数(0 表示没有丢包,1 表示丢弃所有数据包)。例如,这将很好地模拟移动有损连接。

现在,让我们将此管道添加到任何进出端口 80(用于 HTTP 流量的端口)的连接。

sudo ipfw add 1 pipe 1 src-port 80
sudo ipfw add 2 pipe 1 dst-port 80
Run Code Online (Sandbox Code Playgroud)

享受您的慢速连接。如果完成,请删除这些规则并删除管道:

sudo ipfw delete 1
sudo ipfw delete 2
sudo ipfw pipe 1 delete
Run Code Online (Sandbox Code Playgroud)


Lri*_*Lri 6

另一种选择是使用 Network Link Conditioner 首选项窗格,它在 10.7 及更高版本上随 Xcode 一起安装。