apache MINA FtpServer

http://mina.apache.org/ftpserver.html

소스

SVN : http://svn.apache.org/repos/asf/mina/ftpserver/trunk/ftpserver

 

설치정보

http://cwiki.apache.org/confluence/display/FTPSERVER/Building

http://mina.apache.org/ftpserver-installation.html

 

wget  http://mirror.khlug.org/apache/mina/ftpserver/1.0.4/ftpserver-1.0.4.tar.gz

tar xzvf ftpserver-1.0.4.tar.gz

 

 

boot.sh

nohup ./ftpd.sh res/conf/ftpd-typical.xml > startRecord.txt &

 

 

설정

 

Spring 방식 설정

<beans:beans xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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   
       ">

    <server id="myServer">
        <listeners>
            <nio-listener name="default" port="2121">
                <ssl>
                    <keystore file="mykeystore.jks" password="secret"/>
                </ssl>
            </nio-listener>
        </listeners>
        <file-user-manager file="users.properties" />
    </server>
</beans:beans>

 

    <beans:bean id="ftpletBean2" class="org.apache.ftpserver.examples.MyFtplet">
        <beans:property name="foo" value="123"/>
    </beans:bean>


    <server id="myServer">
        <ftplets>
            <ftplet name="ftplet1">
                <beans:bean class="org.apache.ftpserver.examples.MyFtplet">
                    <beans:property name="foo" value="123"/>
                </beans:bean>
            </ftplet>
            <ftplet name="ftplet2">
                <beans:ref name="ftpletBean2" />
            </ftplet>
        </ftplets>
    </server>
</beans:beans>

 

<beans:beans xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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 file:///home/niklas/workspaces/apache/ftpserver/core/src/main/resources/org/apache/ftpserver/config/spring/ftpserver-1.0.xsd   
       ">
    <!--        http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd -->
    <server id="myServer">
        <listeners>
            <nio-listener name="default" port="2222" implicit-ssl="true"  idle-timeout="60" local-address="1.2.3.4">
                <ssl>
                    <keystore file="mykeystore.jks" password="secret" key-password="otherSecret" />
                    <truststore file="mytruststore.jks" password="secret"/>
                </ssl>
                <data-connection idle-timeout="60">
                    <active enabled="true" local-address="1.2.3.4" local-port="2323" ip-check="true"/>
                    <passive ports="123-125" address="1.2.3.4" external-address="1.2.3.4" />
                </data-connection>
                <blacklist>1.2.3.0/16, 1.2.4.0/16, 1.2.3.4</blacklist>             
            </nio-listener>
            <listener name="myCustomListener">
                <beans:bean class="org.apache.ftpserver.examples.MyListener" />
            </listener>
        </listeners>
        <ftplets>
            <ftplet name="ftplet1">
                <beans:bean class="org.apache.ftpserver.examples.MyFtplet">
                    <beans:property name="foo" value="123"/>
                </beans:bean>
            </ftplet>
        </ftplets>
        <file-user-manager file="users.properties" encrypt-passwords="true" />
        <native-filesystem case-insensitive="false" create-home="true" />
        <commands use-default="false">
            <command name="MYHELP">
                <beans:bean class="org.apache.ftpserver.examples.MYHELP" />
            </command>
        </commands>
        <messages languages="se, no ,da" />
    </server>
</beans:beans>

 

<beans:beans xmlns="http://mina.apache.org/ftpserver/spring/v1"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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   
       ">

    <server id="myServer" />
</beans:beans>

Passive port

       <nio-listener name="default">
            <port>11201</port>
            <data-connection-configuration idle-timeout="120">
              <class>org.apache.ftpserver.DefaultDataConnectionConfiguration</class>
              <passive-ports>10125-10199</passive-ports>
            </data-connection-configuration>
        </nio-listener>

 

사용자관리

http://mina.apache.org/ftpserver-database-user-manager.html

http://mina.apache.org/ftpserver-file-based-user-manager.html