#在Window2008上搭建 Apache FTPServerhtml
windows2003立刻要中止維護了,時間好像是在2015年5月7日。阿里雲但願用戶可以升級服務器,恰好公司的新項目立刻要上線了,因此就嘗試了一下將雲服務器升級到Windows2008.java
是一個小項目,因此生產環境也比較簡單:spring
別的安裝沒什麼說的,和在Windows2003上是同樣的。具體說說安裝FTP的問題。sql
##下載apache
下載我的建議無論下載什麼,都最好去官方下載,特別是開源的項目,Apache FTPServer的下載地址是:下載windows
##安裝安全
安裝很是簡單,解壓就能夠了。簡單看一下目錄:服務器
咱們主要是學習res就能夠了,別的不用關心,res的裏面的目錄:工具
##配置學習
其實對於全棧工程師來講,不用太糾結於FtpServer的細節,能配置能運行,能幫咱們上傳文件和下載文件就好了。因此主要是要學會配置。
###conf目錄
users.properties,該文件主要是對FtpServer的用戶進行配置。
#用戶名就是admin(能夠改),密碼明顯是加過密的,暫時不用管,一會講 ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3 #上傳文件的目錄 ftpserver.user.admin.homedirectory=./res/home #當前用戶可用 ftpserver.user.admin.enableflag=true #是否具備上傳的權限 ftpserver.user.admin.writepermission=true #最大登錄數量 ftpserver.user.admin.maxloginnumber=0 #同IP登錄用戶數量 ftpserver.user.admin.maxloginperip=0 #空閒時間爲300秒 ftpserver.user.admin.idletime=0 #上傳速度限制 ftpserver.user.admin.uploadrate=0 #下載速度限制 ftpserver.user.admin.downloadrate=0
再來看ftpd-typical.xml文件,打開這個xml文件,找到Server根目錄,默認的Server元素只有一個id屬性,給它添加幾個屬性和值,而後修改端口(不修改也行),修改後的ftpd-typical.xml文件爲:
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd " id="myServer" max-logins="20" anon-enabled="false" max-anon-logins="0" max-login-failures="3" login-failure-delay="30000" > <listeners> <nio-listener name="default" port="2121"> <ssl> <keystore file="./res/ftpserver.jks" password="password" /> </ssl> </nio-listener> </listeners> <file-user-manager file="./res/conf/users.properties" encrypt-passwords = "clear" /> </server>
修改後,根據屬性名能夠看到,匿名用戶被禁用,並且去掉了密碼加密 encrypt-passwords = "clear"
,而後修改users.properties中admin的密碼,是什麼密碼就直接設置成什麼就好了。到這裏配置就完成了。
##運行
運行很簡單,若是不考慮將FtpServer安裝成系統服務,那麼打開命令行,將目錄切換到FtpServer的bin目錄,而後輸入 ftpd.bat res/conf/ftpd-typical.xml
就完成了。
爲了方便使用,通常作法是,在bin目錄下,創建一個run.bat文件,將剛纔的命令拷貝進入,而後把這個批處理文件發送到桌面,之後就直接可使用了。運行後,若是出現:ftp-server started 的字樣,那就成功了。
##問題
我在運行正常後,出現了兩個問題(Window2008系統)
###開放端口
這個其實也很簡單,主要是你要確認是否是這個緣由。通常作法是先查看機器上的端口運行狀況:
netstat -ano
netstat -aon|findstr "提示的端口"
tasklist|findstr "PID"
taskkill /f /t /im 程序名
便可確認端口正常,那通常就是防火牆的問題了
###防火牆
右擊個人電腦——管理——配置——高級安全Windows防火牆——入站規則
,而後添加規則,根據提示去填寫就好了,FTP也屬於TCP,選TCP就好了,別都是「容許」或者「是」就完成了(內網權限,能夠在選項卡中設置做用域)。完成之後,發現,客戶端能夠鏈接了,可是沒法讀出目錄。應該仍是被阻止了,真實一波三折啊。
控制面板——Windows防火牆——容許程序或功能經過Windows防火牆
,而後點擊「容許運行另外一程序」,而後瀏覽,那麼問題來了,選擇哪一個程序呢?對,不是FtpServer,而是Java,由於FtpServer就是Java寫的,那麼是哪一個Java呢?由於JDK裏面有一個,JRE裏面也有一個,這就要看你的具體環境了,總之是選擇一個 java.exe
。
好了,再用客戶端鏈接一次,OK了!(若是還不行,那就在出站規則裏面,再添加規則,把對應的端口再添加一次)