Apache FtpServer[linux] 配置使用

廉实
2023-12-01

参考文章:http://gongsy.iteye.com/blog/1466024

                  http://liuxiang8484.blog.163.com/blog/static/73479097201211413557727/


Apache FtpServer[linux] 配置使用

1下载ftpServer,地址http://mina.apache.org/ftpserver-project/downloads.html

2解压缩:tar-zvxf  ftpserver-1.0.6.tar.gz

3进入配置文件目录:cdapache-ftpserver-1.0.6/res/conf

4配置用户登录信息【两种:配置文件、数据库】

1)使用文件进行用户登录验证

修改文件 users.properties(其中蓝色字体为用户名,红色字体为密码)
ftpserver.user.
admin.userpassword=admin  # encrypt-passwords ="clear" 明文密码
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=true
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

执行命令:cpftpd-typical.xml ftpd-file.xml

修改配置文件ftpd-file.xml,其中红色字体为修改部分,密码加密方式修改为clear

默认为MD5加密方式

<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-managerfile="./res/conf/users.properties"  
encrypt-passwords = "clear" />
</server>

退回目录apache-ftpserver-1.0.6/,启动ftp服务 sh bin/ftpd.shres/conf/ftpd-file.xml

执行:ftp 127.0.0.12121    输入用户和密码:admin   admin

使用配置文件的方式这就可以了,配置文件详细说明

users.properties文件存放的是用户名及密码权限等配置信息

用户名为anonymous

#密码为空
tpserver.user.anonymous.userpassword=
#主目录
ftpserver.user.anonymous.homedirectory=./res/home
#当前用户可用
ftpserver.user.anonymous.enableflag=true
#具有上传权限
ftpserver.user.anonymous.writepermission=true
#最大登陆用户数为20
ftpserver.user.anonymous.maxloginnumber=20
#同IP登陆用户数为2
ftpserver.user.anonymous.maxloginperip=2
#空闲时间为300秒
ftpserver.user.anonymous.idletime=300
#上传速率限制为48字节每秒
ftpserver.user.anonymous.uploadrate=4800
#下载速率限制为48字节每秒
ftpserver.user.anonymous.downloadrate=4800

能够通过修改users.properties文件来添加和管理用户及权限等信息。

 

Apache Ftp Server 重要的用途其实是作为一种灵活的嵌入式文件传输方案来使用, 单纯作为FTP来说他的性能也是非常好的,800并发上传文件没有任何问题(linux 4cpu 4g mem scsi)

 

 

2)使用数据库进行验证,这里数据库选用mysql

选定一个数据库(这里使用ftpserver),根据文件apache-ftpserver-1.0.6/res/ftp-db.sql中的命令创建数据库

在数据库中增加一条记录:insert intoFTP_USERvalues("user1","123456","./res/home/user1",1,0,0,0,0,0,0);

创建配置文件:

cd apache-ftpserver-1.0.6/res/conf

cp ftpd-typical.xml ftpd-db.xml

修改配置文件ftpd-db.xml

<?xml version="1.0"encoding="UTF-8"?>
        <!--
               Licensed to the Apache Software Foundation (ASF) under one or more
               contributor license agreements. See the NOTICE file distributed with
               this work for additional information regarding copyright ownership.
               The ASF licenses this file to you under the Apache License, Version
               2.0 (the "License"); you may not use this file except in compliance
               with the License. You may obtain a copy of the License at
                
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
               applicable law or agreed to in writing, software distributed under the
               License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
               CONDITIONS OF ANY KIND, either express or implied. See the License for
               the specific language governing permissions and limitations under the
               License.
        -->
<server xmlns="
http://mina.apache.org/ftpserver/spring/v1"
        xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
       
 xmlns:beans="http://www.springframework.org/schema/beans"
        xsi:schemaLocation="
           
http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           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-managerfile="./res/conf/users.properties" />
        -->
       <db-user-manager encrypt-passwords= "clear">
               <data-source>
                   <beans:bean class="org.apache.commons.dbcp.BasicDataSource">
                       <beans:property name="driverClassName"value="com.mysql.jdbc.Driver" />
                       <beans:property name="url" value="jdbc:mysql://
localhost/ftpserver" />
                       <beans:property name="username" value="
root" />
                       <beans:property name="password" value="
123456" />
                   </beans:bean>
               </data-source>
               <insert-user>INSERT INTO FTP_USER (userid, userpassword,
                       homedirectory, enableflag, writepermission, idletime, uploadrate,
                       downloadrate) VALUES ('{userid}', '{userpassword}',
                       '{homedirectory}',
                       {enableflag}, {writepermission}, {idletime},
                       {uploadrate},
                       {downloadrate})
               </insert-user>
                       <update-user>UPDATE FTP_USER SET
                               userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime},uploadrate={uploadrate},downloadrate={downloadrate}
                               WHERE userid='{userid}'
               </update-user>
                       <delete-user>DELETE FROM FTP_USER WHERE userid = '{userid}'
               </delete-user>
                       <select-user>SELECT userid, userpassword, homedirectory,
                               enableflag, writepermission, idletime, uploadrate, downloadrate,
                               maxloginnumber, maxloginperip FROM
                               FTP_USER WHERE userid = '{userid}'
               </select-user>
                       <select-all-users>SELECT userid FROM FTP_USER ORDER BY userid
               </select-all-users>
                       <is-admin>SELECT userid FROM FTP_USER WHERE userid='{userid}'
                               AND
                               userid='admin'
               </is-admin>
                       <authenticate>SELECT userpassword from FTP_USER WHERE
                               userid='{userid}'</authenticate>
        </db-user-manager>
</server>
说明:server属性部分的红色字体一定要写,否则就会找不到beans,报错:The prefix "beans" for element "beans:bean"is not bounddb-user-manager的属性部分的红色字体一定要写,这里的密码加密方式为clear,否则会登录不成功;下面的红色字体分别表示localhost(数据库所在的ip地址),ftpserver(数据库名称),root(连接数据库的用户名),123456(连接数据库密码);绿色字体表示使用文件登录,需要注释掉。

增加数据库连接需要使用的jar,下载3个jar包到目录apache-ftpserver-1.0.6/common/lib:commons-dbcp-1.2.2.jar、commons-pool-1.3.jar、mysql-connector-java-3.1.13-bin.jar

进入目录apache-ftpserver-1.0.6,启动服务:sh bin/ftpd.sh res/conf/ftpd-db.xml

执行:ftp 127.0.0.12121    输入用户和密码:user1  123456

 

 类似资料: