Cách khắc phục lỗi kết nối “Không định tuyến đến máy chủ” trong Linux
Khi bạn đang cố gắng kết nối với một dịch vụ trên Linux, "Không có tuyến đường để lưu trữ" là một trong những điều cuối cùng mà bạn muốn nghe. Đó là một thông báo rộng có nghĩa là máy tính của bạn không thể truy cập vào máy chủ đích.
Bởi vì bản chất rộng của thông điệp có một số khả năng có thể gây ra nó.
Máy chủ lưu trữ ngoại tuyến / Dịch vụ không chạy
Nó có thể có vẻ đau đớn rõ ràng, nhưng trước tiên bạn nên kiểm tra xem máy chủ mà bạn đang cố gắng để kết nối với thậm chí trực tuyến. Nó có thể đã được đưa xuống để bảo trì hoặc gặp vấn đề.
Bản thân dịch vụ có thể chưa được bắt đầu. Nếu đó là máy chủ của bạn, bạn có thể kiểm tra xem dịch vụ đã được bắt đầu chưa và đang chạy đúng cách. Để làm điều đó với Systemd, hãy chạy lệnh sau.
sudo systemctl status servicename
Cổng sai
Bạn có thể đang cố gắng kết nối trên cổng không chính xác. Nhiều quản trị viên hệ thống chọn chạy các dịch vụ thường được nhắm mục tiêu như SSH trên các cổng khác nhau để giúp ngăn chặn những kẻ tấn công.
Nếu máy chủ không phải là của riêng bạn, hãy kiểm tra tài liệu có sẵn hoặc liên hệ với các dịch vụ hỗ trợ của họ.
Đối với máy chủ của riêng bạn, bạn có thể thử sử dụng NMAP để tìm ra nơi bạn bắt đầu dịch vụ của mình.
sudo nmap -sS your.server.ip
Nếu bạn nghĩ rằng bạn đã sử dụng một cổng thực sự mơ hồ, bạn có thể sử dụng cờ -p-
để quét tất cả. Nó sẽ mất một lúc mặc dù.
Iptables là chặn kết nối
Có thể bạn đã vô tình định cấu hình iptables để chặn các kết nối trên cổng đó. Bạn sẽ nhận được thông báo tương tự cho dù bạn đã định cấu hình iptables trên máy chủ hoặc máy tính để bàn của mình, vì vậy bạn nên kiểm tra cả hai. Để xem các quy tắc iptables của bạn, hãy chạy lệnh sau.
sudo iptables -S
DNS của bạn được định cấu hình không đúng
Nếu vẫn thất bại, bạn nên ping
địa chỉ IP mà bạn muốn kết nối. Có thể máy tính của bạn không kết nối với máy chủ DNS đúng cách.
ping -c3 your.server.ip
Nếu ping hoạt động nhưng kết nối một tên miền thì không, bạn đang xem một vấn đề DNS.
Người dùng Systemd có thể chạy systemd-resolve --status
để kiểm tra các máy chủ DNS mà hệ thống của bạn đang sử dụng. Nó được chia nhỏ theo giao diện, vì vậy hãy đảm bảo kiểm tra giao diện mà bạn thực sự đang cố kết nối.
Trong hầu hết các trường hợp, máy tính của bạn sẽ khám phá thông tin DNS có liên quan qua DHCP. Nếu bạn đang sử dụng IP tĩnh hoặc một thứ gì đó trên mạng của bạn được định cấu hình khác, bạn có thể phải đặt DNS theo cách thủ công.
Mở tập tin “/etc/systemd/resolved.conf.” Trong tập tin đó, bỏ ghi chú dòng DNS
và thêm vào IP của router hoặc một máy chủ DNS đã biết khác. DNS dự phòng mặc định cho Systemd là các máy chủ DNS của Google được liệt kê trong FallbackDNS
.
DNS = 192.168.1.1
Nếu bạn đang sử dụng OpenRC hoặc một Systemd thay thế, bạn có thể tìm thấy thông tin DNS của bạn trong "/etc/resolv.conf."
máy chủ tên 192.168.1.1
Nếu không có gì ở đó, hãy nhập địa chỉ IP của bộ định tuyến của bạn hoặc bất kỳ máy chủ DNS nào khác mà bạn muốn sử dụng.
Sau đó, khởi động lại mạng hoặc toàn bộ máy tính của bạn.
Cách GUI
Nếu bạn đang sử dụng máy tính để bàn đồ họa với Trình quản lý mạng, bạn có thể chỉnh sửa thông tin kết nối theo cách đó. Mở applet hoặc đi qua các thiết lập hệ thống của bạn. Chọn kết nối của bạn và tìm tab “IPv4”. Chuyển kết nối thành “Thủ công” và nhập thủ công địa chỉ IP của máy tính và IP của bộ định tuyến làm cổng. Sau đó, trong trường DNS bên dưới, nhập IP của bộ định tuyến hoặc IP của một máy chủ DNS khác.
Cấu hình máy chủ hoặc mạng không chính xác
Có một số tùy chọn cấu hình khác có thể không chính xác. Bất kỳ người trong số họ sẽ làm cho nó không thể cho máy tính của bạn để kết nối với máy chủ.
Trước tiên, hãy đảm bảo rằng cấu hình mạng của máy tính của bạn là chính xác. Kiểm tra kỹ các tập tin 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 bạn đang sử dụng tên máy chủ cụ thể để kết nối hoặc bạn đã thiết lập các máy chủ cụ thể trên máy chủ hoặc máy khách, bạn cần đảm bảo rằng cả hai 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.” “/etc/hosts.deny.”
Cuối cùng, hãy kiểm tra cấu hình máy chủ của bạn. Một cái gì đó có thể được cấu hình không đúng trên máy chủ, ngăn chặn khách hàng kết nối đúng cách.
Trong khi đóng đinh chính xác nguyên nhân “Không có tuyến đường để lưu trữ” không đơn giản, bạn có thể làm theo các bước sau để loại trừ các nguyên nhân phổ biến nhất gây ra lỗi và khắc phục.