Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ "ไม่มีเส้นทางไปยังโฮสต์" บน Linux

วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ  ไม่มีเส้นทางไปยังโฮสต์  บน Linux

เมื่อคุณพยายามเชื่อมต่อกับบริการบน Linux “ไม่มีเส้นทางไปยังโฮสต์” เป็นหนึ่งในสิ่งสุดท้ายที่คุณอยากได้ยิน เป็นข้อความกว้างๆ ที่หมายความว่าคอมพิวเตอร์ของคุณไม่สามารถเข้าถึงเซิร์ฟเวอร์เป้าหมาย ไม่ว่าจะเป็น daemon เซิร์ฟเวอร์ภายในที่ทำงานบนระบบของคุณ หรือเซิร์ฟเวอร์ระยะไกลที่คุณไม่สามารถเข้าถึงได้ไม่ว่าด้วยเหตุผลใดก็ตาม ที่นี่เราจะแสดงวิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ "ไม่มีเส้นทางไปยังโฮสต์" ใน Linux

เหตุใดฉันจึงได้รับข้อผิดพลาด “ไม่มีเส้นทางไปยังโฮสต์”

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

โฮสต์ออฟไลน์/บริการไม่ทำงาน

อาจดูเหมือนเจ็บปวดอย่างเห็นได้ชัด แต่คุณควรตรวจสอบก่อนว่าเซิร์ฟเวอร์ที่คุณกำลังพยายามเชื่อมต่อนั้นออนไลน์อยู่ อาจถูกลบออกเพื่อการบำรุงรักษาหรือประสบปัญหา

วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ  ไม่มีเส้นทางไปยังโฮสต์  บน Linux

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

sudo systemctl status SERVICENAME

พอร์ตผิด

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

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

สำหรับเซิร์ฟเวอร์ของคุณเอง คุณสามารถลองใช้ NMAP เพื่อค้นหาว่าคุณเริ่มให้บริการที่ไหน

sudo nmap -sS your.server.ip

หากคุณคิดว่าคุณใช้พอร์ตที่คลุมเครือจริงๆ คุณสามารถใช้ -p- ตั้งค่าสถานะเพื่อสแกนทั้งหมด แม้ว่าจะใช้เวลาสักครู่

Iptables กำลังบล็อกการเชื่อมต่อ

คุณอาจกำหนดค่า iptables โดยไม่ได้ตั้งใจเพื่อบล็อกการเชื่อมต่อบนพอร์ตนั้น คุณจะได้รับข้อความเดียวกันไม่ว่าคุณจะกำหนดค่า iptables บนเซิร์ฟเวอร์หรือเดสก์ท็อปของคุณ ดังนั้นจึงควรตรวจสอบทั้งสองอย่าง หากต้องการดูกฎ iptables ของคุณ ให้เรียกใช้คำสั่งต่อไปนี้

sudo iptables -S

DNS ของคุณมีการกำหนดค่าไม่ถูกต้อง

หากอย่างอื่นล้มเหลว คุณควรลอง ping ที่อยู่ IP ที่คุณต้องการเชื่อมต่อ อาจเป็นไปได้ว่าคอมพิวเตอร์ของคุณไม่ได้เชื่อมต่อกับเซิร์ฟเวอร์ DNS อย่างถูกต้อง

ping -c3 your.server.ip

หาก ping ใช้งานได้แต่เชื่อมต่อชื่อโดเมนไม่ได้ แสดงว่าคุณกำลังประสบปัญหา DNS

ผู้ใช้ Systemd สามารถเรียกใช้ systemd-resolve --status เพื่อตรวจสอบเซิร์ฟเวอร์ DNS ที่ระบบของคุณใช้ มันแยกย่อยตามอินเทอร์เฟซ ดังนั้นอย่าลืมตรวจสอบอินเทอร์เฟซที่คุณกำลังพยายามเชื่อมต่อจริง ๆ

วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ  ไม่มีเส้นทางไปยังโฮสต์  บน Linux

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

เปิด “/etc/systemd/resolved.conf” ในไฟล์นั้น ให้ยกเลิกการใส่เครื่องหมาย DNS และเพิ่ม IP ของเราเตอร์ของคุณหรือเซิร์ฟเวอร์ DNS อื่นที่รู้จัก DNS ทางเลือกเริ่มต้นสำหรับ Systemd คือเซิร์ฟเวอร์ DNS ของ Google ซึ่งอยู่ภายใต้ FallbackDNS .

DNS=192.168.1.1

หากคุณใช้ OpenRC หรือทางเลือกอื่นของ Systemd คุณสามารถค้นหาข้อมูล DNS ของคุณใน “/etc/resolv.conf”

nameserver 192.168.1.1

หากไม่มีข้อมูลใดๆ ให้ป้อนที่อยู่ IP ของเราเตอร์หรือเซิร์ฟเวอร์ DNS ที่รู้จักอื่นๆ ที่คุณต้องการใช้

หลังจากนั้น ให้รีสตาร์ทเครือข่ายหรือคอมพิวเตอร์ทั้งเครื่อง

แนวทาง GUI

หากคุณกำลังใช้เดสก์ท็อปแบบกราฟิกกับ Network Manager คุณสามารถแก้ไขข้อมูลการเชื่อมต่อของคุณด้วยวิธีนี้ เปิดแอปเพล็ตหรือไปที่การตั้งค่าระบบของคุณ เลือกการเชื่อมต่อของคุณและค้นหาแท็บ "IPv4" เปลี่ยนการเชื่อมต่อเป็น "ด้วยตนเอง" และป้อนที่อยู่ IP ของคอมพิวเตอร์และ IP ของเราเตอร์ด้วยตนเองเป็นเกตเวย์ จากนั้น ในช่อง DNS ด้านล่าง ให้ป้อน IP ของเราเตอร์หรือ IP ของเซิร์ฟเวอร์ DNS อื่น

การกำหนดค่าเครือข่ายหรือโฮสต์ไม่ถูกต้อง

มีตัวเลือกการกำหนดค่าอื่นๆ ที่อาจไม่ถูกต้อง สิ่งเหล่านี้จะทำให้คอมพิวเตอร์ของคุณไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้

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

หากคุณกำลังใช้ชื่อโฮสต์เฉพาะในการเชื่อมต่อหรือคุณได้ตั้งค่าโฮสต์เฉพาะบนเซิร์ฟเวอร์หรือไคลเอนต์ คุณต้องตรวจสอบให้แน่ใจว่าเครื่องทั้งสองเครื่องสามารถเชื่อมต่อกันได้ ตรวจสอบการกำหนดค่าของ “/etc/hosts,” “/etc/hosts.allow” และ “/etc/hosts.deny”

วิธีแก้ไขข้อผิดพลาดการเชื่อมต่อ  ไม่มีเส้นทางไปยังโฮสต์  บน Linux

สุดท้าย ตรวจสอบการกำหนดค่าเซิร์ฟเวอร์ของคุณ อาจมีการกำหนดค่าบางอย่างบนเซิร์ฟเวอร์อย่างไม่ถูกต้อง ทำให้ไคลเอ็นต์ไม่สามารถเชื่อมต่อได้อย่างถูกต้อง

หวังว่าการใช้เคล็ดลับเหล่านี้จะช่วยให้คุณแก้ไขปัญหาที่เกิดขึ้นซึ่งทำให้เกิดข้อผิดพลาด “ไม่มีเส้นทางไปยังโฮสต์” ในขณะเดียวกัน คุณสามารถเรียนรู้วิธีควบคุมเครือข่าย Wi-Fi ใน Linux หรือตรวจสอบว่าไฟร์วอลล์ของคุณบล็อกการเชื่อมต่อขาเข้าและขาออกหรือไม่