Simple ftp server windows

  • Overview

Free, minimalist FTP and FTPS server for Windows

Getting started in 60 seconds

  1. Download and unpack the ZIP package.
  2. Run RebexTinyFtpServer.exe
  3. Press Start button to begin serving files via FTP.
  4. Edit the configuration (optional).

Features

Main features

  • Simple server for file sharing using FTP protocol.
  • Runs as a stand-alone Windows application (not a service).
  • Free to use, even for commercial purposes.
  • Single user with read/write access.
  • TLS 1.3/1.2 support and up-to-date TLS cipher support.
  • Legacy TLS 1.1/1.0 supported as well.
  • Runs on any Windows OS with .NET 4.0 such as Windows XP, 7, 8, 10, 11 and others.

What is it best for?

  • Local FTP client application development and testing
  • Quick & dirty file sharing

Limitations

Not for use with real passwords

This server stores password in clear-text configuration file. The password
is even displayed on the server main form. If your scenario requires
a higher degree of security use the full-featured FTP/SFTP server such as Buru SFTP.

Compare Tiny FTP and Buru SFTP Server

Documentation and support

The server can be configured using RebexTinyFtpServer.exe.config file.
This configuration file must be placed in the same folder as the executable file.

userName
Login name of the FTP user.
If not specified, ‘tester’ is used.
userPassword
Password of the FTP user.
If not specified, ‘password’ is used.
ftpPort
TCP port on which the server listens for FTP connections using plain FTP and FTP with explicit TLS.
If not specified, the unencrypted FTP and FTP with explicit TLS is disabled.
ftpPortImplicit
TCP port on which the server listens for FTP connections using implicit TLS.
If not specified, the FTP with implicit TLS is disabled.
ftpDataPortRange
Specifies the TCP port range to use for FTP data connections.
If not specified, ports are choosen automatically.
userRootDir
Root data folder. If the folder does not exist,
the server creates it and puts some test data there.
Default is .\data.
serverCertificateFile
Path to the server certificate with associated private key.
PKCS #12 (.pfx file extension) format is supported.
A new self-signed certificate is generated if it does not exist:

  • .pfx file is intended to be used on the server.
  • .cer file is intended to be installed on the client into
    the «Trusted Root Certification Authorities» store.

For more information, read our
Introduction to Public Key Certificates.
Default is server-certificate.pfx.

serverCertificatePassword
Password for the server certificate.
tlsVersions
Possible values: TLS13, TLS12, TLS11, TLS10, SSL30.
(SSL30 will not work if TLS13 is enabled.)
Default is TLS13, TLS12, TLS11, TLS10.
autoStart
If set to true, the server starts when application is started.
No need to press the button.
Default is false.

Version history

1.0.1 (2025-03-13)

  • Improved logging — eliminated an occasional annoying beep.
  • Config paths made relative to the executable location.
  • Upgraded Rebex File Server library.

1.0.0 (2024-01-29)

  • First version.

Lets look at setting up a simple Windows FTP server that will allow you to transfer files to and from it over the internet or local LAN network.

Windows FTP server FileZilla

  • What is a FTP Server ?
  • Why make use of an FTP server ?
    • Efficient Large File Transfers:
    • Straightforward File Management using FTP:
    • Security (with encryption):
    • Works Offline (partially):
    • Wide Compatibility:
    • Continue Transfers In Case Of Disconnections:
  • Breaking down FTP Server Security Quickly
  • Lets Start setting up a Windows FTP Server
    • 1. Download Filezilla FTP Server and Client packages
    • 2. Setting up the FTP Server and settings
    • 3. Passive vs Active FTP Connections
      • Setting up Passive mode
    • 4. Setting up Users for FTP Server Access
      • Adding additional User accounts
    • 5. Connecting to the Filezilla FTP server
    • 6. Transferring Files To and From the FTP Server
  • 7. FTP Server Port Forwarding
    • Forward Ports on Your Router:
  • Conclusion

What is a FTP Server ?

An FTP server, standing for File Transfer Protocol server, is a program that runs on a computer and allows other computers to transfer files to and from it. These transfers can happen over the internet or any other network that uses TCP/IP.

For instance FTP servers are especially useful for website server owners who need to upload files to their web hosting company, or for companies that need to exchange large files with each other.

