Installing and configuring a secure FTP server on FileZilla. Your own provider: setting up FTP and TFTP servers

Based on numerous requests from readers, in this HOWTO we will take a detailed look at installing and configuring an FTP (file) server for Windows using the example of the most popular one - FileZilla Server.

The choice of FileZilla Server is due to the fact that it is one of the fastest and most reliable (if properly configured) FTP servers with a graphical configuration module. The server is regularly updated and has good documentation in English.

We'll look at installation and configuration in more detail under the cut. Attention, traffic (lots of screenshots)!

Server installation

Download the server installation program from its official website and run it. The first steps of the wizard are standard for most Windows applications, so we will only consider the last two in detail.

On the page Startup settings You will be asked to select a method to start the FTP server:

  • Install as service, started with Windows (default)— start the server as a Windows service at boot. This option is offered by default. The FTP server will start automatically even if no user is logged in. It is recommended to choose this option;
  • Install as service, started manually— the server will be installed as a service, but will not start automatically. To start, you will need to enter the following command in the Windows console with administrator rights: net start "FileZilla Server"
  • Do not install as service, start server automatically— the server will not be installed as a service, but will be launched as the current Windows user. This option is categorically not recommended, because in case of hacking, the attacker will receive the same rights and can harm the system.

Here you are asked to select the port that will listen to the administrative interface of the server. Specified by default 14147 .

On the page Startup settings You are prompted to select a method for launching the administrative interface:


  • Start if user logs on, apply ato all users (default)— launch the administrative interface when any user logs into the system as an icon in the system tray. This item is selected by default;
  • Start if user logs on, apply to current user— launch the administrative interface when the current user logs in;
  • Start manually— run manually. We recommend choosing this option.

Checkbox in a checkbox Start Interface after setup completes will automatically launch the server administrative interface upon completion of installation. Don't uncheck this box.

This completes the server installation. Let's start setting it up.

Setting up an FTP server

So, start the server and the administrative interface if they are not already running.

