Làm cách nào để giải quyết lỗi 'Kết nối bị từ chối' trong kết nối SSH?


96

Tôi có một máy chủ Ubuntu 10.10 32-bit ở nhà. Tôi đang thực hiện kết nối SSH với nó từ PC thông qua Putty.

Vấn đề là, đôi khi tôi có thể đăng nhập liền mạch. Tuy nhiên, đôi khi nó mang lại cho tôi một lỗi như thế này:Network error: Connection refused.

Sau đó, tôi không thay đổi bất cứ điều gì, hãy thử đăng nhập thêm vài lần nữa, đợi một lát và thử lại. Đôi khi tôi có thể đăng nhập, đôi khi tôi không thể. Nó có vẻ khá ngẫu nhiên với tôi.

Tôi có thể làm gì để giải quyết điều này?

Biên tập:

Và đôi khi, Putty đưa ra Network error: Software caused connection abortlỗi sau khi hiển thị login as:văn bản.

Đây là đầu ra ping -t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Tôi đã tắt tường lửa của bộ định tuyến và mọi thứ dường như đã hoạt động. Ngoại trừ điều đó, tôi vẫn không thể vào máy chủ web của mình bằng cách nhập IP bên ngoài từ PC.


lần sau nó thèm ra như thế; chạy ping trên nó một lần nữa, nó vẫn hoạt động chứ? Có bao nhiêu người ssh vào máy này?
myusuf3

Chỉ có tôi ssh máy chủ này.
frbry

Chính xác là cùng một vấn đề ở đây, cũng nhận được sự kết hợp của các kết nối thành công (sau đó hoạt động trong nhiều giờ), 'kết nối bị từ chối' và 'phần mềm gây ra hủy bỏ kết nối' sau khi đăng nhập hoặc nhập mật khẩu. Để cung cấp thêm một số chi tiết: trong trường hợp của tôi, đó là máy ảo 64 bit (chạy Ubuntu Server 10.10) trên máy chủ Microsoft Hyper-V, sử dụng mô phỏng "card mạng cũ".
hheimbuerger

SSH được cài đặt trên máy chủ của bạn?
Willian Soares

Câu trả lời:


82

Bạn phải cài đặt openssh-server trên Linux trước khi nó hoạt động. Nhận địa chỉ IP nội bộ của Ubuntu và sử dụng IP đó để thiết lập chuyển tiếp cổng trên phần cổng 22 (SSH) của bộ định tuyến của bạn. Mặc dù nếu bạn không có ý định SSH từ bên ngoài mạng của mình, thì điều này là không bắt buộc.

Đây là cách cài đặt openssh-server:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]

10
Không trả lời trực tiếp câu hỏi nhưng điều này rất hữu ích vì Ubuntu không được cài đặt sẵn với máy chủ SSH.
Ostati

Gần đây tôi đã có một máy tính xách tay mới và hoàn toàn quên rằng nó không được cài đặt theo mặc định = D
Izkata

40

Xung đột địa chỉ IP hóa ra là nguyên nhân gốc khi tôi thấy thông báo lỗi SSH này.

Sau khi đọc các câu trả lời ở trên, tôi đã nghi ngờ có xung đột địa chỉ IP, nhưng cần chứng minh rằng xung đột địa chỉ là hay không phải là vấn đề.

Bài viết tuyệt vời này cho thấy cách sử dụng arp-scan để xem liệu hai phần cứng có yêu cầu cùng một địa chỉ IP hay không.

Trong trường hợp của tôi, máy chủ có địa chỉ ip tĩnh 192.168.1.42, tôi đã sử dụng arp-scan để kiểm tra địa chỉ đó:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Chắc chắn đã có một cuộc xung đột, như được hiển thị ở trên. Sau đó, tôi chạy arp-scan mà không có grep, thấy rằng .43 đã có sẵn, đã đi và chỉnh sửa /etc/network/interfacesvà thay đổi ip tĩnh từ .42 thành .43


Trên thực tế, lệnh đó chỉ hiển thị một dòng trên hộp của tôi, ngoại trừ tên đó là của một thiết bị khác.
assylias

Cảm ơn bạn rất nhiều vì đã đi đúng hướng về xung đột địa chỉ IP. Có một vấn đề tương tự! +1
DominikAngerer

Chỉ cần tiết kiệm cho tôi rất nhiều thời gian ... kudos ...
Chris Barlow

Đôi khi bộ định tuyến của tôi chỉ cần được khởi động lại để giải quyết vấn đề này.
Gabriel Staples

14

Sử dụng arpingtrên địa chỉ IP đang gặp sự cố kết nối. Điều đó sẽ hiển thị địa chỉ MAC cho mỗi phản hồi ping và hy vọng sẽ vạch mặt địa chỉ MAC giả mạo.

arping 192.168.2.254

Bạn nên kiểm tra nhóm địa chỉ IP DHCP trên máy chủ DHCP, đảm bảo không có thiết bị nào có IP tĩnh va chạm với nhóm DHCP.

Những manh mối chỉ ra IP trùng lặp:

  • ping ttl và thời gian khứ hồi trông giống như 2 máy chủ riêng biệt
  • ngắt kết nối không liên tục mà không khởi động lại

Tuyệt vời, chỉ cho tôi đúng con đường! Đã có thể theo dõi nó bằng địa chỉ MAC thứ hai đến cổng đó và thay đổi IP của máy in
Canada Luke

1
Tôi cần thêm -I wlan0 (wlan0 là thiết bị wifi của tôi)
guhur

6

