2015-10-20 81 views
0

我试图在我的服务器上安装mod_status。我使用的Apache 2.2和我使用此配置:Apach2.2卷曲工作,而不是Netcat

<IfModule mod_status.c> 
    Listen 8001 
    ExtendedStatus On 
    <VirtualHost *:8001> 
     <Location /server-status> 
     SetHandler server-status 
     Order deny,allow 
     Deny from all 
     Allow from localhost ip6-localhost ::1 127.0.0.1 
     </Location> 
    </VirtualHost> 
</IfModule> 

当我使用curl,我有正确的输出: curl http://127.0.0.1:8001/server-status?auto

Total Accesses: 4519 
Total kBytes: 128320 
CPULoad: 10.6216 
Uptime: 962 
[...] 

当我使用netcat的,它失败(无输出) :

echo 'GET /server-status?auto HTTP/1.1' | nc localhost 8001 
echo -e "GET /server-status?auto\r\n" | nc localhost 8001 
echo -e "GET /server-status?auto HTTP/1.1\r\n" | nc localhost 8001 
echo -e "GET /server-status?auto HTTP/1.0\r\n" | nc localhost 8001 
echo -e "GET http://localhost:8001/server-status?auto HTTP/1.0\r\n" | nc localhost 8001 
echo -e "GET http://localhost:8001/server-status?auto\r\n" | nc localhost 8001 
echo "GET http://localhost:8001/server-status?auto" | nc localhost 8001 
printf "GET http://localhost:8001/server-status?auto\r\n" | nc localhost 8001 
printf "GET /server-status?auto\r\n" | nc localhost 8001 
echo -ne "GET /server-status?auto\r\n\r\n" |nc localhost 8001 
echo -ne "GET /server-status?auto HTTP/1.1\r\n\r\n" |nc localhost 8001 
echo -ne "GET /server-status?auto HTTP/1.1\r\n" |nc localhost 8001 
printf "GET /server-status?auto\r\n" 
printf "GET /server-status?auto\n"|nc localhost 8001 
echo -ne "GET /server-status?auto HTTP/1.1\r\nUser-Agent: netcat\r\nHost: localhost:8001\r\nAccept: */*\r\n" | netcat 127.0.0.1 8001 
echo -ne "GET /server-status?auto HTTP/1.1\r\nUser-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15\r\nHost: localhost:8001\r\nAccept: */*\r\n" | netcat 127.0.0.1 8001 

但是,在提示,当我做nc 127.0.0.1 8001,并键入GET /server-status?auto +输入,它的工作原理...

有什么不对?

谢谢你, G.

回答

1

我觉得netcat的得到响应之前退出,当我使用-Q1它的工作原理:echo "GET /server-status" | nc -q1 127.0.0.1 8001

man nc-q标准输入EOF后,等待指定数量的秒,然后退出。如果秒数是负值,请永远等待。“#