我想测试当远程服务器响应缓慢时加载外部javascripts如何影响页面。
我查找的工具可能会降低特定网站的连接速度,但我只能找到减慢整个网络速度的工具或者不适用于Mac的工具(例如here或here )
有类似的工具吗?
答案 0 :(得分:1)
使用适用于Mac的Detours App,您可以将某些主机重定向到您自己的本地Web服务器。然后,您可以从服务器获取资源(通过curl等),休眠一段时间,然后返回响应。
答案 1 :(得分:0)
它不是简单的出路,但你可以将IPTABLES(unix ip-router)与TC(流量控制)结合使用? 如果您不知道终端bash脚本如何工作,但是您需要终端100%才能获得正确的解决方案,这是非常广泛的。
如果这对您不起作用,请尝试更简单的方法:http://lartc.org/howto/lartc.ratelimit.single.html
将其存储在例如您的主文件夹中,将其命名为bwm.sh
#!/bin/bash
# through this interface
IF=$1
# on this HOST
HOST=$2
# get the IP from HOST
HOSTIP="`nslookup $HOST|grep Address|grep -v "#"|cut -d " " -f2`"
# with this rate
your_rate=$3
# defaults /sbin/tc
TC="`whereis tc | sed 's/[^\ ]*.\([^\ ]*\).*/\1/'`"
# defaults /sbin/iptables
IPTABLES="`whereis iptables | sed 's/[^\ ]*.\([^\ ]*\).*/\1/'`"
#some number
PRIO="123"
# you create a new rule in the mangle table
IPT="$IPTABLES -t mangle"
echo "Program locations found: iptables: $IPTABLES and tc: $TC"
echo "down-rating bandwidth\n on $HOST\n to $your_rate whilst marking packages that origins\n from $HOSTIP\n with $PRIO on interface\n named $IF"
echo -n "starting setup.."
# apply custom filter
$IPT -N myfilter
# add it to the POSTROUTING chain
$IPT -A POSTROUTING -j myfilter
# if conntrack is used - restore a mark and allow the packets, which already have been marked, through - no need to check again
$IPT -A myfilter -p tcp -j CONNMARK --restore-mark
$IPT -A myfilter -m mark --mark $PRIO -j ACCEPT
# add to it your matching rule
$IPT -A myfilter -p tcp -s $HOSTIP -j MARK --set-mark $PRIO
# conntrack it optionally, so not every packet has to be rematched
$IPT -A myfilter -j CONNMARK --save-mark
# use that mark in a tc filter rule
echo qdisc add
$TC qdisc add dev $IF root handle 1: htb default 30
echo class add
$TC class add dev $IF parent 1: classid 1:1 htb rate $your_rate # <<<<<<<< fill in rate
echo sfq add
# add an SFQ qdisc to the end - to which you then attach the actual filter
$TC qdisc add dev $IF parent 1:1 sfq perturb 10
echo filter add
$TC filter add dev $IF parent 1:1 prio 1 handle $PRIO fw flowid 1:1
echo "done"
现在打开终端窗口并获得root权限
finder&gt;终端&gt;打开,我们将进入用户主页并进入超级用户
cd; su
输入root密码
使用Interface,Hostname,Rate parameters启动程序
sh bwm.sh IF HOST RATE