Title: FtpServer Notice: 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. # Running FtpServer stand-alone in 5 minutes To get FtpServer up and running in stand-alone mode, you need to have a full distribution. Check out to build the source code and make sure you include the build for the distribution module ## Installing Now you should have a ZIP or TARed file with the entire distribution. Let's go. First of all, unpack it. If you're on Linux/Unix, you can use: tar -xzvf ftpserver-1.0.0.tar.gz On Windows and Linux/Unix, you can use any ZIP tool, like [7-zip](http://www.7-zip.org/) or [Gnome File Roller](http://fileroller.sourceforge.net/) to unzip the file at a location of your liking. ## Running a basic server Now, open a shell/command prompt where you unpacked the files. On Linux/Unix, run: bin/ftpd.sh On Windows, the same command is: bin/ftpd.bat FtpServer should now start as expected and you should be able to use a FTP client to access the server at localhost on port 21. The default . Note that on Linux this command will require root privileges as it tried to listen on port 21, something only root can do. If you're not root, you will get an exception saying "java.net.SocketException: Permission denied". Let's have a look at how to solve this without running as root. ## Configuring In the res/conf directory in the unpackaged directory you will find some example configuration files. For this tutorial, we will use the ftpd-typical.xml configuration file. It will set the listener port to 2121, thus fixing the issue with not being able to run the server as non-root on Linux. It will also use a provided user database, allowing logging in as admin (password admin) or anonymous. To run, on Linux/Unix: bin/ftpd.sh res/conf/ftpd-typical.xml On Windows: bin/ftpd.bat res/conf/ftpd-typical.xml That's it. Now you can configure the server to your likings. Have a look at either the ftpd-full.xml example or the configuration documentation. You can also set up FtpServer to run as a service on Windows or daemon on Linux/Unix.