是什麼原因導致「連線被拒絕」訊息?

是什麼原因導致「連線被拒絕」訊息?

這是一個規範問題關於連線被拒絕

我們看到很多問題的大意

當我嘗試連接到系統時,我收到一條訊息

連線被拒絕

為什麼是這樣 ?

答案1

筆記:此訊息是您正在嘗試解決的問題的症狀。了解該訊息的原因將最終引導您解決問題。

訊息「連線被拒絕」有兩個主要原因:

  1. 沒有任何內容正在偵聽您嘗試連線的 IP:連接埠。
  2. 該連接埠被防火牆封鎖。

沒有進程正在監聽。

這是迄今為止該消息最常見的原因。首先確保您正在嘗試連接到正確的系統。如果您要確定這是否是問題所在,請在遠端系統上執行網路統計或者SS1例如,如果您期望進程偵聽連接埠 22222

sudo netstat -tnlp | grep :22222

或者

ss -tnlp | grep :22222

對於 OSX,合適的命令是

sudo netstat -tnlp tcp | grep '\.80 '

如果沒有任何東西在監聽,那麼上面的程式碼將不會產生任何輸出。如果您看到一些輸出,請確認它是您所期望的,然後查看下面的防火牆部分。

如果您無權存取遠端系統並希望在向相關管理員報告之前確認問題,則可以使用 tcpdump(wireshark 或類似工具)。

當嘗試連接到沒有任何監聽的 IP:連接埠時,遠端系統對初始 SYN 封包的回應是設定了 RST、ACK 標誌的封包。這將關閉連線並導致連線被拒絕訊息,例如

$ sudo tcpdump -n 主機 192.0.2.1 和連接埠 22222
tcpdump:抑制詳細輸出,使用 -v 或 -vv
在 enp14s0 上進行完整協定解碼偵聽,連結類型 EN10MB(乙太網路),擷取大小 262144 位元組

12:31 :27.013976 IP 192.0.2.2.34390 > 192.0.2.1.22222:標誌[S],seq 1207858804,win 29200,選項[mss 1460,sackOK,TS val 15306344 ecr 0,nop,wscale 7],長度0

12:31:27.020162 IP 192.0.2.[R], seq 0, ack 1207858805, win 0, 長度 0

請注意,tcpdump 使用代表ACK旗幟。

連接埠被防火牆阻止

如果連接埠被防火牆封鎖且防火牆已設定為icmp-port-unreachable對此進行回應,也會導致連線拒絕訊息。您可以再次使用 tcpdump (或類似的)看到這一點

$ sudo tcpdump -n icmp
tcpdump:抑制詳細輸出,使用 -v 或 -vv

在enp14s0 上進行完整協定解碼偵聽,連結類型EN10MB(乙太網路),擷取大小262144 位元組13:03:24.149897 IP 192.0.2. > 192.0。

請注意,這也告訴我們阻塞防火牆在哪裡。


現在您知道導致連線被拒絕訊息的原因,您應該採取適當的措施,例如聯絡防火牆管理員或調查進程不監聽的原因。

1可能還有其他工具可用。

答案2

對於 Debian 6 上的我來說,這很簡單檢查 SSH 服務

sudo service ssh status

發現什麼都不存在(有訊息ssh: unrecognized service安裝服務

sudo apt-get install openssh-server

如果您沒有獲得 SFTP 連接,這也適用,因為 SFTP 是 SSH 的子集(而 FTPS 是 FTP 的子集)。

答案3

是什麼原因導致「連線被拒絕」訊息?

  • 不正確指定的 IP 位址或連接埠號碼。
  • 伺服器應用程式是沒有運行監聽該連接埠。
  • 伺服器應用程式正在運行,但是不在聽在指定連接埠上。
  • 本地/遠端防火牆阻止連線。
  • 伺服器過載或資源耗盡。

相關內容