You can start the server like this: Start(All programsFileZilla ServerStart FileZilla Server, or using the command:

Net start "FileZilla Server"

You can launch the administrative interface like this: Start(All programsFileZilla ServerFileZilla Server Interface.

After launching the administrative interface, you will see a window asking you to enter the server IP (for local, leave 127.0.0.1 ), admin port (if you changed it during installation, specify the correct option here, otherwise leave the default value) and password.

The default password is empty (it can be set in the server settings on the page), so immediately click OK to go to the main window (click to enlarge):


Most of this window is occupied by the FTP server log, which will display detailed records about connecting users and the transfers they initiated. At the bottom of the window you will see the logins of all connected users, their IP addresses and the progress of downloading/uploading files. When you right-click on a login, you can disconnect the user from the server ( Kick user), or block his access via IP ( Ban user).

Open server settings by selecting from the menu Edit paragraph Settings.

General settings


On this page you can change the main port of the FTP server from 21 to any other if your provider blocks incoming connections to it. Here you can set timeouts in seconds, after which the user will be automatically disconnected from the server. To disable timeouts, set the value 0 . If you want to limit the maximum number of connected users, you can do this in the line Max number of users(default is set 0 , i.e. no restrictions).

General settings -> Welcome message


General settings - Welcome message

Here you can replace the standard greeting sent to clients when connecting to your FTP server. You can enter up to 1024 characters, each line must be no longer than 75 characters.

Check the checkbox Hide welcome message in log to reduce the size of log files by disabling the recording of this message in them.

General settings -> IP bindings


General settings - IP bindings

On this page you can specify the IP addresses of the network interfaces that the FTP server should listen to. We recommend leaving * , i.e. listening on all possible interfaces.

General settings -> IP Filter


General settings - IP Filter

On this page you can manage the list of banned IP addresses, i.e. addresses from which access to the server will be blocked (top field), as well as addresses that cannot be banned through the administrative interface (bottom field).

Each address is entered on a new line. In our example, the three specified IP addresses will not be able to connect to the server, and 192.168.98.187 will be impossible to block.


If you have a router with NAT, then this is one of the most important pages for you. Check the checkbox Use custom port range and specify the range of ports (numbers from 1024 to 65535 are allowed) that will be used in passive FTP mode to connect clients to your server. The minimum range is 100 ports, but it is recommended to specify at least 400. You must forward this range of ports in the settings of your router. It is recommended to specify ports in the range from 30000.

Here you must indicate your external IP address. You can specify a host name, with the help of which the server will independently determine your external IP address. Our example uses the DynDNS.org service. If you have a static external IP, simply indicate it in the field Use the following IP. If the IP is dynamic, use the DynDNS.org service or similar and in the field Use the following IP enter the resulting hostname (as in our example).

Check the checkbox (if it is not already selected) Don’t use external IP for local connections to prohibit the use of external IPs for local connections. This will solve NAT Loopback problems on most routers.


On this page you can enable the use of the FXP protocol, which allows you to transfer files between two FTP servers directly. By default this is disabled (checkboxes are selected). If you need FXP support, uncheck all the checkboxes on this page.


Paragraph Don’t show passwords in message log allows you to hide user passwords from server logs.

Start minimized will enable the launch of the administrative interface in minimized tray mode.

It is not recommended to change the remaining settings of this page.


Here you can change the port that the administrative interface listens to, as well as the administrator password.

Check the checkbox Change admin password and set a new administrator password. Latin letters and numbers are allowed.


On this page you can enable logging of the server to a file by checking the checkbox Enable logging to file. Checkbox in checkbox Limit log file size to will allow you to specify the maximum allowed file size. If the file exceeds the specified number, it will be purged.

Paragraph Log all to FileZilla Server.log allows you to write all server logs to one file, and Use a different logfile each day creates a new log file every day, so we recommend this option. Checkbox Delete old logfiles after includes automatic cleaning of old logs.

All logs will be stored in a subdirectory Logs FileZilla Server installation directory.


Here you can set global download and upload speed limits. These limits will be applied by the server for all users.

To set the speed limit, check the box Constant speed limit of and specify the value in kilobytes per second.

In addition to this page, you can set limits for each user individually in the user management module.


Some FTP clients support compressed data transfer. Compression can be enabled by checking the checkbox Enable MODE Z support. The minimum and maximum compression ratios are also indicated here. Be sure to check the checkbox Exclude private IP address ranges, which will disable compression when transferring files within a local network, or when connecting locally to a server.

Attention! Enabling compression may negatively impact the performance of the FTP server.


On this page you can enable automatic IP blocking for users who have entered their password incorrectly a certain number of times. To enable this function, check the checkbox Enable automatic bans, in line Ban IP address after specify the maximum permissible number of incorrect password entry attempts (minimum 10), and in the line Ban for— time in hours for which the offender will be banned.

FileZilla Server allows you to create an unlimited number of users. Each user has the opportunity to set his own working folder, access parameters, speed limits, etc.

To manage users in the menu Edit administrative interface, select Users.


When you first start, in your section Users will be empty, so we must create a user. To do this, click the button Add.

In the window that opens, indicate your desired login (only Latin letters and numbers are allowed). Here you can also specify a group if they have already been created. Just enter your login and click OK.

Select the created user in the section Users. You will be prompted to specify a working folder for it, so the page will automatically open.


Click the button Add in the partition and specify the directory on the disk that the selected FTP user will have access to. After that, select it in the list and click Set as home dir. This action will prohibit escaping from this directory to the top for security reasons.

For each added directory, you can set read/write rights by checking or unchecking the checkboxes.

File permissions:

  • Read— allow reading and downloading files from the directory;
  • Write— allow writing files to the directory;
  • Delete— allow deleting files from the directory;
  • Append— allow resuming of files to the server.

Permissions for directories:

  • Create— allow the creation of subdirectories;
  • Delete— allow deleting directories;
  • List— allow listing (viewing a list of files). Never disable this action (the checkbox should always be checked);
  • Subdirs— extend rights to subdirectories.

Now go to the page General. Set a password for the user by checking the checkbox Password and registering a password.

Checkbox Enable account allows you to enable/disable the selected FTP account. Here you can set limits on the maximum number of connections for the user. Speed ​​limits for the user are set on the page.

To delete a user, select it in the section Users and press Delete. Button Rename allows you to change the login of the selected user (rename), and Copy- clone, i.e. create a copy with a different login.

After making the desired changes, click the button OK. User settings take effect immediately.

Enabling anonymous access to the server

If you need anonymous access to the server, open the user management window, add a user with login anonymous, uncheck the checkbox Password To disable the password request, on the page select your home directory, which will be accessible to everyone, and set the necessary rights (do not forget to disable writing, resuming and deleting files and directories). After clicking OK Anonymous access to the server will be open to everyone.

Sometimes it is easier and faster to transfer a file through your own FTP server than to upload it to a file hosting service. Below is the procedure for installing and configuring the IIS ftp server included in Windows 7.


The FTP server is included with Internet Information Services. To install it, open Control Panel -> Programs -> Turn Windows features on or off. Expand the IIS Services section and check the boxes next to the following components: FTP Service and IIS Management Console.

Setting up an FTP server.

Open Control Panel -> System and Security -> Administration -> Computer Management (you can quickly: Start menu -> right click on Computer -> select Management from the menu). In the window that opens, expand the Services and Applications group and open IIS Service Manager. In the Connections window, select the Sites folder, then in the right Actions window click on the Add FTP site link.

In the FTP site creation wizard, specify its name and location (by default c:\inetpub\ftproot).

Next, specify the binding and SSL parameters. I leave the binding section unchanged. I disable the “Start ftp site automatically” option (I only need ftp from time to time). In the SSL section, I select the “Without SSL” option.

In the next window, leave everything unchanged and click Finish.

The site has been created. Now you can move on to additional settings for fine-tuning (for example, limiting the maximum number of simultaneous connections). Select the newly created site, on the right in the Actions panel click on Additional options.

The next step is setting up the Windows Firewall. Open Control Panel -> System and Security -> Windows Firewall -> Advanced Settings. In the “Rules for incoming connections” section, find and activate “FTP server (incoming traffic)” and “FTP Server Passive (FTP Passive Traffic-In)”. The last rule allows the ftp client to connect in passive mode.

In the “Rules for outgoing connection” section, find and activate “FTP Server (FTP Traffic-Out)”.

If an additional firewall is installed on the system (Comodo, Outpost, etc.), then it also needs to open port 21 (TCP) for incoming connections and port 20 (TCP) for outgoing ones.

If you connect to the Internet using a router, and you want to make your server accessible to Internet users, then you need to configure port forwarding on the router. On my Dlink DI-804HV this is done in the Virtual Server section.

192.168.10.4 — IP address of the ftp server on the local network.

Setting up user rights.

If you leave everything as it is, then any user can connect to the FTP server (anonymous access is enabled) with read-only rights (you can download, but you cannot write or change files). Let's assume that we need to make access for trusted users who would have the rights to write and change files.

Open Control Panel -> System and Security -> Administrative Tools -> Computer Management (Start -> right click on Computer -> select Management from the menu). Next, expand the Local users and groups group (this setting is only available in the Business and Maximum editions). Right click on the Groups folder and select Create Group from the menu.

Enter the name of the group - FTP Users, a description (you don't have to enter it) and click the Create button.

Now you need to create a user. Right-click on the Users folder and select New User from the menu.

Enter the user name (for example ftp_user_1), password (at least 6 characters), check the boxes next to the options “Prohibit the user from changing the password” and “Password does not expire.”

The user has been created. Now you need to assign it the previously created group Ftp Users. To do this, open the user properties and go to the “Group Membership” tab. By default, a new user is assigned the Users group; delete it. Click the Add button -> Advanced -> Search. A list of user groups will open. Select the FTP Users group and click Ok. As a result we get:

Click Ok and move on to the next step.

At the stage of creating an ftp site, we needed to select a working directory (c:\inetpub\ftproot). Now you need to configure access rights to this directory for the FTP Users group. Open c:\inetpub in Explorer, open the properties of the ftproot folder, go to the Security tab and click the Edit button. In the window that opens, click the Add button and select the “FTP Users” group (as when creating a user). Set the permission level to “Full Control” and click OK.

Final stage. Open IIS Services Manager again and select our ftp server (Test FTP). In the FTP site control panel, select “FTP Authorization Rules”. Add an allowing rule. In the window that opens, select the “Specified roles or user groups” option. At the bottom in the text field, we manually write the name of our group (FTP Users), then check the boxes in the Permissions section opposite Read and Write and click OK.

This completes the setup.

At the beginning, we did not select the option to automatically start the server, so we do not forget to start it manually (right click on the site name -> Manage FTP site -> Start).

How to connect?

Option using Windows Explorer.
Open Computer (Vista, Win 7) or My Computer (XP).
For anonymous access, simply enter the server address (ftp://192.168.10.4) into the address bar.
To log in with a username and password, enter an address like: ftp://[username]:[password]@[ftp server address]. For example ftp://ftp_user_1: [email protected]— to connect from a local network. To connect from the Internet, replace the local address with an external one or with a domain name.

How to make your ftp server accessible from the Internet?

If the computer is connected directly to the Internet, then no additional actions need to be taken.

If the computer is connected to the Internet via a router, then in the control panel of the router you need to configure TCP 21 port forwarding (often called a virtual server). .

(shareware). In addition, there are somewhat simpler Cerberus (free), as well as an interesting Russian-language project ST FTP-Service (free). Below we will briefly discuss the process of setting up some of these programs.

GuildFTPd 0.999.5

A powerful server, easily customizable, with a user-friendly interface and excellent implementation of the virtual file system (VFS).

Installation and main window

Installing the program is trivial. You have installed the program on your computer, launched it, and look with interest at the main program window:

Setting up the program.

1. Configuring basic server settings(port number, maximum number of connections, number of connections from each ip, etc.) is carried out in the lower right window. If you do this for the System group, then all lower-level groups will inherit these settings. For any group you select, these default settings can be overridden. In particular, I sometimes used different port numbers for different usernames.

2. Menu item Admin -> Options -> Server: enter the name of your server, and slightly reduce the detail of the server messages (by moving the “Log Level” slider to the left), otherwise the log files will quickly accumulate hundreds of megabytes:

3. Setting up access to the server. The structure of the user hierarchy in GuildFTPd is such that any user must be assigned to some group. In this case, you have two main ways:

  • building FTP based on personal logins;
  • building a server based on direct entry into the desired directory.

3.1. Building an FTP based on personal logins.

Let's assume that you decide to give your friends access to the Documents directory, and each of them will need to see a unique set of directories (ie, you should create a virtual file system for each user).

The algorithm is very simple:

a) create a group, say, Team, and immediately create a common root directory for the group:

Clearly it must already exist on disk. Please note that the virtual value of the selected directory is “\”. Then we will assign the appropriate rights. We get the following:

Compare the last two pictures with each other, and you will have no questions left.

In addition, there are generally accepted conventions for the names of directories located in the root, in particular: \pub - here is data available for public (anonymous) downloading; \upload - uploads will be made here for you; \incoming and some others. I think that for a private server it is not necessary to follow these conventions.

b) start filling the group with users (Admin -> Add User):

c) create a VFS for each (see a)):