It is also popular to use FTP on NAS or Network Attached Storage servers to allow for files to be accessed remotely In addition to other server rolls

FileZilla is a free and popular FTP client that you can use to connect to FTP servers. An FTP client is a program that runs on your computer and allows you to browse, upload, download, delete, rename, move and copy files on the remote server.

Think of it like a file explorer program, but for files stored on a remote server instead of your own computer. FileZilla is available for Windows, Mac, and Linux. There is also a FileZilla Server, which is a free FTP server program that you can install on your own computer.

Disclaimer: Filezilla makes it easy to implement a FTP server however lacks some security features such as SFTP, Filezilla only supports the FTP and FTP over TLS protocols as of this articles writing.

For a production type server maybe consider a Linux Alternative such as ProFTPD that does support SFTP

Why make use of an FTP server ?

Using FTP server has some advantages for transferring files across networks securely however care should be taken to set the FTP server up correctly.

Here are some of the advantages of using FTP servers

Efficient Large File Transfers:

FTP excels at transferring large files. Unlike email, which has file size limitations and can be interrupted during transfers, FTP servers allow for stable and reliable transfers of big files. This is crucial for businesses that deal with large datasets or media files.

Straightforward File Management using FTP:

FTP offers a well-established way to manage files on a remote server. Using an FTP client, you can easily browse directories, upload and download files, rename them, and even manage permissions for who can access the files. It provides a familiar file management interface for users.

Security (with encryption):

While basic FTP itself doesn’t encrypt data transfer, secure versions like FTPS and SFTP do. This ensures that sensitive information is protected while being uploaded or downloaded from the server. FTP servers can also be used to control access to files and folders allowing clients that use the server to only access what they are allowed.

Works Offline (partially):

While an active internet connection is needed to connect to the server initially, some FTP clients allow you to queue up files for transfer even when offline. The transfers will then be initiated automatically when you reconnect to the internet.

Wide Compatibility:

Furthermore FTP is a mature protocol that’s been around for a long time. This means it’s compatible with a wide range of devices and operating systems, making it a reliable choice for file transfers across different platforms.

Most if not all Web server hosting providers make use of FTP to upload websites and files to domains.

Thus, it is essential for web developers to become familiar with using and understanding at least the basics of using an FTP client.

Continue Transfers In Case Of Disconnections:

Most FTP servers allow for download and upload resume in the event that you got disconnected from the server while moving files. this is very handy especially when uploading large amounts of files. FTP client software will manage the upload and download for you.

However note that the server will have to implement this feature for it to work…

Breaking down FTP Server Security Quickly

Most importantly, FTP servers make use of additional security layers to help keep file transport safer and more secure, Lets look at some of the protocols used by FTP.

1. Functionality:

  • TLS (Transport Layer Security): This is not a file transfer protocol itself, but a security protocol that encrypts communication between two applications. It’s used in various protocols like HTTPS and FTPS.
  • FTP (File Transfer Protocol): This is the foundation for transferring files between computers. It doesn’t provide any encryption for the data being transferred by itself.
  • SFTP (SSH File Transfer Protocol): This is a secure file transfer protocol built on top of SSH (Secure Shell). It encrypts both data and commands during transfer, offering a secure alternative to FTP. Filezilla does not make use of SFTP at this time, Its mostly used on Linux Servers.

2. Security:

  • TLS: Provides encryption for the data stream, protecting it from eavesdropping or tampering during transfer.
  • FTP (basic): No encryption. Usernames, passwords, and file contents can be intercepted if not used with a secure version like FTPS.
  • SFTP: Encrypts both data and commands, making it more secure than FTPS.

3. Connection Management:

  • TLS: Can be used with various protocols, often requiring separate channels for commands and data transfer.
  • FTP: Uses separate control and data channels, which can be a challenge for firewalls.
  • SFTP: Uses a single SSH channel for both commands and data, simplifying firewall configurations.

4. Other Security Protocols for FTP:

  • FTPS (FTP over TLS/SSL): This adds a layer of TLS encryption on top of the standard FTP protocol, securing data transfer.
  • Implicit vs Explicit FTPS: There are two ways FTPS implements TLS – implicit (default port 990) and explicit (standard FTP port 21 with negotiation for TLS).

Firstly, you will need a Computer running Windows 10 or Windows 11 but also note that Linux can be used as well with other FTP software which is overall more secure.

