Cách khắc phục: Kết nối bị từ chối bởi cổng 22 Debian / Ubuntu

How Fix Connection Refused Port 22 Debian Ubuntu



SSH cung cấp một cách an toàn để truy cập và quản lý các máy chủ Linux. Đôi khi trong khi kết nối với máy chủ SSH, người dùng thường gặp phải lỗi từ chối kết nối bởi cổng 22. Điều này xảy ra do một số lý do như dịch vụ SSH không chạy, cổng bị tường lửa chặn hoặc máy chủ đang sử dụng một cổng khác. Nó cũng có thể xảy ra do vấn đề xung đột IP. Trong bài viết này, chúng tôi sẽ thảo luận một số giải pháp mà bạn nên thử để khắc phục lỗi.

Ghi chú: Các lệnh được thảo luận ở đây đã được thử nghiệm trên Ubuntu 20.04 LTS. Các lệnh tương tự cũng hợp lệ cho hệ thống Debian.







Sửa lỗi kết nối bị từ chối

Đây là lỗi bị từ chối Kết nối mà bạn có thể gặp phải khi kết nối với hệ thống từ xa qua SSH.





Thực hiện theo các giải pháp dưới đây từng bước để giải quyết lỗi Kết nối bị từ chối.





Đảm bảo rằng OpenSSH đã được cài đặt

Một trong những lý do bạn có thể nhận được lỗi kết nối bị từ chối là do máy chủ OpenSSH không được cài đặt trên máy chủ đích.

Trước tiên, bạn cần đảm bảo rằng máy chủ OpenSSH đã được cài đặt trên hệ thống mà bạn đang cố gắng truy cập qua SSH. Để kiểm tra xem OpenSSH đã được cài đặt hay chưa, hãy sử dụng lệnh sau trong Thiết bị đầu cuối của máy chủ đích:



$sudodanh sách apt--Cài đặt | nắm chặtmáy chủ openssh

Lệnh này về cơ bản lọc thuật ngữ máy chủ openssh khỏi danh sách các gói đã cài đặt. Nếu bạn nhận được kết quả tương tự sau đây, nó cho biết máy chủ OpenSSH đã được cài đặt. Mặt khác, nếu bạn không nhận được đầu ra, điều đó có nghĩa là OpenSSH bị thiếu trên máy chủ đích.

Trong trường hợp nó không được cài đặt trên máy chủ đích, bạn có thể cài đặt nó bằng cách sử dụng lệnh sau là sudo:

$sudođúng cáchTải vềmáy chủ openssh

Sau đó, nhập mật khẩu sudo và khi được yêu cầu xác nhận, hãy nhấn ‘y’. Sau khi cài đặt, xác nhận nó bằng cách sử dụng cùng một lệnh

$sudodanh sách apt--Cài đặt | nắm chặtmáy chủ openssh

Kiểm tra dịch vụ SSH

Dịch vụ OpenSSH chạy ở chế độ nền và lắng nghe các kết nối đến. Dịch vụ OpenSSH bị dừng có thể là một trong những lý do khiến bạn nhận được lỗi kết nối bị từ chối.

Do đó, cần phải kiểm tra xem dịch vụ OpenSSH có đang chạy hay không bằng cách sử dụng lệnh sau trong Terminal:

$sudoDịch vụsshtrạng thái

Nếu bạn thấy kết quả sau, điều đó có nghĩa là dịch vụ đang hoạt động và đang chạy ở chế độ nền.

Mặt khác, nếu bạn nhận được không hoạt động (chết), điều đó có nghĩa là dịch vụ không chạy . Bạn có thể chạy dịch vụ OpenSSH bằng lệnh sau dưới dạng sudo trong Terminal:

$sudoDịch vụsshbắt đầu

Để khởi động lại dịch vụ, hãy sử dụng lệnh sau:

$sudoDịch vụsshkhởi động lại

Kiểm tra cổng lắng nghe máy chủ SSH

Một lý do khác để nhận được lỗi từ chối Kết nối là do bạn đang cố gắng kết nối với cổng sai. Ví dụ: nếu máy chủ được định cấu hình để lắng nghe trên cổng 2244 và bạn đang cố gắng kết nối với cổng 22 mặc định của nó, thì trong trường hợp này, bạn sẽ nhận được lỗi Kết nối bị từ chối.

Trước khi cố gắng kết nối, bạn cần kiểm tra cổng lắng nghe máy chủ SSH. Nếu đó là cổng mặc định (22), thì bạn có thể kết nối nó bằng lệnh sau:

$ssh [tên tài khoản]@[IP của trình điều khiển từ xa hoặctên máy chủ]

Nếu đó là một số cổng khác với cổng mặc định, bạn sẽ cần kết nối với máy chủ SSH bằng cổng này:

$ssh -P [port_number] [tên tài khoản]@[địa chỉ IP]

Để kiểm tra xem máy chủ OpenSSH đang nghe cổng nào; sử dụng lệnh sau trong Terminal:

$sudo netstat -ltnp | nắm chặtsshd

Bạn sẽ nhận được kết quả tương tự như sau:

Trong cột thứ ba, bạn có thể thấy cổng lắng nghe của máy chủ là 2244. Nếu đúng như vậy, bạn sẽ cần kết nối với máy chủ SSH bằng cổng này.

$ssh -P [2244] [tên tài khoản]@[địa chỉ IP]

Cho phép SSH trong tường lửa

Tường lửa chặn cổng SSH có thể là một lý do chính khác gây ra lỗi Kết nối bị từ chối. Nếu tường lửa đang chạy trên máy chủ SSH, bạn sẽ cần cho phép cổng SSH trong đó bằng lệnh sau. Thay thế cái Hải cảng bằng số cổng mà máy chủ SSH đang nghe:

$sudoufw cho phép cổng/tcp

Ví dụ: nếu máy chủ SSH đang nghe cổng 2244, thì bạn có thể cho phép nó trong tường lửa như:

$sudoufw cho phép2244/tcp

Tải lại tường lửa bằng lệnh sau:

$sudoufw tải lại

Để xác nhận xem các quy tắc đã được thêm vào hay chưa, hãy kiểm tra trạng thái của tường lửa bằng lệnh sau trong Terminal:

$sudotình trạng ufw

Kết quả sau cho thấy cổng 2244 được phép trong tường lửa.

Giải quyết xung đột địa chỉ IP trùng lặp

Lỗi kết nối bị từ chối cũng có thể xảy ra do xung đột địa chỉ IP trùng lặp. Vì vậy, hãy đảm bảo hệ thống không có địa chỉ IP trùng lặp.

Cài đặt tiện ích arping trên hệ thống của bạn bằng lệnh sau:

$sudođúng cáchTải vềvòng cung

Sau đó ping địa chỉ IP của máy chủ SSH.

$ping <địa chỉ IP>

Trong đầu ra, nếu bạn thấy phản hồi từ nhiều hơn một địa chỉ MAC, thì điều đó cho thấy rằng có một IP trùng lặp đang chạy trên hệ thống. Nếu đúng như vậy, hãy thay đổi địa chỉ IP của máy chủ SSH và thử kết nối lại với địa chỉ IP mới.

Đây là cách sửa lỗi Cổng 22 bị từ chối kết nối trong hệ thống Linux. Trong bài viết này, chúng tôi đã mô tả một số cách chắc chắn sẽ giúp bạn trong việc giải quyết lỗi Kết nối bị từ chối.