And you get:

Note. You can open access to the entire disk, say, this way:

The physical directory K:\FTP is your root, and the physical disks are directories. Then in the ftp client you will see the following:

The picture1.jpg file is located in the K:\FTP directory, and you can see it again if you go to this directory along the physical path.

3.2. Building a server based on direct entry into the desired directory.

Here you do not need to create many logins. You create one (or even use an anonymous login, for which you enter a name anonymous, and leave the password fields empty), but in the rights of the root directory, uncheck the “list” item. And then you just add directories there. You won't be able to get into the directory without knowing the full name.

At this point, your server is ready for use; to start/turn it off, click the “on” button, or select the Admin -> Allow Logins menu.

4. Extras. Setting up server messages: Admin -> Server Messages

5. Extras. Installing plugins. I recommend installing a plugin to view statistics (on the authors’ website):

6. Extras. Denying access to the server: View -> View Ban List. To get rid of an annoying user, add his address to the ban list.

Installing an FTP server.

The FTP server is included with Internet Information Services. To install it, open Control Panel -> Programs -> Turn Windows features on or off. Expand the IIS Services section and check the boxes next to the following components: FTP Service and IIS Management Console.

Setting up an FTP server.

Open Control Panel -> System and Security -> Administration -> Computer Management (you can quickly: Start menu -> right click on Computer -> select Management from the menu). In the window that opens, expand the Services and Applications group and open IIS Service Manager. In the Connections window, select the Sites folder, then in the right Actions window click on the Add FTP site link.


