เทคนิคที่ใช้เมื่อวิเคราะห์สาเหตุที่เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้จากการ ping


2

บ่อยครั้งที่ทำงานฉันต้อง ping เซิร์ฟเวอร์เพื่อตรวจสอบว่ายังมีชีวิตอยู่หรือไม่ บางครั้งฉันได้รับข้อความแจ้งว่าไม่พบโฮสต์ (ชื่อ?) หรือข้อผิดพลาดอื่น ๆ ซึ่งส่งผลให้ไม่ตอบสนอง

มีเทคนิคอะไรบ้างในการวินิจฉัยสาเหตุของปัญหาเหล่านี้ ฉันควรดูที่เครื่องเป้าหมายก่อนหรือไม่ หรือเครื่องและไฟร์วอลล์ของฉัน มันสำคัญไหมถ้าหากเครื่องกำลังกระตุกและอยู่ในโดเมนที่ต่างกัน? (ฉันคิดว่าใช่เฉพาะในกรณีที่มีการตั้งค่าไฟร์วอลล์ให้ปฏิบัติตาม)

ขอบคุณ

คำตอบ:


2

ping ที่ล้มเหลวหมายความว่า:

  1. คำขอ ping ไม่ได้ส่งไปยังโฮสต์เป้าหมาย
  2. การตอบสนอง ping ไม่ได้ส่งไปยังโฮสต์ที่ส่งการร้องขอ

มีสาเหตุหลายประการที่อาจเกิดจากสิ่งเหล่านี้สาเหตุส่วนใหญ่ของเหตุผลเหล่านี้สามารถแบ่งออกเป็นปัญหาทางกายภาพหรือซอฟต์แวร์

เมื่อทำการดีบั๊กฉันเริ่มด้วยองค์ประกอบทางกายภาพของเส้นทางการส่งข้อมูลนั่นคือ NICs, สายเคเบิลเครือข่ายและอุปกรณ์ตัวกลาง

การตรวจร่างกาย

  1. สายเคเบิลเครือข่ายเชื่อมต่อโฮสต์ทั้งสอง หากโฮสต์ทั้งสองไม่ได้เชื่อมต่อโดยตรงด้วยสายเคเบิลตรวจสอบให้แน่ใจว่า NIC ที่ส่งและรับได้เชื่อมต่อกับเราเตอร์และ / หรือสวิตช์พอร์ตที่ถูกต้องเนื่องจากสามารถกำหนดค่าให้เส้นทางการจราจรแตกต่างกันได้

ตรวจสอบซอฟต์แวร์

  1. ตรวจสอบให้แน่ใจว่า NICs ในแต่ละเครื่องได้รับการยอมรับจากระบบปฏิบัติการ [1]
  2. ตรวจสอบให้แน่ใจว่าเครื่องทั้งสองมีที่อยู่ IP ที่ถูกต้องซับเน็ตมาสก์เกตเวย์และเนมเซิร์ฟเวอร์กำหนดค่า [2]
  3. ตรวจสอบให้แน่ใจว่าโฮสต์ที่ส่งและรับมีที่อยู่ MAC ที่ถูกต้อง (ใช่ฉันเคยมีปัญหานี้มาก่อน) [3]
  4. ตรวจสอบให้แน่ใจว่าโฮสต์ที่ส่งและรับมีข้อมูลแคช ARP ที่ถูกต้องสำหรับเกตเวย์ของพวกเขา [4]
  5. มีความเป็นไปได้ที่โฮสต์ที่ส่งจะมีรายการแคช ARP สำหรับโฮสต์ที่รับหรือในทางกลับกัน หากมีรายการดังกล่าวตรวจสอบให้แน่ใจว่ารายการเหล่านี้ถูกต้องโดยตรวจสอบว่าที่อยู่ IP จับคู่กับที่อยู่ MAC ที่ถูกต้อง หากมีความไม่สอดคล้องกันให้ลบรายการเหล่านั้นออกจากแคช ARP
  6. ตรวจสอบว่า ping packets (ICMP Echo Requests และ ICMP Echo Responses) ไม่ได้ถูกบล็อคโดยตัวกรองบนไฟร์วอลล์ซอฟต์แวร์ท้องถิ่นหรือตัวกรองที่ทำงานบนอุปกรณ์ระหว่างโฮสต์ที่ส่งและรับ
  7. หากคุณใช้ชื่อโฮสต์เพื่อระบุโฮสต์ที่รับให้ลองใช้ที่อยู่ IP โดยตรงเนื่องจากจะเป็นการลบปัญหาที่เกิดจากกระบวนการแก้ไขปัญหาชื่อ

