我的问题: 有人知道为什么 apache2 服务器可以充当 iperf 服务器吗?我以为 apache2 服务器只响应 HTTP 请求。
我的情况: 我偶然意识到,当将 iperf 客户端连接到端口 80 时,apache2 服务器可以充当 iperf 服务器。
我的设置: 两个 Ubuntu Server 14.03 直接互相连接。
命令:
On Server1:
user@server1:~$ sudo service apache2 status
* apache2 is running
user@server1:~$ sudo netstat -aple | grep http
tcp6 0 0 [::]:http [::]:* LISTEN root 18567325 21985/apache2
user@server1:~$
另一边:
On Server2:
user@server2:~$ iperf -c 192.168.2.2 -p 80
------------------------------------------------------------
Client connecting to 192.168.2.2, TCP port 80
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.2.3 port 60267 connected with 192.168.2.2 port 80
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 29.1 MBytes 24.4 Mbits/sec
user@server2:~$
答案1
它不会。iperf
不过它不在乎,它只是把数据发出去。Apache 将以“414 请求 URI 太大”错误页面做出反应,而 iperf 将用更多无用的数据来回答该错误页面。
iperf
不需要iperf
另一端的服务器,只需要一个不会切断连接的自愿“受害者”。