#在Window2008上搭建 Apache FTPServer
windows2003馬上要停止維護了,時間好像是在2015年5月7日。阿裡雲希望使用者能夠更新伺服器,剛好公司的新項目馬上要上線了,是以就嘗試了一下将雲伺服器更新到Windows2008.
是一個小項目,是以生産環境也比較簡單:
- Java7
- Tomcat
- Mysql
- FTP伺服器(選擇的Apache FTPServer)
别的安裝沒什麼說的,和在Windows2003上是一樣的。具體說說安裝FTP的問題。
##下載下傳
下載下傳個人建議不管下載下傳什麼,都最好去官方下載下傳,特别是開源的項目,Apache FTPServer的下載下傳位址是:下載下傳
##安裝
安裝非常簡單,解壓就可以了。簡單看一下目錄:
- res 配置的主要檔案夾
- common Jar包和類
- bin 工具
我們主要是學習res就可以了,别的不用關心,res的裡面的目錄:
- conf 該目錄下主要存放于FtpServer相關的配置
- home Ftp伺服器上傳的檔案預設就儲存在這裡,可以通過配置來修改
- log 日志
- 剩下的檔案不用太在意
##配置
其實對于全棧工程師來說,不用太糾結于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系統)
- 這個服務無法通路,說白了就是端口沒有開放
- 開放端口後,無法讀取目錄,讀寫被攔截
###開放端口
這個其實也很簡單,主要是你要确認是不是這個原因。一般做法是先檢視機器上的端口運作情況:
- Windows檢視所有的端口
netstat -ano
- 查詢指定的端口占用
netstat -aon|findstr "提示的端口"
- 查詢PID對應的進行程序
tasklist|findstr "PID"
- 然後我們輸入指令
即可taskkill /f /t /im 程式名
确認端口正常,那一般就是防火牆的問題了
###防火牆
右擊我的電腦——管理——配置——進階安全Windows防火牆——入站規則
,然後添加規則,根據提示去填寫就行了,FTP也屬于TCP,選TCP就行了,别都是“允許”或者“是”就完成了(内網權限,可以在頁籤中設定作用域)。完成以後,發現,用戶端可以連接配接了,但是無法讀出目錄。應該還是被阻止了,真實一波三折啊。
控制台——Windows防火牆——允許程式或功能通過Windows防火牆
,然後點選“允許運作另一程式”,然後浏覽,那麼問題來了,選擇哪個程式呢?對,不是FtpServer,而是Java,因為FtpServer就是Java寫的,那麼是哪個Java呢?因為JDK裡面有一個,JRE裡面也有一個,這就要看你的具體環境了,總之是選擇一個
java.exe
。
好了,再用用戶端連接配接一次,OK了!(如果還不行,那就在出站規則裡面,再添加規則,把對應的端口再添加一次)
版權聲明:本文為CSDN部落客「weixin_33991727」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/weixin_33991727/article/details/92591114