Secondly, you will need a Static or Public IP. This IP is assigned from your ISP or Internet Service Provider.

Unfortunately many Internet Service Providers will not allow you to host home servers unless it is a business line and might charge you additional fees for allowing hosting capabilities. Moreover Its best to check with your ISP beforehand if you qualify and if they can provide you with a Static IP address…

Thirdly, you will need your computer to be setup on the network and have internet access.

1. Download Filezilla FTP Server and Client packages

In addition start by downloading the latest Filezilla server software, head on over to https://filezilla-project.org/ and download both the server and client software packages.

Next up install Filezilla Server on your Windows Computer. The installation is pretty straight forward and takes a few minutes.

Filezilla FTP Server setup

Insure that you install both the Server and the Administrative Interface. The Administrative interface will be used to configure the FTP server back-end later.

Filezilla Server Installer

Its a good idea to install the server as a service, But you can also select the option to manually start it when you need it. Depending on your requirements for the FTP server.

Filezilla Admin interface Port

Make sure to set a password for your Administrative Panel. This will be used later to connect the Admin Panel App to the FileZilla FTP server service running in the background to allow you to set it all up.

Filezilla Startup Settings

Select how you want the FTP server to start. usually you can leave this as default.

Pro Tip: On Windows for instance, you can use netplwiz to setup automatic login for a user so that when the PC starts up it will automatically login to an account which will then start the FTP server.

2. Setting up the FTP Server and settings

Filezilla Administrative Interface

After the Filezilla server is installed it will open the Administrative Interface, we need to connect to the Filezilla Server service that is running in order to configure it correctly.

After launching FileZilla, click on Connect to Server. It will as you to provide the password you set earlier and the port. which by default is : 14148

Note: That these settings are not used by other users, its only to connect the Admin interface to the FileZilla service.

Furthermore you can choose to save the password and also select to connect to the server by default on startup (When the Admin Interface app) is opened in future.

Upon connecting you should see the following console output in the Administrative panel. We will now move to configure the FTP server for use.

At the top under the Server menu entry select the configure option.

There are a few things we will need to change and implement in order for the Server to work correctly. Server Listeners are IP Addresses on which the FTP server will listen for connections. By default Filezilla will bind to all network interfaces that you have and listen on Port 21 by default.

Notice the Protocol option here. The default option is set to Explicit FTP over TLS and Insecure Plain FTP. This will work for basic setups but is not very secure. Instead we are going to change this to use Require Explicit FTP over TLS.

Next up select the Protocol Settings option on the left.

FileZilla Protocol Settings

Auto ban is useful for when bots try to beak into your server by spamming login credentials. Luckily here we can setup some form of security to mitigate this.

3. Passive vs Active FTP Connections

FTP servers make use of two different connections, Active and Passive.

What is the difference between Active and Passive modes ?

  • Traditional (Active Mode):
    By default, FTP uses active mode. In this mode, the client initiates a connection to the server’s control port (usually port 21). Then, the client tells the server which port on the client’s machine the server should connect to for data transfer. The problem arises if the client’s network has a firewall blocking incoming connections on random ports. The server’s attempt to connect back to the client might be blocked.
  • Passive Mode:
    To address this firewall issue, passive mode flips the connection initiation process. The client initiates a connection to the server’s control port as usual. But instead of telling the server a port to connect to, the client uses the PASV command. This prompts the server to listen on a random high-numbered port on its own machine and tell the client that port number. The client can then initiate a data connection to that specific port on the server, bypassing any firewall restrictions on the client-side.

In summery, passive mode allows the client to control the data connection initiation, ensuring it can connect to a port allowed by the client’s firewall. This makes passive mode the preferred option for most FTP transfers today.

Setting up Passive mode

Filezilla passive mode setup

Passive mode will require you to enter your static (public) IP address so it can route connections and traffic to the passive ports and routes.

Replace <YOUR STATIC IP HERE> with your own Static IP address that you got from your ISP (Internet Service Provider)

Usually I prefer to set the passive ports manually, starting from 61000 to 62000, just make sure you also forward these ports in your router on UDP as well as port 21 to allow outside traffic to actually access the server.

4. Setting up Users for FTP Server Access

It is time to setup users that will be allowed to use the FTP server. navigate to the Users option

