ipfw 不会延迟本地主机上的请求(OS X)

ipfw 不会延迟本地主机上的请求(OS X)

我正在尝试为在 localhost:8080 (Tomcat) 上运行的 Web 应用的连接添加一些延迟。我尝试添加以下内容:

sudo ipfw pipe 1 config delay 500ms
sudo ipfw add 1 pipe 1 dst-port 8080

但在浏览器中,根据浏览器的调试器,我看到对 Web 应用的请求在 10ms 内完成。是不是我的管道配置中遗漏了某些内容,或者只是没有理解浏览器在说什么?

我也尝试过添加很长的延迟(最多几秒钟),但它似乎并没有阻止我:telnet localhost 8080并立即连接。

答案1

我自己也在尝试这个。尝试将你的 src-port 也设置为相同。

这对我来说很好:

# sudo ipfw pipe 1 config delay 500ms
# sudo ipfw add 1 pipe 1 src-port 9160
# sudo ipfw add 2 pipe 1 dst-port 9160

查看 ipfw 设置也有助于调试任何问题:

# sudo ipfw show
00001    58   69110 pipe 1 ip from any 9160 to any
00002    59    3138 pipe 1 ip from any to any dst-port 9160

# sudo ipfw pipe show
00001: unlimited  500 ms   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp        127.0.0.1/53547       127.0.0.1/9160   270    92414  0    0   0

就我而言,我使用的是 Cassandra,而且它(痛苦地)显然有效。

答案2

对于我来说,解决方案是使用 IP 地址:

telnet localhost <port>(立即连接)

telnet 127.0.0.1 <port>(按预期工作)

相关内容