In the FTP site creation wizard, specify its name and location (by default c:\inetpub\ftproot).


Next, specify the binding and SSL parameters. I leave the binding section unchanged. I disable the “Start ftp site automatically” option (I only need ftp from time to time). In the SSL section, I select the “Without SSL” option.


In the next window, leave everything unchanged and click Finish.


The site has been created. Now you can move on to additional settings for fine-tuning (for example, limiting the maximum number of simultaneous connections). Select the newly created site, on the right in the Actions panel click on Additional options.


The next step is setting up the Windows Firewall. Open Control Panel -> System and Security -> Windows Firewall -> Advanced Settings. In the “Rules for incoming connections” section, find and activate “FTP server (incoming traffic)” and “FTP Server Passive (FTP Passive Traffic-In)”. The last rule allows the ftp client to connect in passive mode.



In the “Rules for outgoing connection” section, find and activate “FTP Server (FTP Traffic-Out)”.


If an additional firewall is installed on the system (Comodo, Outpost, etc.), then it also needs to open port 21 (TCP) for incoming connections and port 20 (TCP) for outgoing ones.

If you connect to the Internet using a router, and you want to make your server accessible to Internet users, then you need to configure port forwarding on the router. On my Dlink DI-804HV this is done in the Virtual Server section.


192.168.10.4 — IP address of the ftp server on the local network.

