Filezilla配置FTP中的坑以及出坑辦法
做本科生助教,老板讓配置一個FTP傳資料交作業,找了一臺Windows服務器搗鼓,開始按網上教程自己配置特別麻煩,何西西說用Filezilla比較方便,就去Filezilla官網下載了Filezilla Server,本來以為會很輕松搞定,沒想到還是碰到一堆坑,記錄下來方便以後查閱。
服務器:Windows Web Server 2008 R2,64位
坑1:安裝Filezilla Server報錯 "could not load TLS network. Aborting start of administration interface"
原因:根據這個Filezilla Forums裏這個帖子https://forum.filezilla-project.org/viewtopic.php?t=39838討論的,服務器沒裝補丁KB2533623。
出坑:去微軟官網下載補丁,根據自己服務器型號選,我選了Update for Windows Server 2008 R2 x64 Edition (KB2533623),補丁裝好以後安裝Server不再報錯。
坑2:打開Filezilla以後面板裏紅字顯示"FTP over TLS is not enabled, users cannot securely"
原因:未啟用TLS模式。
出坑:
打開Settings
選FTP over TLS settings,勾選Enable FTP over TLS support,然後點擊中間Generate new certificate...按鈕
空白處都可以隨便填,註意Common name (Server address)那裏填127.0.0.1就行了,下面給密鑰和證書選一個保存的位置,然後點最下方Generate certificate
然後在Key password填個密鑰密碼,隨便填一個用不到的,最後點擊左下OK,再打開Filezilla就不會有錯誤提示啦~~
上面兩個坑解決以後,就可以按照網上各種教程添加用戶,分配文件夾訪問權限了,基本配置參考《FileZilla怎麽用 FileZilla配置FTP服務圖文詳解》,Settings裏每一項的具體作用參考《免費ftp服務器FileZilla Server配置》,大部分都默認設置就行了。
坑3:服務器本地可以訪問FTP,其他機器訪問連輸用戶名和密碼的界面都彈不出
原因:防火墻封住了服務器上FTP的入站端口,這種情況下Filezilla裏連有人請求連接的信息都看不到。
出坑:
打開“高級安全Windows防火墻”
右擊“入站規則”,點擊“新建規則”
選擇“端口”,選擇“TCP”,輸入FTP端口,如果之前配置Filezilla時沒有改過,就用默認端口21
後面就選“允許鏈接”,所有時候都應用該規則,最後給這條規則命名如FTP Default Port,再用其他機器訪問FTP就能彈出輸入用戶名和密碼的窗口了,Filezilla裏也能看到連接的信息啦~
坑4:服務器本地可以訪問FTP,其他機器輸入用戶名和密碼後提示“打開ftp服務器上的文件夾時發生錯誤,請檢查是否有權限”
原因:這個坑博主把上面那條提示放到百度裏,也沒搜到什麽靠譜的解決辦法,然後想著裝一個Filezilla Client,用Client訪問FTP是不是能看到什麽錯誤代碼,果然找到了錯誤 代碼"425 Can‘t open data connection.",從stackoverflow上搜到這個解決辦法《Setup FileZilla Server Passive Ports on Windows Server 2012》。大概是說FTP的客戶端默認以Passive mode(被動模式,博文最後解釋了FTP的主動模式和被動模式)連接服務器,Filezilla會隨機打開1-65535之間的一個端口,導致這個錯誤的原因就是,防火墻封住了Passive mode的端口。
出坑:
在Passive mode settings裏勾選Use custom port range,如果讓防火墻對1-65535端口全部開放有些危險,所以先在這裏限定好端口範圍
然後重復坑3在入站規則裏打開21端口的過程,打開限定好的Passive mode端口範圍,唯一的不同就是在下面這裏輸入50100-51100,給這條規則命名如FileZilla - Passive FTP Ports,再用其他機器訪問就沒有任何阻礙啦~
至此,Filezilla配置過程中的所有坑都跳出來了,這裏再補充兩個小知識和一個小技巧:
1. 防火墻的入站規則和出站規則
下面是從網上copy下來的一段解釋,對於FTP服務器來說,只涉及外網訪問服務器,不涉及服務器訪問外網,所以上面坑3和坑4都是在防火墻的入站規則裏打開端口,沒有修改出站規則。
出站就是你訪問外網,入站就是外網訪問你,用戶可以創建入站和出站規則,從而阻擋或者允許特定程序或者端口進行連接。用戶可以使用預先設置的規則,也可以創建自定義規則,可以將規則應用於一組程序、端口或者服務,也可 以將規則應用於所有程序或者某個特定程序;可以阻擋某個軟件進行所有連接、允許所有連接,或者只允許安全連接,並要求使用加密來保護通過該連接發送的數據 的安全性;可以為入站和出站流量配置源IP地址及目的地IP地址,同樣還可以為源TCP和UDP端口及目的地TCP和UPD端口配置規則。
2.FTP的主動模式和被動模式
FTP連接包括兩類通道:一個控制連接(命令聯系通道),幾個數據連接(資料聯系通道)。前者用於傳遞客戶端的命令和服務器端對命令的響應,默認使用服務器的21端口,生存期是整個FTP會話時間。後者用於傳輸文件和其它數據,如目錄列表等,只在需要數據傳輸時建立,而一旦數據傳輸完畢就關閉,每次使用的端口也不一定相同,根據數據連接是否由服務器發起,可以分為主動模式和被動模式。
《關於ftp的主動模式(Active Mode)和被動模式(Passive Mode)》裏解釋得比較清楚,FTP協議是建立在TCP協議基礎上的,所以客戶端與服務器的每次交互都要經過三次握手,通過兩張圖可以區分這兩種模式:
- 主動模式:客戶端端利用>1024的任意端口發起與服務器21端口建立連接,建立“命令聯系通道”,如果要發生資料傳輸,通過21告知服務器端口(如1333)並 開始listen,服務器利用20端口向客戶端的1333端口發起連接,建立“資料聯系通道”。由於“資料聯系通道”是由服務器主動建立的(圖中步驟6),所以稱作主動模式。
- 被動模式:建立“命令聯系通道”的方式和主動模式基本一樣,也是連接先連接服務器的21端口。但是如果需要傳輸資料,客戶端會送出PASV指令,告訴服務器要利用被動模式建立“資料聯系通道”,然後服務器會打開一個端口並開始listen,並把這個端口通過“命令聯系通道”告知客戶端,客戶端再打開一個端口,與服務器建立“資料連接通道”。由於“資料連接通道”是由服務器被動建立的,所以稱作被動模式。
3.取消FTP的自動登錄
有時候我們訪問某個FTP時可能設置了保存密碼,之後每次訪問那個FTP,都會默認通過之前的用戶名和密碼登錄。為了安全起見不讓它再自動登錄,或者FTP設置了不同權限的用戶,我們想通過其他用戶名登錄,可以在已進入的目錄空白處右擊,選擇“登錄”,彈出的窗口裏把“保存密碼”選項取消掉就可以了,在這個窗口裏也可以輸入其他用戶名及密碼,就是通過其他身份訪問FTP了。
--------------------- 作者:guihua_wulipcy 來源:CSDN 原文:https://blog.csdn.net/u010376274/article/details/56479707?utm_source=copy 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
Filezilla配置FTP中的坑以及出坑辦法