Filezilla System users settings

By default, Filezilla will provide the option to give users that is on the windows PC access to their Home directory (indicated by the variable %<home>) such as Documents, Music, Pictures and so on.

While is can easily be enabled by checking the “User is Enabled” options what happens when you do not have a windows user account for each user you want to give access.

Adding a user account that is not part of Windows is fairly simple. On a hard drive create a folder and call it FTP followed by a user name. For example John Doe. In this example I will use the following directory: “C:\FTP\JohnDoe”

Adding additional User accounts

Next, in FileZilla’s Users settings section click on Add then provide the user name in the list under Available Users.

  1. Change the new User to the actual Account name, in my example its JohnDoe
  2. Check User is enabled option. To enable the users account.
  3. Use the dropdown and set it to Require a password to log in.
  4. Enter a good strong password
  5. Setting up a mount point. This will act like the virtual users home directory. Notice the slash “/” in front of the JohnDoe path.
Filezilla Users settings

Make sure the path exists and that you give it Read and Write permissions else this user wont be able to upload any files. If you change permissions to read only the user will only be able to read and download files. Useful for when you give them access to directories you do not want them to alter.

Add more directories as you with, just remember that the virtual path must start with a slash “/” and then the name of the directory. The virtual path name maps to the path of the folder on your system and can be different but must be unique. When done hit apply to save the changes.

At this point you should have a basic functional FTP server. We will test it next to see if we can connect to it.

5. Connecting to the Filezilla FTP server

Proceed by installing the Filezilla Client on a different Windows computer. The installation for the Filezilla client is straight forward with a few things to look out for.

Firstly. when asked to install 3rd party bundles app’s decline the offer. We only want the Filezilla client to install.

Secondly, when asked which user to install it for the default option should work perfectly well change only if you need too.

After installing the client open Filezilla and at the top provide your Servers Host IP address, the username and password and the FTP servers port.

Filezilla Client Quick connect

I am using my Local LAN IP for the server to test if the server is working correctly before I open it up to the internet.

When connecting we will be prompted to accept a Self Signed SSL certificate to enable TLS encryption which looks something like this.

Self Signed SSL certificate for TLS

Generally a self signed SSL certificate is fine if you intend to use this FTP server privately but it would be better to set up an actual SSL certificate through a trusted provider. This falls outside of the scope provided in this simple tutorial. The output we are looking for after connecting to the server is a follows.

Filezilla client connection to FTP server

Notice the output on the console and verification that we are indeed connected using TLS encryption.

Furthermore, you should see the user’s folder (Remote Site) on the right and your PC (Local Site) on the left…

6. Transferring Files To and From the FTP Server

Transferring files is fairly simple. you drag and drop folders and files from one panel to another. On the left is your computers files and folders that you are connecting from and on the right is the FTP servers remote files and folders.

For instance, If you want to download a file or folder from the FTP server, select it in the right (Remote Site) Panel then drag it to the left (Local Site) Panel.

To upload files and folders to the FTP server, select the file or folder in the Panel on the left then drag it to the desired folder on the right to send it to the FTP server.

FileZilla File transfer

Multiple Files and Folders can be queued up at the same time and Filezilla will by default process 2 at a time. You can change this behavior in the clients settings.

Your server will also display information in the Administrative Interface on which clients are connected. Which files are being transferred together with transfer speeds and remote IP information. This can be used to kick and even ban some bad actors. For more advanced administration check the Filezilla wiki here

FTP server console output

7. FTP Server Port Forwarding

Before users from the internet can access your FTP Server you will need to forward the ports associated with the FTP server. By default, FileZilla uses two main ports for transfers:

  1. Control Port (default 21):
    This port is used for initial connection and commands between the client and server. Most FTP servers will by default use port 21 TCP
  2. Data Port Or Passive Port (variable 49152-65535 Default):
    This port is used for transferring the actual files. By default, FileZilla uses passive mode, which requires a range of ports for data connections.

You can keep the default (21) or choose a different unused port number (generally above 1024).

As for the Data Port (Also known as passive ports) It’s recommended to define a range of ports for passive mode. Common choices are 49152-65535 or a similar high-numbered range.

In this tutorial we assigned the ports to 61000 – 62000

