Có nhiều nguyên nhân gây ra lỗi kết nối "No Route to Host" trên Linux. Dưới đây Taimienphi.vn sẽ liệt kê một số nguyên nhân gây lỗi cũng như cách sửa lỗi "No Route to Host" trên Linux.
Máy chủ ngoại tuyến / dịch vụ không chạy
Để sửa lỗi kết nối "No Route to Host" trên Linux, trước tiên thử kiểm tra xem máy chủ mà bạn đang cố gắng kết nối có đang hoạt động trực tuyến hay không. Nhiều khả năng gây ra lỗi có thể là do máy chủ được đưa xuống để bảo trì hoặc đang gặp phải sự cố nào đó.
Bản thân các dịch vụ có thể không tự khởi động được. Nếu đó là máy chủ của mình, bạn có thể kiểm tra xem dịch vụ đã được khởi động hay chưa và đang hoạt động đúng cách hay chưa. Để làm được điều này, bạn sử dụng Systemd. Chạy lệnh dưới đây:
sudo systemctl status servicename
Sai cổng
Nguyên nhân thứ 2 có thể là do bạn đang cố gắng kết nối trên cổng không đúng. Nhiều Admin hệ thống lựa chọn chạy các dịch vụ mục tiêu như SSH trên các cổng khác nhau để ngăn chặn các hacker tấn công.
Nếu máy chủ không phải của bạn, thử kiểm tra tài liệu có sẵn hoặc liên hệ với các nhà cung cấp dịch vụ để được hỗ trợ.
Nếu máy chủ là của bạn, thử sử dụng NMAP để tìm vị trí bắt đầu dịch vụ của mình:
sudo nmap -sS your.server.ip
Nếu nghĩ rằng mình đang sử dụng sai cổng, bạn có thể sử dụng -p- flag để quét tất cả các cổng. Quá trình này sẽ mất một khoảng thời gian.
Iptables chặn kết nối
Rất có thể bạn vô tình cấu hình Iptables chặn kết nối trên cổng. Bạn sẽ nhận được cùng một thông báo dù là cấu hình cấu hình iptables trên máy chủ hay máy tính, vì vậy bạn sẽ phải kiểm tra cấu hình iptables trên cả 2. Để xem các rule trên cấu hình iptables, chạy lệnh dưới đây:
sudo iptables -S
Để các bước kết nối SSH Server được diễn ra thành công, bạn tham khảo cách kết nối với SSH server trên Windows, macOS và Linux tại đây
DNS cấu hình sai cách
Nếu áp dụng tất cả các trên mà không thành công, thử ping địa chỉ IP mà bạn đang tìm để kết nối, rất có thể là do máy tính của bạn kết nối với máy chủ DNS sai cách.
ping -c3 your.server.ip
Nếu ping hoạt động nhưng tên miền (domain name) thì không, thử cân nhắc xem xét vấn đề về DNS (Domain Name System)
Người dùng có thể chạy lệnh systemd-resolve --status để kiểm tra các máy chủ DNS mà hệ thống đang sử dụng. Các máy chủ này được chia nhỏ thành các giao diện khác nhau, vì vậy đảm bảo rằng bạn đang kiểm tra đúng máy chủ DNS mà bạn đang cố gắng kết nối.
Trong hầu hết các trường hợp, máy tính của bạn sẽ tìm kiếm các thông tin DNS có liên quan thông qua DHCP. Nếu đang sử dụng IP tĩnh hoặc một cái gì đó trên hệ thống mạng của bạn, nhưng lại được cấu hình sai cách, trường hợp này bạn sẽ phải thiết lập DNS theo cách thủ công.
Mở file "/etc/systemd/resolved.conf". Trong file này bạn bỏ dòng DNS đi và thêm địa chỉ IP router của bạn hoặc một máy chủ DNS khác vào. DNS dự phòng mặc định cho Systemd là máy chủ DNS của Google được liệt kê trong FallbackDNS.
DNS=192.168.1.1
Nếu đang sử dụng OpenRC hoặc Systemd thay thế khác, bạn có thể tìm kiếm thông tin DNS của mình trong "/etc/resolv.conf".
nameserver 192.168.1.1
Nếu không thấy thông tin nào trong đó, nhập địa chỉ IP của router hoặc bất kỳ máy chủ DNS nào mà bạn muốn sử dụng.
Cuối cùng khởi động lại mạng hoặc máy tính của bạn để kiểm tra xem việc sửa lỗi No Route to Host trên Linux đã thành công hay chưa.
Việc đổi DNS rất hay được sử dụng trên Windows, khi cần đổi DNS để truy cập vào các trang bị chặn như Facebook, Blog hoặc vào một thiết bị thiết bị nào đó, người dùng cần đổi DNS để tiếp tục thực hiện công việc của mình.
Cách khác
Nếu máy tính bạn đang sử dụng có card đồ họa có Network Manager, bạn có thể chỉnh sửa các thông tin kết nối theo cách đó. Mở applet hoặc thông qua cửa sổ thiết lập hệ thống. Chọn kết nối của bạn, sau đó tìm tab IPv4. Chuyển đổi thiết lập kết nối thành Manual, nhập địa chỉ IP của máy tính bằng tay làm gateway. Sau đó trong khung DNS bên dưới, nhập địa chỉ IP của router hoặc địa chỉ IP của máy chủ DNS khác.
Cấu hình mạng hoặc máy chủ không chính xác
Nguyên nhân gây ra lỗi kết nối "No Route to Host" trên Linux cũng có thể là do một số tùy chọn được cấu hình không chính xác, dẫn đến nguyên nhân máy tính của bạn không thể kết nối với máy chủ.
Trước tiên cần đảm bảo rằng cấu hình mạng máy tính đã chính xác. Kiểm tra lại các file cấu hình, và tất nhiên xem bạn có thể kết nối với Internet theo cách khác hay không.
Nếu đang sử dụng hostname cụ thể để kết nối hoặc bạn đã thiết lập các host cụ thể trên máy chủ hoặc client, cần đảm bảo cả 2 máy có thể kết nối với nhau. Kiểm tra cấu hình của "/etc/hosts", "/etc/hosts.allow." và "/etc/hosts.deny".
Cuối cùng kiểm tra cấu hình máy chủ của bạn. Nếu một cái gì đó trên máy chủ được cấu hình chưa chính xác, nó sẽ chặn client kết nối.
Trong bài viết trên Taimienphi.vn vừa cung cấp cho bạn các thông tin nguyên nhân phổ biến nhất gây ra lỗi và một số cách sửa lỗi kết nối "No Route to Host" trên Linux.
Bạn có thể tham khảo thêm cáchệ điều hành trên Linuxphổ biến nhất để có thể tìm ra một hệ điều hành Linux ổn định, ít lỗi và có nhiều tính năng tuyệt vời nhất. Nếu muốn chia sẻ ý kiến của mình cho Taimienphi.vn, vui lòng để lại ý kiến của bạn trong phần bình luận bên dưới bài viết.