
在我的 Windows 10 主機上,我安裝了 IIS + FTP 服務(不是 FTP 擴充性)。使用 WinSCP 軟體,我可以從我的公共靜態 IP 存取此 FTP 網站。如果我的 FTP 網站託管在 VMWare Workstation 上的虛擬機器 (Windows Server 2019) 上,我將無法存取該網站。只有當我關閉虛擬機器上的專用防火牆時,我才能從虛擬機器存取 FTP 網站。我已將家庭路由器上的連接埠 21 (TCP) 轉送到虛擬機器。我在虛擬機器上嘗試了 Bridge 和 NAT 網絡,但在這兩種設定中,只有當我關閉私人防火牆時,FTP 才可用。我需要做哪些額外設定才能在虛擬機器上運行即時 FTP 網站?
答案1
這些是我要檢查的事情:
VM 是否使用橋接網路?如果沒有,請切換到它,這樣您的虛擬機器就不會位於第二個執行 NAT 的 VMWare 虛擬路由器後面,而該路由器也需要轉送連接埠。因此,除非您只有一個 IP(我認為您沒有,因為您提到了家庭路由器),否則首先將虛擬機器網路模式切換為橋接模式,看看會發生什麼。
FTP 是一種時髦的協議,在其原始的「主動」形式下,當您連接時,伺服器會嘗試開啟一個返回客戶端的連接埠。這需要客戶端和伺服器之間的所有防火牆/NAT 系統來了解協定並動態允許流量。後來FTP協定中加入了「被動」模式。它讓客戶端兩次連接到伺服器。在某一時刻,您必須了解這一點並指示客戶端請求被動模式。現代 GUI FTP 用戶端似乎理解這一點,在放棄之前也會嘗試被動。因此,理想情況下使用被動 FTP,或至少測試一下(如果您可以在客戶端中明確指定的話)。
獎金想法:
- 您需要使用FTP嗎?如果您只是為全世界提供文件,那就太好了。但如果您要對使用者進行身份驗證和/或允許人們將內容上傳,您可能需要考慮 SFTP。它對身份驗證握手以及客戶端和伺服器之間的所有流量進行加密。它還透過單一連接埠運行,因此可以根據需要輕鬆轉送或建立隧道。
- 根據我的經驗,在 Windows 上執行面向公眾的 HTTP 或 FTP 服務並不是一個非常安全的選擇。自從有了 VMWare,您就有了其他作業系統的各種選擇,這些作業系統在網路上有更好的生存記錄。