Linux
wget
出錯時如何獲取更多日誌
wget
我對GNU/Linux 中的工具有幾個問題:# wget http://www.jdfschool.com --2019-04-05 02:33:44-- (Trys: 3) http://www.jdfschool.com/ Connecting www.jdfschool.com|115.28.223.13|:80... Connected. An HTTP request has been issued, waiting for a response... Connection reset by peer. Retrying.
Connected
in是否Connecting www.jdfschool.com|115.28.223.13|:80... Connected.
代表成功的 TCP 連接?- 你
Connection reset by peer
在日誌中看到了,還有更詳細的日誌嗎?我不知道重置問題的原因。
正如您正確假設的那樣,80…已連接意味著(Web)服務正在偵聽埠 80,並且您能夠連接到它。
如果站點在使用瀏覽器(以及來自其他 IP 地址)時執行良好,則
connection reset by peer
無論您嘗試做什麼,都只會給您一個回饋,這在某種程度上是行不通的。如果您想了解更多詳細資訊,可以嘗試嗅探連接。但是,除了向網站所有者詢問日誌/調試之外,我非常懷疑您是否會獲得更多有關其被重置背後原因的數據。
至於原因,可能是他們有規則不接受您的使用者代理/蜘蛛/具有特定頁面/或配置故意引發該錯誤,或者在定義的時間範圍內(由他們定義)在 n 次嘗試/頁面後阻止您)。
如前所述,這與特定的站點安全措施和配置有關,而不是 Unix 問題本身。
為了監聽實際的 HTTP 請求,你也可以在你的機器上執行:
# ngrep -q "." "port 80"
或者
# ngrep -q "." "port 80 and host www.jdfschool.com"
請注意,根據配置、HTML、DNS 和基礎設施設置,第二個
ngrep
不會監聽所有 HTTP 請求。正如@muru 在評論中所說,使用
wget -v http://www.jdfschool.com
也可能輸出更多有用的數據。
如前所述,準確指出為什麼會發生的可能性很小。(例如,在 Apache Web 伺服器中,通常設置 mod_evasive 和 mod_security 來遏制蜘蛛/濫用行為)
TLDR 從站點所有者的角度來看,您的命令發生的事情很可能是預期的行為。