Linux

wget 出錯時如何獲取更多日誌

  • January 15, 2020

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.
  1. Connectedin是否Connecting www.jdfschool.com|115.28.223.13|:80... Connected.代表成功的 TCP 連接?
  2. 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 從站點所有者的角度來看,您的命令發生的事情很可能是預期的行為。

引用自:https://unix.stackexchange.com/questions/510412