我有一个连接到快速网络的 VMWare ESXi 主机。主机运行两个虚拟机:
- 网关
- 客户
网关有两个网络接口,一个桥接到外部网络 (vSwitch0),另一个桥接到服务器的内部网络 (vSwitch1)。它安装了firehol,并且正在为内部客户端机器进行 NAT 和端口转发。
客户端机器有一个内部 IP 并通过网关连接到互联网。一切正常,但从客户端到互联网的传输速度非常慢,不到 30kB/s。从网关到互联网的传输速度很快(100Mbit),从互联网到客户端的流量也是如此。我尝试进行网络转储以查看问题可能出在哪里,但没有找到任何东西。一切看起来就像线路很慢。
此外,两个虚拟机之间的传输速度几乎是一个完整的千兆位。所以这也不是问题。两台机器都运行 Debian Lenny,没有进行特殊修改。我正在为 VMXNET 半虚拟化网络使用 open-vm-tools。
我找到了解决这个问题的方法。
对于完全内部网络(未连接到任何物理网络接口),您需要从操作系统内部禁用 TCP 分段卸载。
这是一个简单的命令:
执行此命令后,我的传输速度从 30kb/s 变为全 100Mbit。
您是否尝试使用其他类型的虚拟网卡?E1000 仿真对我来说似乎工作得很好,也许它是基于驱动程序的?