實例重啟後 IIS FTP 停止接受連接,出現 421 服務不可用錯誤
IIS FTP 伺服器停止接受連接,返回“421 服務不可用,遠端伺服器已關閉連接”。實例重啟後的錯誤消息。該問題似乎不是防火牆問題。
我在執行 Windows Server 2012 R2、IIS 版本 8.5 的 EC2 實例上設置了 IIS FTP 伺服器。我的客戶只想要普通的 FTP。(我之前在同一個實例上設置了一個 SFTP 伺服器,使用 Cygwin sshd,工作正常。)我設置了“預設”IIS FTP 伺服器,它可以正常工作 2 天,直到在文件傳輸期間,它掛了。根據 AWS 監控器,CPU 固定在 100%。我無法 RDP 進入實例,所以我不得不重新啟動它。從那以後,我無法連接到 IIS FTP 伺服器。根據任務管理器,“ftpsvc”程序狀態正在執行。我已經停止並啟動了好幾次。Windows 防火牆已關閉,AWS 防火牆已打開埠 20、21 和 50,000-51,000。自停止工作以來,沒有更改任何設置。
在伺服器實例上的本地命令提示符下,FTP 失敗:
> ftp localhost Connected to MYINSTANCE Connection closed by remote host.
從遠端機器上,FTP 失敗:
$ ftp myact@xx.xx.xx.xx Connected to xx.xx.xx.xx 421 Service not available, remote server has closed connection.
在遠端機器上,SFTP 工作:
$ sftp myact@xx.xx.xx.xx myact@xx.xx.xx.xx's password: **** Connected to xx.xx.xx.xx
我對 IIS 不是很熟悉,而且 FTP 服務似乎正在執行,但我不知道為什麼在實例重啟後停止允許連接。請注意,已為 EC2 實例分配了一個彈性 IP,因此它與問題重啟之前的公共 IP 地址相同。
任何意見或建議將不勝感激!如果我無法解決問題,我計劃啟動另一個 EC2 實例並從頭開始設置新伺服器。
感謝您的建議大眾書呆子。
FTP 伺服器正在寫入 inetpub/logs/LogFiles/FTPSVC2,最新條目是 5 天前,從 2014 年 10 月 16 日開始,並且它不包含任何看起來像錯誤的內容。IIS 事件日誌為空。我確實在本地伺服器事件日誌中註意到了一些週期性的 sshd 錯誤,但根本沒有任何細節。即使我關閉了 sshd,FTP 服務仍然無法連接。
netstat -anb 顯示 ftpsvc 在埠 21 上偵聽:
Proto Local Address Foreign Address State TCP 0.0.0.0:21 0.0.0.0:0 LISTENING ftpsvc
我創建了幾個 FTP 測試使用者,但在嘗試連接時仍然出現相同的錯誤。
我將嘗試一個“乾淨的”WinServer 2012 測試實例,看看是否可以讓 FTP 工作。
抱歉,問題原來是 IIS FTP 站點站點綁定中的設置不正確。EC2 實例有 2 個 IP 地址,一個是私有的,一個是公有的。似乎 FTP 伺服器設置了 EC2 實例私有 IP 地址,當實例重新啟動時,它獲得了不同的私有 IP,但使用彈性 IP 功能重新分配了相同的公共 IP。活到老,學到老。
根據微軟錯誤 421 的意思
“421 服務不可用,正在關閉控制連接。如果服務知道它必須關閉,這可能是對任何命令的回复。”
https://support.microsoft.com/kb/969061
您是否檢查過事件日誌以查看是否有與此相關的錯誤?
是否
netstat -anb
顯示該服務正在執行並在正確的埠上列出?您是否嘗試過使用其他使用者?