Pourquoi wget est suspendu?


12

wget vers une seule URL spécifique de l'un de mes serveurs continue de recevoir des délais d'expiration. Toutes les autres URL de cette boîte fonctionnent correctement. Cette URL fonctionne correctement à partir de toutes les autres boîtes que j'ai. Voici la sortie:

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

Pouvez-vous me dire ce qui ne va pas et comment puis-je le résoudre? J'utilise Ubuntu 11.04 (GNU / Linux 2.6.38-8-server x86_64)

Merci beaucoup d'avance et pardonnez mon ignorance noobish :)

ping, telnet, nc www.fcc-fac.ca 80 - tous se bloquent. Cependant, certaines autres URL sont facilement wget'ables bien que seuls certains de leurs hôtes soient pingables.

traceroute ne me dit pas grand-chose:

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  * * *

Merci beaucoup pour les réponses!

Réponses:


14

Je pense que le problème est que wget ne gère pas bien les adresses IPv6 et que le serveur DNS envoie un IPv6 pour ce site. Désolé si j'ai mal compris votre question. Vérifiez ces tests:

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'

Si je force IPv6 parce que je pense que votre problème y est lié, il échoue:

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'

Cependant, si je force à utiliser IPv4, il se télécharge directement sur la page d'index

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'

Il le résout très bien avec une adresse IPv4.
Jodie C

Un autre exemple de pourquoi je n'aime pas IPv6: - /
PJ Brunet

1

Exécutez nc www.fcc-fac.ca 80, tapez GET /et appuyez deux fois sur Entrée.

La vue à distance peut être en panne ou vous bloquer.


Hé, merci pour la réponse - J'ai mis à jour la question d'origine
Szczepan

Si vous ne pouvez pas accéder à l'adresse via Internet, vous êtes probablement bloqué quelque part en cours de route.
Jodie C

1

il semble que wget ne soit pas en mesure de se connecter à votre ip sur le port 80.

vérifiez si votre serveur est pingable:

ping 65.87.238.35
ping 207.195.108.140

si l'ip est pingable, vérifiez si vous pouvez vous connecter au port 80 en utilisant telnet:

telnet 65.87.238.35 80

si le serveur ne répond pas au ping, il est probablement hors service ou inaccessible pour votre réseau source.

testez avec l'outil traceroute pour voir où la connexion échoue.


Hé, merci pour la réponse - J'ai mis à jour la question d'origine
Szczepan

une fouille sur www.fcc-fac.ca me dit qu'il a 2 enregistrements DNS de type A: ;; SECTION RÉPONSE: www.fcc-fac.ca. 120 DANS UN 65.87.238.35 www.fcc-fac.ca. 120 IN A 207.195.108.140 si les deux sont inaccessibles, l'hôte est en panne, et naturellement wget ne pourra pas récupérer le fichier que vous voulez. s'il y a des ip accessibles, wget sautera l'ip down jusqu'à ce qu'il tombe sur une ip qu'il peut atteindre, et téléchargera le fichier à partir de là. dans votre cas, les deux hôtes semblent en panne en raison du long temps de réponse je pense (time-out).
Goez

vous pouvez utiliser l'option -T dans wget pour étendre la valeur du délai d'attente Le délai d'attente est de sec à secondes, alors peut-être qu'une valeur plus élevée vous aidera
Goez

D'accord. Je vois. Les deux ips ne sont pas pingables (j'ai vérifié à partir de 2 machines différentes). Pourtant, le lien fonctionne bien dans le navigateur et lorsqu'il est généré à partir de machines différentes de celle qui pose problème: /
Szczepan

Un délai d'attente plus élevé n'aide pas
Szczepan

1

Correction d'une résolution DNS lente dans les scripts PHP à l'aide de la bibliothèque CURL.

De la documentation libcurl:

CURLOPT_IPRESOLVE

Permet à une application de sélectionner le type d'adresses IP à utiliser lors de la résolution des noms d'hôte. Cela n'est intéressant que lorsque vous utilisez des noms d'hôte qui résolvent des adresses à l'aide de plusieurs versions d'IP. Les valeurs autorisées sont:

CURL_IPRESOLVE_WHATEVER

Par défaut, résout les adresses de toutes les versions IP autorisées par votre système.

CURL_IPRESOLVE_V4

Résolvez en adresses IPv4.

CURL_IPRESOLVE_V6

Résolvez en adresses IPv6.

Je pense que celles-ci peuvent être définies comme des variables environnementales. Au moins en utilisant PHP, ces paramètres ont fait une énorme différence dans la vitesse du résolveur.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.