Curl

curl 超時八次

  • May 17, 2020

有一行一直有效的程式碼。

curl -sv http://downloads.puppetlabs.com/facter/facter-2.4.4.tar.gz | sudo tar xz; sudo ruby facter*/install.rb

今天突然間,我主機上的一個虛擬機開始出現奇怪的超時問題。我想也許是那個特定的虛擬機出了點問題,所以我建構了一個相同的虛擬機,相同的作業系統和版本,相同的更新級別,相同的網路設置(橋接),但仍然出現相同的(新)錯誤。設置沒有任何改變,這是一直執行良好的舊程式碼。此主機上的所有其他 VM 都可以正常使用該命令。以下是我的 Oracle Linux 6.10 VM 的“突然”發生的情況:我總是得到八 (8) 行“超時 * 正在嘗試 …”,然後在第九次嘗試它可以工作。我該如何調試這個問題是如何被引入的?謝謝。

[ubuntu@o610sv2 facter]$ curl -sv http://downloads.puppetlabs.com/facter/facter-2.4.4.tar.gz | sudo tar xz; sudo ruby facter*/install.rb
* About to connect() to downloads.puppetlabs.com port 80 (#0)
*   Trying 2600:9000:212f:c200:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:4c00:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:a800:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:8200:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:5e00:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:3e00:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:4800:10:d91b:7380:93a1... Timeout
*   Trying 2600:9000:212f:e00:10:d91b:7380:93a1... Timeout
*   Trying 13.226.15.26... connected

顯然,download.puppetlabs.com 有 8 個 IPv6 地址,格式為 2600:9000:21XX:YY00:10:d91b:7380:93a1,其中 XX 值在一次查找中匹配,而 YY 值都不同。

這都是基於雲端的。如果一直如此,您的 IPv6 網路可能會發生變化。或者,他們可能剛剛切換到雲端。無論哪種方式,我都懷疑您的 IPv6 網路存在問題。

嘗試在 curl 命令上設置選項 –happy-eyeballs-timeout-ms 或 –ipv4(或 -4)。

還看看你是否可以對 download.puppetlabs.com 進行 IPv6 ping 你應該得到類似的東西:

$ ping -6 -c2 downloads.puppetlabs.com
PING downloads.puppetlabs.com(2600:9000:21a2:5c00:10:d91b:7380:93a1 (2600:9000:21a2:5c00:10:d91b:7380:93a1)) 56 data bytes
64 bytes from 2600:9000:21a2:5c00:10:d91b:7380:93a1 (2600:9000:21a2:5c00:10:d91b:7380:93a1): icmp_seq=1 ttl=48 time=49.3 ms
64 bytes from 2600:9000:21a2:5c00:10:d91b:7380:93a1 (2600:9000:21a2:5c00:10:d91b:7380:93a1): icmp_seq=2 ttl=48 time=48.6 ms

--- downloads.puppetlabs.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 48.566/48.945/49.324/0.379 ms
$

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