Perché wget è sospeso?


12

wget a un singolo URL specifico da uno dei miei server continua a ricevere timeout. Tutti gli altri URL di questa casella funzionano bene. Questo URL funziona bene con qualsiasi altra casella che ho. Ecco l'output:

wget -T 10 http://www.fcc-fac.ca
--2011-07-14 14:44:29--  http://www.fcc-fac.ca/
Resolving www.fcc-fac.ca... 65.87.238.35, 207.195.108.140
Connecting to www.fcc-fac.ca|65.87.238.35|:80... failed: Connection timed out.
Connecting to www.fcc-fac.ca|207.195.108.140|:80... failed: Connection timed out

Puoi dirmi cosa potrebbe essere sbagliato e come posso risolverlo? Sto usando Ubuntu 11.04 (GNU / Linux 2.6.38-8-server x86_64)

Grazie mille in anticipo e perdona la mia ignoranza noobish :)

ping, telnet, nc www.fcc-fac.ca 80 - tutti si bloccano. Tuttavia, alcuni altri URL che sono facilmente accessibili anche se solo alcuni dei loro host sono pingabili.

traceroute non mi dice molto:

7  rx0nr-access-communications.wp.bigpipeinc.com (66.244.208.10)  148.834 ms  149.018 ms  148.940 ms
8  sw-1-research.accesscomm.ca (24.72.3.9)  158.901 ms  159.805 ms  160.162 ms
9  65.87.238.126 (65.87.238.126)  150.069 ms  148.861 ms  148.846 ms
10  * * *
...
30  * * *

Grazie mille per le risposte!

Risposte:


14

Penso che il problema sia che wget non gestisce bene gli indirizzi IPv6 e il server DNS sta inviando un IPv6 per quel sito. Scusa se ho frainteso la tua domanda. Controlla quei test:

hmontoliu@ulises:~$ wget -T10 http://www.fcc-fac.ca
--2011-07-14 16:44:34--  http://www.fcc-fac.ca/
Resolving www.fcc-fac.ca... failed: Connection timed out.
wget: unable to resolve host address `www.fcc-fac.ca'

Se imposto IPv6 perché ritengo che il tuo problema sia correlato ad esso, non riesce:

hmontoliu@ulises:~$ wget -6 http://www.fcc-fac.ca
--2011-07-14 16:40:44--  http://www.fcc-fac.ca/
Resolving www.fcc-fac.ca... failed: No address associated with hostname.
wget: unable to resolve host address `www.fcc-fac.ca'

Tuttavia, se forzo a usare IPv4, scarica la pagina dell'indice

hmontoliu@ulises:~$ wget -4 http://www.fcc-fac.ca
--2011-07-14 16:40:56--  http://www.fcc-fac.ca/
Resolving www.fcc-fac.ca... 65.87.238.35, 207.195.108.140
Connecting to www.fcc-fac.ca|65.87.238.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6554 (6,4K) [text/html]
Saving to: `index.html'

Lo risolve bene con un indirizzo IPv4.
Jodie C

Un altro esempio del motivo per cui non mi piace IPv6: - /
PJ Brunet il

1

Esegui nc www.fcc-fac.ca 80, digita GET /e premi Invio due volte.

La vista remota potrebbe essere inattiva o bloccarti.


Ehi, grazie per la risposta - ho aggiornato la domanda originale
Szczepan,

Se non puoi netcat all'indirizzo, allora probabilmente verrai bloccato da qualche parte lungo la strada.
Jodie C

1

sembra che wget non sia in grado di connettersi al tuo ip sulla porta 80.

controlla se il tuo server è pingabile:

ping 65.87.238.35
ping 207.195.108.140

se l'ip è pingabile, controlla se riesci a connetterti alla porta 80 usando telnet:

telnet 65.87.238.35 80

se il server non risponde al ping, è probabilmente inattivo o irraggiungibile per la rete di origine.

prova con lo strumento traceroute per vedere dove la connessione fallisce.


Ehi, grazie per la risposta - ho aggiornato la domanda originale
Szczepan,

uno scavo su www.fcc-fac.ca mi dice che ha 2 record DNS di tipo A: ;; SEZIONE RISPOSTA: www.fcc-fac.ca. 120 IN A 65.87.238.35 www.fcc-fac.ca. 120 IN A 207.195.108.140 se entrambi non sono raggiungibili l'host è inattivo e naturalmente wget non sarà in grado di recuperare il file desiderato. se ci sono alcuni ip raggiungibili, wget salterà l'ip down fino a quando non incontra un ip che può raggiungere e scaricherà il file da lì. nel tuo caso, entrambi gli host sembrano inattivi a causa del lungo tempo di risposta che penso (timeout).
Goez,

puoi usare l'opzione -T in wget per estendere il valore di timeout Il timeout è da sec a secondi, quindi forse un valore più alto ti aiuterà
Goez

Ok. Vedo. Entrambi gli ips non sono eseguibili il ping (ho controllato da 2 macchine diverse). Eppure il collegamento funziona bene nel browser e quando viene utilizzato da macchine diverse da quella che crea problemi: /
Szczepan

Un timeout superiore non aiuta
Szczepan,

1

Correzione della risoluzione DNS lenta negli script PHP mediante la libreria CURL.

Dalla documentazione di libcurl:

CURLOPT_IPRESOLVE

Consente a un'applicazione di selezionare il tipo di indirizzi IP da utilizzare durante la risoluzione dei nomi host. Ciò è interessante solo quando si utilizzano nomi host che risolvono gli indirizzi utilizzando più di una versione di IP. I valori consentiti sono:

CURL_IPRESOLVE_WHATEVER

Predefinito, risolve gli indirizzi in tutte le versioni IP consentite dal sistema.

CURL_IPRESOLVE_V4

Risolvi agli indirizzi IPv4.

CURL_IPRESOLVE_V6

Risolvi agli indirizzi IPv6.

Credo che questi possano essere impostati come variabili ambientali. Almeno durante l'utilizzo di PHP, queste impostazioni hanno fatto un'enorme differenza nella velocità del resolver.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.