ทำไมถึงแขวน


12

ไปที่ url ที่เจาะจงหนึ่งอันจากเซิร์ฟเวอร์ของฉันเพื่อให้หมดเวลา URL อื่น ๆ ทั้งหมดจากช่องนี้ใช้งานได้ดี URL นี้ใช้งานได้ดีจากกล่องอื่น ๆ ที่ฉันมี นี่คือผลลัพธ์:

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

คุณบอกฉันได้ไหมว่ามีอะไรผิดปกติและฉันจะแก้ไขปัญหาได้อย่างไร ฉันใช้ Ubuntu 11.04 (GNU / Linux 2.6.38-8-server x86_64)

ขอบคุณล่วงหน้ามากและให้อภัยฉันไม่รู้ noobish :)

ping, telnet, nc www.fcc-fac.ca 80 - ทั้งหมดหยุดทำงาน อย่างไรก็ตามมี URL อื่น ๆ ที่ wget'able ได้อย่างง่ายดาย แต่มีโฮสต์เพียงบางแห่งเท่านั้นที่สามารถ pingable ได้

traceroute ไม่ได้บอกฉันมาก:

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

ขอบคุณมากสำหรับคำตอบ!

คำตอบ:


14

ฉันคิดว่าปัญหาคือว่า wget ไม่สามารถจัดการกับที่อยู่ IPv6 ได้เป็นอย่างดีและเซิร์ฟเวอร์ DNS กำลังส่ง IPv6 สำหรับไซต์นั้น ขออภัยถ้าฉันเข้าใจผิดคำถามของคุณ ตรวจสอบการทดสอบเหล่านั้น:

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'

ถ้าฉันบังคับ IPv6 เพราะฉันเชื่อว่าปัญหาของคุณเกี่ยวข้องมันจะล้มเหลว:

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'

อย่างไรก็ตามหากฉันบังคับให้ใช้ IPv4 มันจะดาวน์โหลดหน้าดัชนีให้ถูกต้อง

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'

เขาแก้ไขได้ด้วยที่อยู่ IPv4
Jodie C

อีกตัวอย่างหนึ่งที่ว่าทำไมฉันไม่ชอบ IPv6: - /
PJ Brunet

1

รันnc www.fcc-fac.ca 80พิมพ์GET /และกด Enter สองครั้ง

สายตาจากระยะไกลอาจลงหรือขวางกั้นคุณ


สวัสดีขอบคุณสำหรับคำตอบ - ฉันอัปเดตคำถามเดิม
Szczepan

หากคุณไม่สามารถ netcat ไปยังที่อยู่คุณอาจถูกบล็อกที่ไหนสักแห่งระหว่างทาง
Jodie C

1

ดูเหมือนว่า wget จะไม่สามารถเชื่อมต่อกับ ip ของคุณบนพอร์ต 80

ตรวจสอบว่าเซิร์ฟเวอร์ของคุณเป็น pingable:

ping 65.87.238.35
ping 207.195.108.140

ถ้า ip เป็น pingable ให้ตรวจสอบว่าคุณสามารถเชื่อมต่อกับพอร์ต 80 โดยใช้ telnet หรือไม่:

telnet 65.87.238.35 80

หากเซิร์ฟเวอร์ไม่ตอบสนองต่อการ ping อาจเป็นไปไม่ได้หรือไม่สามารถเข้าถึงแหล่งข้อมูลของคุณได้

ทดสอบด้วยเครื่องมือ traceroute เพื่อดูว่าการเชื่อมต่อล้มเหลว


สวัสดีขอบคุณสำหรับคำตอบ - ฉันอัปเดตคำถามเดิม
Szczepan

ขุดบน www.fcc-fac.ca บอกฉันว่ามันมีระเบียน DNS 2 ประเภทประเภท A: ;; ส่วนคำตอบ: www.fcc-fac.ca 120 IN A 65.87.238.35 www.fcc-fac.ca 120 IN 207.195.108.140 ถ้าทั้งคู่ไม่สามารถเข้าถึงโฮสต์ได้และโดยปกติจะไม่สามารถเรียกคืนไฟล์ที่คุณต้องการได้ ถ้ามี ip ที่เข้าถึงได้ wget จะข้าม ip ลงจนกว่าจะเจอ ip ที่สามารถเข้าถึงและดาวน์โหลดไฟล์ได้จากที่นั่น ในกรณีของคุณทั้งสองดูเหมือนโฮสต์เนื่องจากเวลาตอบสนองนานที่ฉันคิด (หมดเวลา)
Goez

คุณสามารถใช้ตัวเลือก -T ใน wget เพื่อขยายค่าการหมดเวลาการหมดเวลาเป็นวินาทีถึงวินาทีดังนั้นค่าที่สูงขึ้นอาจช่วยได้
Goez

ตกลง. ฉันเห็น. ips ทั้งสองไม่ได้รับการแก้ไข (ฉันตรวจสอบจาก 2 เครื่องที่แตกต่างกัน) ยังลิงค์ทำงานได้ดีในเบราว์เซอร์และเมื่อ wget'ed จากเครื่องที่แตกต่างกว่าที่ทำให้เกิดปัญหา: /
Szczepan

การหมดเวลาที่สูงขึ้นไม่ได้ช่วย
Szczepan

1

แก้ไขปัญหาการแก้ไข DNS ช้าในสคริปต์ PHP โดยใช้ไลบรารี CURL

จากเอกสาร libcurl:

CURLOPT_IPRESOLVE

อนุญาตให้แอปพลิเคชันเลือกประเภทที่อยู่ IP ที่จะใช้เมื่อแก้ไขชื่อโฮสต์ สิ่งนี้น่าสนใจเมื่อใช้ชื่อโฮสต์ที่แก้ไขที่อยู่โดยใช้ IP มากกว่าหนึ่งเวอร์ชัน ค่าที่อนุญาตคือ:

CURL_IPRESOLVE_WHATEVER

เริ่มต้นแก้ไขที่อยู่เป็น IP ทุกเวอร์ชันที่ระบบของคุณอนุญาต

CURL_IPRESOLVE_V4

แก้ไขเป็นที่อยู่ IPv4

CURL_IPRESOLVE_V6

แก้ไขเป็นที่อยู่ IPv6

ฉันเชื่อว่าสิ่งเหล่านี้สามารถกำหนดให้เป็นตัวแปรด้านสิ่งแวดล้อม อย่างน้อยในขณะที่ใช้ PHP การตั้งค่าเหล่านี้สร้างความแตกต่างอย่างมากต่อความเร็วของตัวแก้ไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.