Setting up user rights.

If you leave everything as it is, then any user can connect to the FTP server (anonymous access is enabled) with read-only rights (you can download, but you cannot write or change files). Let's assume that we need to make access for trusted users who would have the rights to write and change files.

Open Control Panel -> System and Security -> Administrative Tools -> Computer Management (Start -> right click on Computer -> select Management from the menu). Next, expand the Local users and groups group (this setting is only available in the Business and Maximum editions). Right click on the Groups folder and select Create Group from the menu.


Enter the name of the group - FTP Users, a description (you don't have to enter it) and click the Create button.


Now you need to create a user. Right-click on the Users folder and select New User from the menu.


Enter the user name (for example ftp_user_1), password (at least 6 characters), check the boxes next to the options “Prohibit the user from changing the password” and “Password does not expire.”


The user has been created. Now you need to assign it the previously created group Ftp Users. To do this, open the user properties and go to the “Group Membership” tab. By default, a new user is assigned the Users group; delete it. Click the Add button -> Advanced -> Search. A list of user groups will open. Select the FTP Users group and click Ok. As a result we get:


Click Ok and move on to the next step.

At the stage of creating an ftp site, we needed to select a working directory (c:\inetpub\ftproot). Now you need to configure access rights to this directory for the FTP Users group. Open c:\inetpub in Explorer, open the properties of the ftproot folder, go to the Security tab and click the Edit button. In the window that opens, click the Add button and select the “FTP Users” group (as when creating a user). Set the permission level to “Full Control” and click OK.


Final stage. Open IIS Services Manager again and select our ftp server (Test FTP). In the FTP site control panel, select “FTP Authorization Rules”. Add an allowing rule. In the window that opens, select the “Specified roles or user groups” option. At the bottom in the text field, we manually write the name of our group (FTP Users), then check the boxes in the Permissions section opposite Read and Write and click OK.


This completes the setup.

At the beginning, we did not select the option to automatically start the server, so we do not forget to start it manually (right click on the site name -> Manage FTP site -> Start).

How to connect?

Option using Windows Explorer.
Open Computer (Vista, Win 7) or My Computer (XP).
For anonymous access, simply enter the server address (ftp://192.168.10.4) into the address bar.
To log in with a username and password, enter an address like: ftp://[username]:[password]@[ftp server address]. For example ftp://ftp_user_1: [email protected]- to connect from a local network. To connect from the Internet, replace the local address with an external one or with a domain name.

Windows operating system users often wonder what an FTP server is and how to set it up? If you are also interested in installing and configuring an FTP server on Windows 10, then you have come to the right place. In this topic, we will take a detailed look at the process of setting up an FTP server.

What is an FTP server for?

FTP is a network file transfer protocol that is based on the client-server principle. An FTP server is a kind of file storage on the Internet, that is, an ordinary PC with the Windows 7 or higher operating system installed, which has several hard drives and can accommodate many files from different users. On such a computer there is always a program installed, for example – FileZilla Server. Any user to whom the administrator has granted access can access certain files through this program. After connecting to the FTP server, the user can upload any files to it (movies, music, photos, documents, etc.) and also download stored materials.

How to set up an FTP server on Windows 10?

As a software implementation of an FTP server, the article will present the FileZilla Server program, which will be installed on a machine with Windows 7 (for Windows 10 the step-by-step steps will be identical).

IMPORTANT! To set up an FTP server, you need to download FileZilla Server and FileZilla Client. In this case, we install the server file on Windows 7, which will serve as a server, and install the client version of the program on Windows 10, from which we will access it. The principle of installing the client program is standard.

Let's look at the installation principle of FileZilla Server. Download and run the program on your PC. We accept the terms of the license agreement.

Leave all the marks as on the screenshot.

Select a location to unpack the program files.

We also do not change the port number.

Click “Install”.

After installing the software, a small window will appear in which you need to enter the local address of the FTP server and click OK. We don't touch the port.

After entering this data, it is worth making several settings. Initially, click “Edit”, “Users”.

A small window will appear. Select the “General” branch and click “Add” (add user).

Set a name for the user.

Next to the “Password” item, check the box and enter the new user’s password.

Specify the previously created folder “FTP01”.

Select the added folder and specify access rights for it:

  • Read – read only;
  • Write – record;
  • Delete – deletion;
  • Append – changes files in this folder.

After selecting access rights, click “Ok”.

Now, to determine the IP address, you should enter the “ipconfig” command in the command line with Administrator rights.

Now we switch to Windows 10 and install the Client. Initially, we accept the terms of the license agreement.

Select “Open for me only.” The user you created earlier will be indicated in parentheses.

Select a folder to unpack program files.

We start the installation of the program.

Let's connect to the FTP server via the command line. Let's launch the console. Enter the command “ftp”, and then enter “open 192.168.1.4”, where “192.168.1.4” is the IP address of the FTP server. Specify the username and enter the password. The password is not displayed when entered. “Logged on” means that we have logged into the FTP server.

Let's create the folder “My_Backup_win10” on the FTP server by entering the command “mkdir My_Backup_win10”. You can view a list of folders using the “is” command.

Thus, we connect to the FTP server using the command line. However, if you were unable to connect via the command line, you can use Total Commander to connect.