Forward Ports on Your Router:

  • Access your router’s configuration interface (usually by typing its IP address in a web browser).
  • Locate the port forwarding section. Consult your router’s manual if needed.
  • Create two forwarding rules:
    • One rule to forward the chosen control port (e.g., 21 TCP or your chosen number) to the internal IP address of the computer running FileZilla Server.
    • Another rule to forward the entire data port range (e.g., 61000-62000 TCP) to the same internal IP of your server.

What about Port 990 ?

Port 990 is primarily used for the FTPS (File Transfer Protocol Secure) protocol, specifically the control connection. FTPS provides a secure way to transfer files over a network by encrypting the communication between the client and server.

In addition, FileZilla can use port 990, but it depends on the specific FTPS (File Transfer Protocol Secure) mode you’re using:

  • Explicit FTPS (Recommended):
  • In this mode, FileZilla does not typically use port 990 by default. It uses port 21 for the initial connection and control channel, similar to standard FTP. Then, a separate port range is used for data transfer.
  • Implicit FTPS (Deprecated Not Recommended):
  • This mode is less secure and not recommended by FileZilla. If you specifically configure FileZilla for Implicit FTPS, then it would use port 990 for both the control channel and data transfer.

Thus for security reasons, it’s generally recommended to use Explicit FTPS (port 21) over Implicit FTPS (port 990).

You can get more information on port forwarding here

Conclusion

While its easy enough to setup a private FTP server using software like Filezilla, there are a few things to take into consideration.

Security is at the forefront of any server you intend to allow outside internet traffic to access. Filezilla lacks SFTP so for instance it might be better to run a Linux Server.

Using a trusted SSL certificate is highly advised. Filezilla offers support for Lets Encrypt so check that out if you want a better cert then a self signed one.

Over all consider maybe rending a server from a host provider and have a professional team deal with the security instead. But for fun, setting up a quick and simple FTP server on windows can be a good way to learn a little about web transfer technologies.

Check out our article on Setting up a simple Apache web server on Linux Ubuntu that can be used in conjunction with FTP servers.

An FTP server is necessary to share files using the File Transfer Protocol. An FTP server is what an FTP client connects to for file transfers.

The 6 Best Free FTP Clients for Windows, Mac, and Linux

There are lots of FTP servers available, but many of them are only usable at a cost. Below is a list of the best freeware FTP server programs that run on Windows, macOS, and Linux. You can download and use them to share files as often as you like without paying a dime.

FileZilla Server

What We Like

  • Intuitive interface.

  • Perform file transfers simultaneously.

  • Supports secure file transfers.

  • Bookmarks for fast connections.

What We Don’t Like

  • Can’t edit files from inside the app.

  • Does not refresh folder views automatically.

FileZilla Server is an open-source and free server application for Windows. It can administer a local server as well as a remote FTP server.

You can choose which ports the program should listen on, how many users can be connected to your server at once, the number of CPU threads the server can use, and timeout settings for connections, transfers, and logins.

Some security features include auto-banning an IP address if it fails to login successfully after so many attempts, an option to enable FTP over TLS with the ability to disallow unencrypted FTP, and IP filtering so that you can prevent certain IP addresses or IP address ranges from connecting to your FTP server.

It’s also effortless to take your server offline or quickly lock the FTP server with one click to ensure that no new connections to your server can be made until you unlock it.

You also have full access to the creation of users and groups with FileZilla Server, which means you can throttle bandwidth for some users and not others and provide select users with permissions like read/write, but others with only read access.

Download FileZilla Server

Xlight FTP Server

What We Like

  • Lightweight.

  • Supports secure file transfers.

  • Remote administration feature.

  • Supports multiple connections at once.

What We Don’t Like

  • More difficult to use for FTP novices.

  • Can be complicated to configure.

Xlight is a free FTP server that’s more modern-looking than FileZilla Server and also includes tons of settings that you can modify to your liking.

After you create a virtual server, double-click it to open its settings, where you can modify the server port and IP address, enable security features, control bandwidth usage for the server, define how many users can be on your server, and set an explicit maximum login count from the same IP address.

An interesting feature in Xlight is that you can set the maximum idle time for users to get kicked out if they aren’t communicating with the server.

The Xlight FTP Server can use SSL and can require clients to use a certificate. It also supports ODBC, Active Directory, and LDAP authentication.

