Apache FTP Server环境搭建-个人总结
前记
前段时间换了一台台式机,因此需要从笔记本中拷贝一些以前的资料。但是由于自己并没有比较大的硬盘,因此想到搭建FTP服务器。以前用过微软一款Serv-U服务器,配置超级繁琐,用的超级不爽。网上查找后发现Apache FTP Server开源,可配置选项多,因此就选择了它。
软件下载、解压
Apache FTP Server网站下载1.0.6Release版本后解压到本地文件夹。(个人文件夹:D: oolsapache-ftpserver-1.0.6,后面以%FTP_Server%代替)。文件夹包括三个上子文件夹,重点关注bin、res文件夹即可。
下载地址:http://mina.apache.org/ftpserver/downloads.html
软件配置
-
Java环境安装
略 -
安装Service
以命令行方式进入%FTP_PATH%in目录,运行service.bat命令
service install
(最好以管理员权限运行,否则易导致安装失败)
安装好后,能在电脑服务中找到Apache FTPServer -
配置
%FTP_Server% esconf 文件夹下有ftpd_typical.xml、users.properties两个文件,简要说明下。XML文件配置了以下几项:密码明文管理,端口为21号端口。
users.properties配置用户:包括密码、上传速度等。这个网上很多说明,简要地附上以下说明。#FTP用户名:myusername,密码:12345678(上文设置成明文保存) ftpserver.user.myusername.userpassword=12345678#FTP主目录 ftpserver.user.myusername.homedirectory=./ftp_space ftpserver.user.myusername.enableflag=true ftpserver.user.myusername.writepermission=true ftpserver.user.myusername.maxloginnumber=3 ftpserver.user.myusername.maxloginperip=3 ftpserver.user.myusername.idletime=0 ftpserver.user.myusername.uploadrate=0 ftpserver.user.myusername.downloadrate=0
-
启动
命令行方式直接启动,注意加上刚才修改的配置文件。以我的配置为例:
ftpd.bat res/conf/ftpd-typical.xml
(可以保存一个BAT文件,方便启动)
但是个人使用的环境:Win7 64位似乎存在问题,所以按照下博客方法顺利解决,谢谢这位博主。
Apache FtpServer在64位系统下服务不能启动解决方法:http://zuoqiang.iteye.com/blog/1557988实验
今天通过台式机与笔记本做传输测试,发现速度很快,平均在10M/S以下(局域网环境)。
配置过程中主要遇到以下几个问题: - 服务无法启动
-
21号端口无法启动
端口查看命令:netstat -aon | findstr “61616”
任务查看命令:tasklist /fi “pid eq PID”(查看pid进程)
任务结束命令:tskill pidUsing XML configuration file res/conf/ftpd-typical.xml... org.apache.ftpserver.FtpServerConfigurationException: Failed to bind to address 0.0.0.0/0.0 at org.apache.ftpserver.listener.nio.NioListener.start(NioListener.java:181) at org.apache.ftpserver.impl.DefaultFtpServer.start(DefaultFtpServer.java:80) at org.apache.ftpserver.main.CommandLine.main(CommandLine.java:62) Caused by: java.net.BindException: Address already in use: bind at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:444) at sun.nio.ch.Net.bind(Net.java:436) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.ja at org.apache.mina.transport.socket.nio.NioSocketAcceptor.open(NioSocketAcceptor.ja at org.apache.mina.core.polling.AbstractPollingIoAcceptor.registerHandles(AbstractP at org.apache.mina.core.polling.AbstractPollingIoAcceptor.access$300(AbstractPollin at org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPoll at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
接下来的工作:
- 对配置文件深入了解
- 暂时匿名登陆仍未配置成功
-------------------------------
这博客排版太坑爹了,如果大家有什么好的方法,非常希望能留言告诉我。