列出路由表需要很长时间才能完成

当我使用route打印在我的计算机上定义的route ,大约需要5到20秒才能完成。 为什么需要这么多时间?

启用VPN后:

 $ time sudo route Kernel IP routing table (...) real 0m21.423s user 0m0.000s sys 0m0.012s 

在没有VPN的情况下,这大约需要5秒钟,而计算机在这个时候还能做很多事情 。 我重复了几次测量,每次尝试的结果都非常相似。

我的机器是3.0.0内核的Ubuntu,但据我所知,在其他计算机上的路由工作方式相同。

典型的原因是,路由器试图将表中的IP地址映射到他们的DNS名称 – 而且由于DNS系统和networking的变幻莫测,这可能会很慢。

您可以通过将-nparameter passing给路由来validation,要求它仅显示数字而不进行任何名称parsing。 如果这是超快的,你知道这是反向DNS查找,延迟的事情。

(在这种情况下,等待外部系统的时间通过networking进行响应,本地CPU非常闲置)。