Xlight is free for personal use only and works with Windows, both 32-bit and 64-bit versions.

You can download this FTP server as a portable program so that it doesn’t need to be installed, or you can install it on your computer like a regular application.

Download Xlight FTP Server

CompleteFTP


What We Like

  • Simple installation.

  • Supports encrypted file transfers.

  • Many customization options.

  • More features than most FTP servers.

What We Don’t Like

  • Full menu hidden by default.

  • Has occasional performance issues.

  • Limited features in free version.

CompleteFTP is another free Windows FTP server that supports both FTP and FTPS.

This program has a full graphical user interface and is easy to use. The interface is pretty bare, and the settings are hidden in the side menu and are simple to access.

Step-by-step guides are built into the CompleteFTP install, so you can select Step-by-step guides at the top of the program at any time to learn how to use the different features and options.

This program installs as a trial of the professional edition. See the instructions on the download page to learn how to activate the free edition of CompleteFTP (all the features above are in the free version).

Download CompleteFTP

Core FTP Server

What We Like

  • Quick setup.

  • Supports encrypted file transfers.

  • Supports Active Directory.

  • Simple interface.

What We Don’t Like

  • Free version only supports three domains.

Core FTP Server is an FTP server for Windows that comes in two versions.

One is a minimal server that’s simple to understand and easy to set up in about a minute. It’s 100 percent portable and has you choose a username, password, port, and root path. There are a few other settings as well if you want to configure them.

The other version of Core FTP Server is the full-fledged server. You can define the domain name, have it auto-start as a service, add multiple user accounts with detailed access permissions and restrictions, designate access rules, and more.

Both versions of this FTP server come as 32-bit and 64-bit versions for Windows. 

Download Core FTP Server

Vsftpd

What We Like

  • Fast FTP server.

  • Supports secure file transfer.

  • Lightweight.

What We Don’t Like

  • For Linux only.

  • Complicated to install and configure.

  • Limited functionality.

vsftpd is a Linux FTP server that claims security, performance, and stability are its core selling points. This program is the default FTP server used in Ubuntu, Fedora, CentOS, and other similar OSs.

vsftpd lets you create users, throttle bandwidth, and encrypt connections over SSL. It also supports per-user configurations, per-source IP limits, per-source IP address configurations, and IPv6.

Refer to the vsftpd manual if you need help using this server.

Download Vsftpd

ProFTPD

What We Like

  • More secure than other FTP servers.

  • Add-on modules available for more features.

  • Ideal for web servers.

What We Don’t Like

  • Linux only.

  • Difficult for novices to install.

ProFTPD is a good option for Linux if you’re looking for an FTP server with a GUI so that it’s easier to use than messing around with command-line commands.

The only catch is that after installing ProFTPD, you must also install the gadmin GUI tool and connect it to the server.

Here are some features you get with ProFTPD: IPv6 support, module support, logging, hidden directories, and files, which can be used as a standalone server, and per-directory configurations.

ProFTPD works with macOS, FreeBSD, Linux, Solaris, Cygwin, IRIX, OpenBSD, and other platforms.

Download ProFTPD

Rebex Tiny SFTP Server

What We Like

  • Tutorials available.

  • Simple to configure (no setup required).

  • Protects user privacy.

  • Securely transfer files.

What We Don’t Like

  • Minimalist, with few advanced features.

  • Requires .NET 4.0

  • Windows only.

This Windows FTP server is lightweight, portable, and can get up and running in seconds. Just unzip the program from the download and select Start.

The only downfall with this program is that you must make any settings adjustments through the RebexTinySftpServer.exe.config text file.

This CONFIG file is how you change the username and password, set the root directory, change the FTP port, have the server start when an application is started, and adjust security settings.

After extracting the ZIP file’s contents, use the RebexTinySftpServer.exe file to open the program.

Download Rebex Tiny SFTP Server

Thanks for letting us know!

Get the Latest Tech News Delivered Every Day

Subscribe

