最近需要建一个ftp服务器,网上找了一下,得知apache的ftpserver比较容易上手,好了,就它了。
下载地址:点击打开链接
apache的ftpserver只需要我们配置两个文件:ftpd-typical.xml和users.properties(在安装目录的res/conf文件夹下),然后linux下通过bin目录下的ftpd.sh指令(windows用ftpd.bat),启动服务就可以了(ftpd指令需要传递一个参数,为res/conf/ftpd-typical.xml)。
下面,我们来具体配置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" /*设置server的标志符,必须*/
max-logins="5" /*设置同时登陆的最大人数*/
anon-enabled="false" /*设置匿名登陆为不允许*/
max-anon-logins="0" /*设置匿名登陆用户为0个*/
max-login-failures="3" /*设置3次失败登陆后,关闭此链接*/
login-failure-delay="30000"/*设置失败登陆后下一次登陆所需的时间间隔,防止暴力破解,单位是微秒*/
>
<listeners>
<nio-listener name="default" port="2121"><!--设置默认的链接端口为2121,必须-->
<ssl>
<keystore file="./res/ftpserver.jks" password="password" /><!--设置密钥存储路径和密钥存储密码,必须-->
</ssl>
<data-connection idle-timeout="60"><!--设置多少时间后关闭一个闲置的链接,单位是秒-->
<active local-port="1886"/><!--设置主动链接配置,端口号“1886”-->
<!--设置被动链接配置,端口设置为“1886”,扩展地址为“137.222.18.114”,当需要访问的服务器返回外网地址时使用-->
<passive ports="1886" address="0.0.0.0" external-address="137.222.18.114"/>
</data-connection>
</nio-listener>
</listeners>
<!--设置用户登陆信息,“./res/conf/users.properties”为文件路径,“encrypt-passwords=‘clear’”设置密码加密方式,默认是“MD5”,设置成“clear”表示不加密,直接输入-->
<file-user-manager file="./res/conf/users.properties" encrypt-passwords="clear"/>
</server>
接下来,我们配置users.properties
# Password is "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
ftpserver.user.admin.maxloginperip=0
ftpserver.user.admin.idletime=0
ftpserver.user.admin.uploadrate=0
ftpserver.user.admin.downloadrate=0
ftpserver.user.anonymous.userpassword=
ftpserver.user.anonymous.homedirectory=./res/home
ftpserver.user.anonymous.enableflag=false
ftpserver.user.anonymous.writepermission=false
ftpserver.user.anonymous.maxloginnumber=20
ftpserver.user.anonymous.maxloginperip=2
ftpserver.user.anonymous.idletime=300
ftpserver.user.anonymous.uploadrate=4800
ftpserver.user.anonymous.downloadrate=4800
ftpserver.user.ftpuser.userpassword=123456
ftpserver.user.ftpuser.homedirectory=./res/home
ftpserver.user.ftpuser.enableflag=true
ftpserver.user.ftpuser.writepermission=false
ftpserver.user.ftpuser.maxloginnumber=20
ftpserver.user.ftpuser.maxloginperip=2
ftpserver.user.ftpuser.idletime=300
ftpserver.user.ftpuser.uploadrate=4800
ftpserver.user.ftpuser.downloadrate=4800
用户anonymou是系统默认的匿名用户,这里我们选择enableflag为false,表示不启用,uploadrate和downloadrate表示上传下载速度,是以字节/秒为单位的,“0”表示不限制。
加入一个名为ftpuser的用户密码是123456。
至此,我们就可以启动ftpserver了,在linux下输入"bin/ftpd.sh res/conf/ftpd-typical.xml",然后在本地的资源管理器输入地址“ftp://137.222.18.114:2121/”就可以了。
对各个字段的设置,官方文档上有更详细的解释ftpserver配置信息,这里还有一篇翻译的文档百度文库:FtpServer配置详解手册