#在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了!(若是还不行,那就在出站规则里面,再添加规则,把对应的端口再添加一次)