smallftpd is forked from [http://smallftpd.sourceforge.net] ([https://sourceforge.net/projects/smallftpd])

All credits to the original author, see below.

This gitgub fork was created because the original smallftpd did not work with a Windows 10 FTP command line client due to changes introduced by Microsoft (it sends an OPTS command, which crashes the smallftpd server). As smallftpd no longer seems to be supported, I thought I’d share the fix on github.

Compilation

smallftpd compiles with Dev-C++ (http://www.bloodshed.net/devcpp.html). I used version Dev-Cpp 5.11 TDM-GCC 4.9.2 from http://orwelldevcpp.blogspot.co.uk/ on 32 bit Windows Vista (yeah, ancient, but I didn’t want to mess up my Win10 boxes with yet another compiler).

Load the project (smallftpd.dev), which will probably complain about a missing library directory, just say yes.

Change the dropdown on the toolbar from 64bit to 32bit release compilation (I haven’t tested 64 bit), and compile (F9).

There will be a lot of compilation warnings, and with the original version a few errors (now fixed).

Depending on your Dev-C++ install location, the linker may fail to find libwsock32.a — fix this by opening Project/ProjectOptions/Parameters/Linker and browsing to MinGW64/x86_64-w64-mingw32/lib32/libwsock32.a

Note that the current code produces debug output (debug.log, transfer.log) by default. This can be disabled by modifying the log() function in main.cpp (uncomment «return false» near the top of the function).

For testing it is useful to start the FTP client with -d -n options, and if NOT using a Windows 10 FTP client the «literal opts» command can be used to emulate the problematic behaviour.

ORIGINAL README.TXT FOLLOWS …



smallftpd 1.0.4
by Arnaud Mary
http://smallftpd.sourceforge.net


  1. Description :

    • The first goal of this application was to allow me to specify a hostname to be resolved by the FTP server when going to passive mode.
    • Today, Smallftpd is an open-source project, a simple and small FTP server.
    • Smallftpd needs your remarks, your suggestions, and tour c++ skills !
  2. Installation :

    • run the smallftpd.exe
    • check configuration, create user accounts,
    • press «play». ;-)
  3. Features :

    • Multi-threaded FTP server
    • Active / Passive mode
    • Multi-users
    • Manage List, Read & Write rights for every user
    • Advanced filesystem.
  4. List of supported commands :

    • ABOR, CDUP, CWD, DELE, LIST, MKD, PASS, PASV, PORT, PWD, QUIT, REST,
      RETR, RMD, RNFR, RNTO, SIZE, STORE, SYST, TYPE, USER.
  5. History :

    • 1.0.3 Fix (May 21st 2003) :
      * Fixed a stupid bug concerning transfer performances.
      * disabled debug logging

    • 1.0.3 :
      * Fixed major security bug (http://securitytracker.com/alerts/2003/Apr/1006685.html)
      * Fixed bug when trying to retrieve a file that does not exist
      * window position is saved
      * display a live estimation of transfer rate in GUI
      * fixed minor bugs

    • 1.0.2 :
      * fixed several [major] bugs
      * some UI improvements
      * ABOR command is now correctly managed.

    • 0.93 alpha :
      * Better UI, window minimizes in systray.
      * Better log system. All transfers are logged in transfers.log

    • 0.9 alpha ( June 2002 ) :
      * First operational version
      * Added Rename files/folders feature
      * Manage user virtual filesystem
      * Added an inactivity timeout

    • 0.5 ( May 2002 ) :
      * Added Rename files/folders feature (RNFR & RNTO)
      * Added Delete files feature (DELE)
      * Added Create/delete folder (MKD & RMD)

    • 0.3 ( May 2002 ) :
      * Configuration is now automatically loaded and saved in a .ini file.
      * Added button icons for ftp running & stopped.
      * Added a List box showing users connected.

    • 0.2 ( April 2002 ) :
      * Passive mode added.
      * Also fixed some bugs.

    • 0.1 ( January 2002 ) :
      * very first version.
      * Active mode is supported.

  6. Next features :

    • Manage Max number of threads per user / total threads.

    • Reduce Memory taken by process

    • prevent users from hammering.

    • restrict access by IP

    • check for memory problems. Check Memory overflow possible problems.

    • use CopyMemory, MoveMemory, etc… in order to reduce the size of the .exe file.

    • respect the RFC

    • improve SECURITY !

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Активация windows vista по телефону
  • Как на компьютере перевернуть видео снятое на телефон с помощью windows
  • Как удалить некоторыми параметрами управляет ваша организация windows 10
  • Get vpnconnection windows 7
  • В защитнике windows появились исключения