At the first login to the server with the newly installed Linux OS, any of its distributions - it is necessary to start setting up your new server, but since th...
3v-Hosting Blog
10 min read
File Transfer Protocol (FTP) remains a popular method for transferring files between computers. While cloud storage services are gaining traction, FTP servers offer benefits like direct control and customization. This guide will walk you through creating an FTP server on your Windows 10 PC, complete with username and password authentication for secure access.
There are several reasons you might choose to set up an FTP server on your Windows 10 machine:
Things to Consider Before Setting Up an FTP Server:
Before you start configuring an FTP server, it is important to understand that there are several types of file transfer protocols. Each has its own characteristics in terms of security, compatibility, and scope of application.
Below is a comparison of classic FTP, secure versions of FTPS (Explicit and Implicit), and the alternative SFTP solution, which is often used in system administration and DevOps environments. The information provided there will help you choose the most suitable option for your scenario, whether it is a local server, corporate network, or public access via the Internet.
Table - Comparison of FTP types
| Protocol | Security | Default Ports | How It Works | Advantages | Disadvantages | Best Use Case | Support in Windows 10 (IIS) |
|---|---|---|---|---|---|---|---|
| FTP | No encryption (login and data sent in plain text) | 21 (control), dynamic range for passive mode | Classic two-channel protocol (control + data) | Simple, widely supported, minimal overhead | Insecure on public networks; NAT/firewall issues with passive ports | Isolated internal networks, temporary file sharing | Fully supported |
| FTPS (Explicit TLS) | TLS/SSL encryption for both control and data channels | 21 (+ passive port range for data) | Starts as FTP, then client requests encryption (AUTH TLS) | Backward compatible with FTP; flexible configuration | More complex firewall/passive mode setup; requires certificates | Public or corporate FTP with security compliance needs | Supported (via IIS with certificate) |
| FTPS (Implicit TLS) | Always encrypted (TLS from first packet) | 990 (+ passive ports) | Fully encrypted session from the start | Enforced encryption, simpler security model | Rarely used; limited compatibility | Legacy systems using port 990 | Partially supported (requires compatible clients) |
| SFTP (SSH File Transfer) | Full SSH encryption | 22 (single port) | Operates over SSH; single channel for control and data | Easier firewall/NAT configuration; key authentication; high security | Not compatible with FTP/FTPS; requires different clients/servers | Administration, DevOps, or external access behind strict firewalls | Not supported in IIS; use OpenSSH or a third-party server |
Note: IIS (Internet Information Services) is a built-in server component of Windows that allows you to host web applications, FTP, and SMTP services without installing third-party software.
Windows 10 utilizes Internet Information Services (IIS) to manage various web services, including FTP. Here's how to create and configure your FTP server:
optionalfeatures.exeand press Enter.
C:\FTPShare).
50000-50100) and, if necessary, External IP Address.
After these steps, the FTP server is ready to use. You can now test the connection locally and, if necessary, proceed to secure the connection using FTPS.
After creating an FTP site in IIS, you need to add users who will be allowed access and set their permissions - read or read/write. In Windows 10, the FTP server uses standard system accounts, so you need to create a separate profile for each user.
To allow users to connect to the FTP server using a username and password, create local accounts for them in Windows:
For security reasons, do not use administrator accounts. Create a separate FTP user with the minimum necessary permissions.
Once users have been created, you need to grant them access rights to the FTP site in IIS:
Now the user will be able to connect to your FTP server using the login and password created in Windows and perform actions within the scope of the permitted rights.
In the IIS Manager, right-click on your FTP site and select Start.
Download and install an FTP client software on another computer that needs to access your server. Popular options include FileZilla.
Once you have created a new FTP site in IIS, you should make sure that the server is running correctly and accepting connections. The easiest way to do this is to check access locally using the standard FTP client built into Windows.
Press Win + R, type cmd, and press Enter to launch the Windows command prompt.
Enter one of the following commands:
ftp localhost
or
ftp 127.0.0.1
These commands refer to the server running on your computer. If everything is configured correctly, you will be prompted to enter your username and password.
Enter the username and password you created earlier in the “Adding users” section.
If the connection is successful, you will see a message similar to:
Connected to localhost. 220 Microsoft FTP Service User (127.0.0.1:(none)):
Try executing a few basic FTP commands:
ls cd get test.txt put upload.txt
This will allow you to verify that the server accepts and transfers files without errors.
To exit the FTP session, execute the command:
bye
If the connection is established successfully, it means that the server is working correctly and you can proceed to the next step. If the connection fails, double-check that the FTP server service is running, port 21 is not blocked by a firewall, and the correct IP address is selected in the IIS settings.
Open the FTP client and enter the following information:
Host: The hostname or IP address you specified during FTP site creation (e.g., localhost for local access).
Username: The username you created for FTP access.
Password: The password associated with the FTP username.
Port: By default, the FTP port is 21.
Click Connect. If everything is configured correctly, the FTP client should establish a connection to your server, allowing you to browse, upload, and download files within the designated directory.
Configuring an FTP server is not only a matter of functionality, but also security. Since the server provides access to your files over the network, even for local use, it is important to protect against unauthorized access and data leaks.
Before granting access to other users, make sure your server is securely protected: use complex passwords, control network connections, and limit access rights to only the necessary permissions. Let's summarize:
Regular FTP transmits data and passwords in plain text, which makes the connection vulnerable to interception. To secure access and increase security, you can enable FTPS (FTP over SSL/TLS) support directly in the IIS settings. This will encrypt all traffic between the client and the server.
Before enabling FTPS, make sure you have a valid SSL certificate. This can be:
In IIS, you can create a self-signed certificate by selecting the following from the server menu:
Actions → Create Self-Signed Certificate → Specify a name.
Now your server only accepts secure FTPS connections. When connecting via a client (e.g., FileZilla), select the connection type "Require explicit FTP over TLS".
If the server is only used on a local network, a self-signed certificate is sufficient. For public access, it is better to use Let's Encrypt certificates or commercial options - this will prevent trust errors and improve the reputation of the site or server.
While creating an FTP server on Windows 10 offers customization and control, it might not be the most suitable option for everyone. Here are some alternatives to consider:
In summary, setting up your own FTP server in Windows 10 is an excellent way to establish convenient and controlled file sharing without the involvement of third-party services. By following the steps in this guide, you can quickly launch a working server and securely connect to it from other devices.
The main thing is to remember about security: use strong passwords, restrict access, and monitor your firewall settings.
If you need a more scalable or 24/7 solution, consider cloud services or VPS hosting - they will provide stability and protection without the need for constant administration.
SOLID principles help create flexible, scalable, and maintainable code. We break down SRP, OCP, LSP, ISP, and DIP with examples and practical recommendations.
HTTP 503 (Service Unavailable) means that your server is overloaded or undergoing maintenance. Find out what causes this error, how to fix it, and how to preven...
Manage your VPS and websites easily with the Ispmanager control panel. Create domains, databases, and backups in one click, monitor performance, and secure your...