在Window2008上搭建 Apache FTPServer

#在Window2008上搭建 Apache FTPServerhtml

windows2003立刻要中止維護了,時間好像是在2015年5月7日。阿里雲但願用戶可以升級服務器,恰好公司的新項目立刻要上線了,因此就嘗試了一下將雲服務器升級到Windows2008.java

是一個小項目,因此生產環境也比較簡單:spring

  • Java7
  • Tomcat
  • Mysql
  • FTP服務器(選擇的Apache FTPServer)

別的安裝沒什麼說的,和在Windows2003上是同樣的。具體說說安裝FTP的問題。sql

##下載apache

下載我的建議無論下載什麼,都最好去官方下載,特別是開源的項目,Apache FTPServer的下載地址是:下載windows

##安裝安全

安裝很是簡單,解壓就能夠了。簡單看一下目錄:服務器

  • 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系統)

  1. 這個服務沒法訪問,說白了就是端口沒有開放
  2. 開放端口後,沒法讀取目錄,讀寫被攔截

###開放端口

這個其實也很簡單,主要是你要確認是否是這個緣由。通常作法是先查看機器上的端口運行狀況:

  1. Windows查看全部的端口 netstat -ano
  2. 查詢指定的端口占用 netstat -aon|findstr "提示的端口"
  3. 查詢PID對應的進行進程 tasklist|findstr "PID"
  4. 而後咱們輸入命令taskkill /f /t /im 程序名便可

確認端口正常,那通常就是防火牆的問題了

###防火牆

右擊個人電腦——管理——配置——高級安全Windows防火牆——入站規則,而後添加規則,根據提示去填寫就好了,FTP也屬於TCP,選TCP就好了,別都是「容許」或者「是」就完成了(內網權限,能夠在選項卡中設置做用域)。完成之後,發現,客戶端能夠鏈接了,可是沒法讀出目錄。應該仍是被阻止了,真實一波三折啊。

控制面板——Windows防火牆——容許程序或功能經過Windows防火牆,而後點擊「容許運行另外一程序」,而後瀏覽,那麼問題來了,選擇哪一個程序呢?對,不是FtpServer,而是Java,由於FtpServer就是Java寫的,那麼是哪一個Java呢?由於JDK裏面有一個,JRE裏面也有一個,這就要看你的具體環境了,總之是選擇一個 java.exe

好了,再用客戶端鏈接一次,OK了!(若是還不行,那就在出站規則裏面,再添加規則,把對應的端口再添加一次)

相關文章
相關標籤/搜索