Curl

Linux TCP 堆棧未將數據轉發到我的應用程序

  • November 22, 2016

我正在使用 curl 發送 HTTP 請求,但 curl 應用程序沒有收到響應。我嘗試使用 tcpdump 對其進行調試,發現遠端伺服器正在響應數據(發現 HTTP 302),但我的 curl 應用程序沒有從 linux tcp 堆棧中獲取該數據。

我的捲曲請求是:curl -v --max-redirs 10 http://8.8.8.8:85 -L

About to connect() to 8.8.8.8 port 85 (#0)
Trying 8.8.8.8... connected
Connected to 8.8.8.8 (8.8.8.8) port 85 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 8.8.8.8:85
> Accept: */*
>

它掛在這裡,等待來自伺服器的數據

我已經在PCAP 文件中複製了跟踪文件

請讓我知道數據包中是否有問題或調試 TCP 堆棧的方法以了解其丟棄數據的原因,儘管它在 Wireshark wrt 校驗和和其他參數中看起來不錯。

通過仔細比較痕跡發現了問題。中間有一個故障代理伺服器,它與數據長度和確認號不匹配。

謝謝

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