2015-10-20 82 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後,等待指定數量的秒,然後退出。如果秒數是負值,請永遠等待。「#