简单的说,apache的ftpserver只需要我们配置两个文件:ftpd-typical.xml和users.properties(在安装目录的res/conf文件夹下),然后linux下通过bin目录下的ftpd.sh指令(windows用ftpd.bat),启动服务就可以了(ftpd指令需要传递一个参数,为res/conf/ftpd-typical.xml),详细介绍如下:
1、下载
2. 解压缩到本地
3. 在安装目录的res\conf目录中找到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.helh.userpassword=21232F297A57A5A743894A0E4A801FC3
ftpserver.user.helh.homedirectory=./res/home
ftpserver.user.helh.enableflag=true
ftpserver.user.helh.writepermission=false
ftpserver.user.helh.maxloginnumber=20
ftpserver.user.helh.maxloginperip=2
ftpserver.user.helh.idletime=300
ftpserver.user.helh.uploadrate=4800
ftpserver.user.helh.downloadrate=4800
用户anonymou是系统默认的匿名用户,这里我们选择enableflag为false,表示不启用
uploadrate和downloadrate表示上传下载速度,是以字节/秒为单位的,“0”表示不限制。
加入一个名为ftpuser的用户密码是admin,
homedirectory配置ftp的home目录,就是说客户端上传的文件都放在这里。
4、配置ftpd-typical.xml,重新拷贝一份helh-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">
<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" />
</server>
据说还有下面配置,我没试,如下:
<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>
至此,我们就可以启动ftpserver了
5、安装ftpd
service install ftpd
在控制面板-服务中可以查看apache ftpserver ftpd服务
6、启动服务
ftpd.bat res/conf/helh-ftpd-typical.xml