Tôi gặp vấn đề tương tự, mặc dù tôi có một địa chỉ IP tĩnh. Hóa ra một máy chủ khác trên mạng của tôi đã được gán cùng một địa chỉ IP (tĩnh). (Duh.) Vì vậy, có vẻ như vấn đề là do xung đột địa chỉ IP, nhưng có thể có nhiều cách khác nhau có thể xảy ra. Nếu bạn đặt máy ở chế độ tĩnh và vẫn gặp sự cố, hãy thử tắt máy và ping địa chỉ. Nếu bạn nhận được bất kỳ câu trả lời, hãy bắt đầu tìm kiếm những gì khác có thể có cùng địa chỉ.


1
Tôi đã trải qua các triệu chứng tương tự và theo dõi nó xuống một máy có cùng địa chỉ IP với máy chủ.
SabreWolfy

4

Bạn nhận được gì nếu bạn làm điều này?

grep 192.168.2.25 /etc/hosts.deny

Nếu điều đó trả về bất cứ điều gì thì bạn cần phải loại bỏ nó.


10
Đó là một trong những "cách sử dụng vô dụng" khét tiếng cat- bạn có thể đơn giảngrep 192.168.2.25 /etc/hosts.deny
Tobias Kienzler

@TobiasKienzler Đã sửa nó
wjandrea

4

mở tập tin của ssh config:

sudo nano /etc/ssh/ssh_config

tìm cổng

#port 22

loại bỏ sắc nét tùy chọn cổng

sau đó lưu tệp bằng cách ctrl + xkhởi động lại dịch vụ của bạn

sudo service ssh restart

3

Điều này có vẻ như là một vấn đề của thiết bị mạng của bạn hơn là chính máy chủ.

Kiểm tra / var / log / message để tăng / giảm liên kết ethernet (hoặc wlan trong trường hợp không dây). Nếu vậy hãy thử thay đổi dây cáp.


Có, tôi đã thử và thành công trong việc tạo kết nối ssh từ bên ngoài mạng của mình (nơi đặt máy chủ và PC của tôi). Có vẻ như làm việc tốt. Máy chủ của tôi cũng là một máy chủ web. Khi tôi cố gắng kết nối qua cổng 80 từ PC, tôi thấy trang đăng nhập của modem ADSL. Nhưng khi tôi thử điều tương tự từ một máy tính khác ngoài mạng của mình, tôi thấy trang Nó hoạt động của Apache.
frbry

IP ip của bạn là gì, ip máy chủ của bạn và ip bộ định tuyến adsl nội bộ của bạn là gì?
Forcefsck

PC: 192.168.2.2 (Đã nhận từ DHCP) Máy chủ: 192.168.2.254 (Tĩnh, ngoài phạm vi DHCP) Bộ định tuyến ADSL: 192.168.2.1
frbry

Tôi hơi bối rối, khi bạn kết nối từ 192.168.2.2 đến 192.168.2.254 cổng 80, bạn có nhận được thông tin đăng nhập của modem adsl không?
Forcefsck

1
Trừ khi bạn đã thiết lập một số loại proxy web cho máy chủ của mình, thì rõ ràng modem adsl của bạn đang phản hồi các yêu cầu được gửi tới 192.168.2.254 và có lẽ đó là trường hợp khi bạn gặp Connection refusedlỗi với ssh. Vì vậy, bạn phải kiểm tra lại các cài đặt của modem adsl.
Forcefsck

3

Tôi có thể xác nhận vấn đề chính xác này: Đây không phải là vấn đề kết nối đơn giản. Liên kết ethernet không thay đổi trạng thái; máy chủ có thể truy cập thông qua ping; ssh thỉnh thoảng kết nối hoàn hảo, sau đó dường như ngẫu nhiên không kết nối hoặc giảm phiên ssh hiện có. Điều này xảy ra trên Ubuntu 10.04 và 11.04. Theo đề nghị của hheimbuerger, tôi đã cho máy chủ một IP tĩnh, điều này dường như đã khắc phục nó.

Giải pháp thay đổi: Thay đổi bộ chuyển đổi từ DHCP sang tĩnh.


1

Tôi đã có chính xác cùng một vấn đề, và trong trường hợp của tôi, nó hóa ra là một xung đột địa chỉ IP. Ubuntu VM của tôi có một địa chỉ động, nhưng một máy khác (trong trường hợp này là điện thoại) có IP tĩnh được gán mà máy chủ DHCP không biết.

Chỉ cần thay đổi IP được máy chủ DHCP gán cho Ubuntu VM đã khắc phục tất cả các sự cố kết nối.


1

Về cơ bản là vì bất kỳ một trong những lý do sau:

  1. Quá nhiều người dùng trên mạng cố gắng truy cập máy chủ
  2. Nhiều máy tính trên mạng có cùng IP với máy chủ gây ra xung đột IP
  3. Tên người dùng sai hoặc thông tin đăng nhập của bạn đã bị thu hồi

0

Bạn có thể muốn kiểm tra các iptablesquy tắc của bạn trên máy chủ của bạn. Có vẻ như bạn là một quy tắc để giới hạn các kết nối SSH mới.

Quy tắc tiếp theo cho phép 5 kết nối mới mỗi phút, nếu bạn vượt quá giới hạn này, các kết nối mới của bạn sẽ bị từ chối sau một thời gian trôi qua:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Xem tài liệu IPTables / Netfilter , cuộn một chút cho đến khi limit.


0

arp-scan đang hiển thị hai thiết bị trùng lặp, nhưng khi tôi chạy Trình quét IP nâng cao trên Win8 thì tất cả đều ổn. Vì vậy, họ không luôn luôn đồng ý.

Tôi đặt bộ định tuyến để thu hồi tất cả các hợp đồng thuê bằng cách bảo nó chỉ cho thuê 1 giờ. Sẽ cho nó thời gian để xem nếu nó rõ ràng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.