Apache FtpServer搭建FTP服务器
[b]前言[/b]FTP服务器很多朋友都选用Serv-U,一般都是找的破解版或免费使用30天的版本,这里推荐一款免费开源而且简单好用的FTP软件:Apache FtpServer,以下是搭建过程。
[b]正文[/b]
一、介绍
Apache FtpServer是一个基于Apache MINA(一个高性能的Java异步并发网络通讯框架)开发的FTP 服务器。 既可以嵌到Java应用中使用,也可以做为Windows服务或Unix/Linux Daemon单独运行。此外还提供与Spring相集成的模块。(摘自[url]www.open-open.com[/url])
二、 准备
下载地址:[url=http://mina.apache.org/ftpserver/downloads.html][color=#810081]http://mina.apache.org/ftpserver/downloads.html[/color][/url]
本文使用1.0.6版本,点[url=http://archive.apache.org/dist/mina/ftpserver/1.0.6/ftpserver-1.0.6.zip][color=#810081]这里[/color][/url]直接下载。
三、 配置
参照 四、参考文章 里面来配置, - - # 这里偷懒就不重复了,这里主要将两个问题:
3.1 配置Pasv模式
如果服务器 启用了TCP/IP 筛选,那按文章来是连不上的,这里需要补充一点FTP的知识,FTP有两种连接方式:主动连接模式和被动连接模式(Pasv),这里主要说Pasv模式:客户端会随机获取一个大于1024的端口来与FTP服务器端的端口21连接,完成连接后客户端通过这个连接来对FTP服务器下达指令。明白原理,就可以开始动手了:
3.1.1 在TCP/IP筛选中打开端口21和1886(可自行设置其他端口)
3.1.2 修改配置文件,如下:[img]http://common.cnblogs.com/images/copycode.gif[/img]
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
[url]http://mina.apache.org/ftpserver/spring/v1[/url] [url]http://mina.apache.org/ftpserver/ftpserver-1.0.xsd[/url]
"
id="myServer"
max-logins="5"
anon-enabled="false"
max-anon-logins="0"
max-login-failures="3"
login-failure-delay="30000">
<listeners>
<nio-listener name="default" port="21">
<ssl>
<keystore file="./res/ftpserver.jks" password="password" />
</ssl>
[color=red] <data-connection idle-timeout="60">[/color]
[color=red] <active local-port="1886" />[/color]
[color=red] <passive ports="1886" />[/color]
[color=red] </data-connection>[/color]
</nio-listener>
</listeners>
<file-user-manager file="./res/conf/myusers.properties" encrypt-passwords="clear"/>
</server>
[img]http://common.cnblogs.com/images/copycode.gif[/img]
保存重新启动即可。首先FTP服务器是需要两个端口,一个上传端口,一个下载端口,所以只启用一个端口是不行的,这里固定了下载端口为1886。
3.2 设置目录
设置FTP为盘符根目录办法: ftpserver.user.myusername.homedirectory=F:
注意不带斜杠。
四、参考文章
[url=http://wangcheng.iteye.com/blog/364756][color=#810081]使用Apache FtpServer搭建FTP服务器[/color][/url]
[url=http://cuiyingfeng.blog.51cto.com/43841/277409][color=#0000ff]apache-ftpserver快速入门(windows平台)[/color][/url]
[url=http://wenku.baidu.com/view/5f0ab75f312b3169a451a4d8.html][color=#0000ff]Apache FtpServer配置详解[百度文库][/color][/url]
[url=http://www.microsoft.com/china/community/program/originalarticles/techdoc/ftpprinciple.mspx][color=#0000ff]浅析FTP的工作原理[/color][/url]
[b]结束[/b]
比起破解的Serv-U,还是更喜欢开源,使用方便,配置简单,欢迎大家也来试试吧。对了,还有一个中文文件夹显示乱码的问题,搜了一下都要改源码,就懒得动了,等升级解决吧,或者有知道简单办法的欢迎分享。
常见问题
注册为系统服务:install.bat(放bin目录中)[code]set JAVA_HOME=D:\jdk
pause
cd..
bin/service install ftpd %cd%/res/conf/ftpd.xml
pause[/code]删除系统服务:
uninstall.bat(放bin目录中)[code]pause
service remove
pause[/code]
Apache Ftp Server 中文目录,中文文件名,IE访问乱码解决
Apache Ftp Server,目前是1.0.4,非常好的纯Java Ftp服务器,既可以直接提供FTP服务,有可以嵌入到程序里。如果Ftp服务器提供的内容,有中文目录,文件名,XP下IE访问会出现一些错误。
如果IE的选项->高级里 为Ftp站点启用文件夹视图选项
没有选中,这时显示的是Html页面,但中文显示是乱码,强行指定编码为Utf8,则显示正常,但无法下载;
该选项选中,这时是文件夹方式显示Ftp服务器内容,选中文件夹后右键复制到文件夹,会复制出错,但用复制,然后粘贴到指定位置的方式可以正常复制。
使用windows带的ftp.exe访问站点,遇到中文也会出现错误。
但如果用流行的ftp客户端,比如FlashFXP就一切正常。
这说明XP 下IE的Ftp支持有bug。
但用户一般不用Ftp客户端,为了迁就IE,只有对ApacheFtpServer修改,通过查资料,XP下用的编码是GBK,只要把Apache FtpServer代码中处理编码的地方由国际标准UTF8编码改为迁就Xp下IE的GBK编码即可完成。
具体修改
org.apache.ftpserver.command.impl包里OPTS_UTF8.java
将
session.write(LocalizedFtpReply.translate(session, request, context, FtpReply.REPLY_200_COMMAND_OKAY, "OPTS.UTF8", null));
改为
session.write(LocalizedFtpReply.translate(session, request, context, FtpReply.REPLY_502_COMMAND_NOT_IMPLEMENTED, "OPTS.UTF8", null));
org.apache.ftpserver.listener.nio包里FtpServerProtocolCodecFactory.java
将
new TextLineDecoder(Charset.forName("UTF-8"));
改为:
new TextLineDecoder(Charset.forName("GBK"));
org.apache.ftpserver.impl包里IODataConnection.java
将
writer = new OutputStreamWriter(out, "UTF-8");
改为:
writer = new OutputStreamWriter(out, "GBK");
org.apache.ftpserver.listener.nio包里FtpResponseEncoder.java
将
Charset.forName("UTF-8").newEncoder();
改为:
Charset.forName("GBK").newEncoder();
重编译后,手动替换class就可以,如果用mvn package,test过不了,只有将出错的test文件DecoderTest和I18NTest删除,再package。
然后IE两种方式都可以正确的访问FTP服务器中的中文资源了。 真正围观中...-_- 谢谢了。。。 我很赞成,继续努力吧
bjcars.net
页:
[1]