ข้อความแสดงข้อผิดพลาดที่ส่งคืนโดยคำสั่ง ping ควรได้รับการพิจารณาเมื่อแก้ไขปัญหาข้อความแสดงข้อผิดพลาดที่ฉันเห็นโดยทั่วไป ได้แก่ :

Request Timed Out

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

Reply from {host}: Destination network unreachable

บ่อยครั้ง {host} จะเป็น NIC บนเครื่องโลคอลหรือเกตเวย์ของเครื่อง ข้อความหมายความว่าไม่สามารถหาเส้นทางระหว่าง {host} และรับโฮสต์ (ฉันอาจจะผิดที่นี่)

นี่ไม่ใช่รายการเหตุผลที่ครบถ้วนว่าทำไมการ ping อาจล้มเหลว แต่ครอบคลุมปัญหาทั่วไปมากมาย ฉันหวังว่ามันจะช่วยให้ใครบางคนในครั้งต่อไปที่เครือข่ายของพวกเขาหยุดพัก

เชิงอรรถด้านล่างใช้กับระบบที่ใช้ Windows NT เนื่องจากเป็นที่ที่ฉันมีประสบการณ์

[1] คุณสามารถตรวจสอบว่าระบบปฏิบัติการมีไดรเวอร์ที่ถูกต้องสำหรับการ์ดเครือข่ายของคุณโดยตรวจสอบว่ามีรายการควบคุมเครือข่ายใด ๆ อยู่ภายใต้โหนดอุปกรณ์ที่ไม่รู้จักในตัวจัดการอุปกรณ์ หากมีอย่างใดอย่างหนึ่งคุณต้องค้นหาโปรแกรมควบคุมที่รองรับสำหรับการ์ดของคุณ

ตรวจสอบภายใต้โหนดอะแดปเตอร์เครือข่ายสำหรับการ์ดของคุณโดยสมมติว่าการ์ดของคุณอยู่ในรายการคลิกสองครั้งและตรวจสอบข้อผิดพลาดที่ทราบว่าอยู่ในสถานะอุปกรณ์

[2] กล่องโต้ตอบการกำหนดค่า TCP / IP สามารถเข้าถึงได้บน Vista / Win 7 โดยการเปิดเครือข่ายและการแชร์ Centere - & gt; เปลี่ยนการตั้งค่าอะแดปเตอร์ (บานหน้าต่างด้านซ้าย) - & gt; คลิกขวาที่อะแดปเตอร์ที่คุณสนใจและเลือกคุณสมบัติ (ต้องมีระดับความสูง) จากนั้นคลิกสองครั้งที่โปรโตคอล TCP / IP เวอร์ชัน 4 หรือ 6 ขึ้นอยู่กับสิ่งที่คุณใช้ (เป็นไปได้มากที่สุด v4)

[3] กำลังวิ่ง ipconfig /all คำสั่งจะแสดงที่อยู่ MAC เช่นเดียวกับที่อยู่ IP, ซับเน็ตมาสก์, เกตเวย์และเนมเซิร์ฟเวอร์ ที่อยู่ MAC มีชื่ออยู่จริงในผลลัพธ์

[4] ARP -a คำสั่งแสดงตาราง ARP ปัจจุบันสำหรับโฮสต์


1

เพียงเพื่อเพิ่มไปก่อนหน้า ตอบ :

ไม่พบชื่อโฮสต์: สิ่งนี้ชี้ไปที่ปัญหา DNS แทนที่จะเป็นปัญหาการกำหนดเส้นทางดังนั้นคุณจะต้องตรวจสอบเซิร์ฟเวอร์ DNS ของคุณและความสัมพันธ์กับอุปกรณ์ที่คุณส่งสัญญาณ

หากต้องการติดตามว่า ping ของคุณได้รับไกลแค่ไหนให้ลองใช้ tracert แทน ping เพื่อดูว่ามีอุปกรณ์ใดมาถึงก่อนที่เส้นทางจะล้มเหลว


นี่ควรเป็นความเห็นต่อคำตอบไม่ใช่คำตอบที่แยกต่างหาก โปรดทราบคำตอบสำหรับผู้ใช้ขั้นสูงไม่ได้เรียงตามลำดับเวลาตามค่าเริ่มต้น
BinaryMisfit

@Diago: คุณควรอ่าน "คำตอบ [ลิงก์ http] ... " แทน "คำตอบด้านบน" แต่ไม่อย่างนั้นมันเป็นคำตอบที่ถูกต้องที่จะเพิ่มมูลค่าเพิ่มเติม
Martin

@ Martin ไม่มาก เนื่องจากความคิดที่อยู่เบื้องหลัง SE จะต้องมีคำตอบที่ยอมรับได้หนึ่งข้อจึงควรแสดงความคิดเห็นซึ่งจะรวมอยู่ในคำตอบข้างต้น เหตุผลเดียวที่ผู้ดำเนินรายการไม่ทำการแก้ไขเหล่านี้คืออนุญาตให้ผู้ใช้เรียนรู้สิ่งที่ถูกต้องและสิ่งที่ไม่ถูกต้อง
BinaryMisfit

@Diago: ดูเหมือนว่าเราไม่เห็นด้วยกับสิ่งที่ถือเป็นคำตอบที่ถูกต้องแยกต่างหากใน SE ดังนั้นไม่ว่าจะเป็น
Martin

1

หากคุณได้รับการปิงบางครั้ง แต่ไม่ใช่คนอื่นและไม่สามารถพิสูจน์ / จับได้ ... นี่คือเครื่องมือบางอย่างที่ช่วยระบุปัญหาเครือข่าย:

ของ windows: http://www.pingplotter.com/freeware.html Pathping

ลินุกซ์: http://en.wikipedia.org/wiki/MTR_%28software%29

เครื่องมือเหล่านี้อาจช่วยให้คุณพูดได้ว่าการกระโดดครั้งที่ 5 เป็นสิ่งที่บ้าไปแล้วจากนั้นคุณสามารถแก้ไขปัญหาการกระโดดนั้นได้

บางครั้งในเครือข่ายคุณต้องค้นหาอุปกรณ์ที่ทำให้เกิดการตอบสนองช้าและคุณไม่สามารถค้นหาได้ในระหว่างการปิงเพียงครั้งเดียว เครื่องมือเหล่านี้ช่วยระบุชุดการส่ง Ping โดยรักษา "คะแนน" และแสดงกราฟให้คุณทราบ

โปรดทราบว่าบางครั้งการปิงให้ความสำคัญต่ำเช่นกันดังนั้นการปิงช้าไม่ได้หมายความว่าเครือข่ายไม่ดี

นอกเหนือจากคำตอบที่ยอดเยี่ยมและทั่วถึงแล้วให้ตรวจสอบว่า NIC ใช้ลิงค์ความเร็วที่เหมาะสม:

ใน windows คุณสามารถกระตุ้น gui ในคุณสมบัติเครือข่ายและใน Linux คุณจะต้องใช้ "ethtool" หากโฮสต์ที่ด้านใดด้านหนึ่งของเราเตอร์ / สวิตช์ถูกตั้งค่าเป็น 10MB และ Half Duplex แต่เราเตอร์ / สวิตช์ถูกตั้งค่าเป็น 100MBs Full Duplex มันจะคายข้อผิดพลาดแปลก ๆ (ตัวอย่าง) นี่เป็นเรื่องธรรมดามากในการตั้งค่าใหม่แม้ว่าจะเป็นระบบที่สร้างไว้แล้วก็ตาม

คุณสามารถดูข้อผิดพลาดเหล่านี้ได้โดยใช้ netstat:

netstat -S

หรือโดยการตรวจสอบอย่างต่อเนื่องหากคุณเป็น uber nerd:

สำหรับ / L% i ใน (0,0,0) ทำ @cls & amp; & amp; netstat -S | find / I "ผิดพลาด" & amp; & amp; @ping -n 1 -w 2000 224.0.0.0 & gt; NUL & amp; & amp; @cls

หากคุณมีข้อผิดพลาดนั่นไม่ใช่เรื่องใหญ่ แต่ถ้าคุณมีข้อผิดพลาดเพิ่มขึ้นเป็นครั้งที่สองนั่นอาจเป็นปัญหาของฮาร์ดแวร์ / สายเคเบิล / ความเร็ว / ดูเพล็กซ์


0

ถ้า ping ไม่ทำงานนี่คือสิ่งที่ฉันทำ:

  • ตรวจสอบว่าชื่อแก้ไขเป็น IP ที่ถูกต้อง - มักจะมีปัญหาไม่ใช่เซิร์ฟเวอร์ แต่มีแล็ปท็อปของเพื่อนร่วมงาน ฯลฯ
  • หากฉันแน่ใจว่า IP นั้นถูกต้องฉันจะใช้ tracert เพื่อตรวจสอบว่าฉันได้รับไปเท่าใด
  • ถ้าฉันไม่แน่ใจว่าเซิร์ฟเวอร์ที่ฉันพยายาม ping กำลังตอบสนองต่อข้อความ ICMP ฉันใช้ telnet เพื่อเปิดพอร์ตบนเซิร์ฟเวอร์และดูสิ่งที่บอกฉัน
  • ฉันตรวจสอบว่าเพื่อนร่วมงานสามารถเข้าถึงเซิร์ฟเวอร์จากพีซีของเขาได้หรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.