Fact-checked by Grok 2 weeks ago

File Transfer Protocol

The File Transfer Protocol (FTP) is a designed for the reliable and efficient transfer of computer files between a client and a over a -based network, such as the . It operates on a client- architecture, where the typically listens for incoming connections on TCP port 21 for control commands, while separate data connections are established for the actual file transfers, enabling features like directory navigation, file listing, and manipulation. FTP's development began in 1971 with the publication of RFC 114 by , which proposed an initial specification for file transfers across the , the precursor to the modern . Over the subsequent years, the protocol evolved through several revisions, including adaptations for TCP/IP networks, culminating in the definitive standardization in RFC 959, published in October 1985 by and Joyce Reynolds of the Information Sciences Institute. This standard clarified earlier documentation, defined minimum implementation requirements—such as support for ASCII text transfer mode, stream data mode, and basic commands like RETR (retrieve) and STOR (store)—and ensured compatibility across diverse host systems, from mainframes to workstations. The protocol's core objectives include promoting the sharing of files such as computer programs and data among networked hosts, providing an to shield users from variations in remote file storage systems, and facilitating indirect access to remote computing resources without requiring direct user interaction with foreign operating systems. FTP supports multiple transfer modes (e.g., for non-text files and ASCII for text with line-ending conversions), file structures (e.g., or record-oriented), and optional extensions for creation, deletion, and system information queries, making it versatile for both simple uploads/downloads and more complex file management tasks. Although designed primarily for automated program use, it has been widely implemented in client software for human operators, paving the way for secure extensions like .

History

Origins and Development

The File Transfer Protocol (FTP) was initially developed in 1971 by Abhay Bhushan at MIT's Project MAC to enable standardized file sharing across the ARPANET. This early version operated over the Network Control Protocol (NCP), the ARPANET's initial host-to-host communication standard, allowing users on diverse systems to access and manipulate remote file systems without custom adaptations for each host. Bhushan's design drew from the need for a uniform interface amid the network's heterogeneous hardware, including systems with varying word sizes and data representations. The protocol's creation addressed the inefficiencies of prior ad-hoc file transfer methods on the , such as using for remote logins to manually copy files, which lacked reliability and portability across incompatible operating systems. FTP provided a dedicated for efficient, reliable transfers, supporting both ASCII and binary data while shielding users from host-specific file representations. Its development was influenced by earlier file handling concepts in systems like , where Bhushan targeted initial implementations, building on that OS's hierarchical file structures to generalize access for network use. Key early milestones included the first implementations on the TENEX operating system for PDP-10 computers, which facilitated practical testing on ARPANET hosts like those at MIT and BBN. The protocol evolved through revisions such as RFC 354 (1972) and RFC 542 (1973), which refined commands and data handling. By the early 1980s, as the ARPANET transitioned from NCP to TCP/IP, FTP was adapted to the new stack, with RFC 765 in 1980 outlining the port assignments and connection handling necessary for TCP compatibility, paving the way for broader adoption.

Standardization and Evolution

The File Transfer Protocol (FTP) achieved its formal standardization with the publication of RFC 959 in October 1985, authored by and Joyce Reynolds of the University of Southern California's Information Sciences Institute. This document defined the core architecture, commands, and operational procedures for FTP, establishing it as the definitive specification and obsoleting earlier experimental and proposed standards, including RFC 765 from June 1980. RFC 959 emphasized reliability in environments, mandating features like active and passive data connection modes to accommodate diverse implementations across hosts. Subsequent evolutions addressed limitations in security, scalability, and compatibility. In September 1997, RFC 2228 introduced FTP security extensions, enabling authentication mechanisms such as and the use of the AUTH command for protected sessions, marking a shift toward integrating cryptographic protections without altering the base protocol. File size constraints were mitigated in November 2003 through RFC 3659, which defined extensions for handling files larger than 2 , including the MLST and MLSD commands for standardized machine-readable listings and exchange and the MFMT (modify time) command for synchronization, thereby supporting modern storage demands. Further refinements came in April 2010 with RFC 5797, which enhanced passive mode operations by standardizing the EPSV (extended passive) command and improving EPSV ALL responses to facilitate traversal and compatibility in contemporary networks. Adaptations for evolving internet infrastructure included support for addressing in September 1998 via RFC 2428, which extended the and PASV commands to handle 128-bit addresses through the EPRT and EPSV commands, ensuring FTP's viability in dual-stack environments. Internationalization efforts advanced in August 1999 with RFC 2640, specifying encoding for filenames and paths via the FEAT, OPTS, and LANG commands, allowing seamless handling of non-ASCII characters across global systems. Despite these iterative improvements, FTP's usage has declined since the early 2000s, supplanted by secure web-based alternatives like HTTP/ for file distribution, though it persists in enterprise , legacy industrial systems, and specialized applications requiring batch transfers.

Protocol Overview

Connection and Session

The File Transfer Protocol (FTP) employs a dual-channel to separate command exchanges from transfers, ensuring reliable communication over connections. The control operates on TCP port 21 by default, where the client initiates a full-duplex session to the server for sending commands and receiving responses. In parallel, a separate data handles the actual file transfers; in active mode, the server initiates this from TCP port 20 to a client-specified port, while in passive mode, the client initiates it to a server-selected port to accommodate network configurations like firewalls. Session initiation begins when the client establishes the control connection to the server's port 21, followed by commands to negotiate session parameters. To prepare for , the client issues the command in active mode to inform the server of its listening port for incoming connections, or the PASV command in passive mode, prompting the server to open and report a dynamic port for the client to connect to. These mechanisms allow the protocol to adapt to different network topologies while maintaining the separation of control and flows. FTP sessions operate in a non-persistent by , where the data connection is established and automatically closed upon completion of a transfer to free resources. The ABOR command enables abrupt abortion of an ongoing data transfer by closing the data connection and restoring the control connection to its prior , providing a for interruption without fully terminating the session. Session teardown occurs via the QUIT command, which prompts the to close the control connection and end the session gracefully. Servers supporting FTP are designed to handle multiple concurrent sessions, each managed through independent control connections from different clients, subject to implementation-defined resource limits such as maximum user connections to prevent overload. This concurrency allows efficient resource sharing among users while maintaining isolation between sessions.

Control and Data Channels

The File Transfer Protocol (FTP) employs a dual-channel architecture to separate session management from data transfer operations. The control channel serves as a bidirectional communication pathway for exchanging commands and responses between the client and , utilizing the protocol over port 21 by default. This channel handles session control functions, such as and , but does not carry file data; commands are issued as ASCII text strings terminated by and line feed (), while server replies consist of three-digit numeric codes followed by explanatory text. In contrast, the data channel is dedicated to the unidirectional transfer of file contents and is established as a separate connection, distinct from the control channel to enhance reliability and efficiency. By default, the server initiates this connection from port 20 (server port L-1, where L is 21) to a client-specified port in active mode, allowing the client to inform the server of its data port via the PORT command. Alternatively, passive mode uses the PASV command, where the server listens on a dynamically allocated port and provides its address to the client, enabling the client to initiate the connection; this mode supports bidirectional data flow depending on the transfer direction (e.g., upload or download). The separation of channels introduces challenges in environments with (NAT) devices and firewalls, particularly in active mode, where the server's inbound connection attempt to the client's high-numbered port is often blocked by security policies that restrict unsolicited incoming . Passive mode mitigates this by having the client open an outbound connection, which firewalls typically permit, though it requires server-side configuration of a restricted port range (e.g., 1024–65535 or a narrower subset like 50000–51000) to limit exposure and facilitate rule management. To address these issues systematically, 1579 recommends that FTP clients default to passive mode for better compatibility with packet-filtering firewalls and proxies in large networks, reducing the need for special gateway ports and minimizing risks from inbound connections. For environments and further compatibility, FTP incorporates extensions via the EPRT and EPSV commands defined in RFC 2428, which generalize the and PASV mechanisms to support variable-length addresses and protocol families beyond IPv4. The EPRT command specifies the data connection endpoint with an address family identifier (e.g., 2 for ), network , and port, while EPSV requests a passive data port without embedding addresses, relying instead on the control channel's to avoid translation errors in scenarios.

Transfer Modes and Mechanisms

The File Transfer Protocol (FTP) supports three primary transfer modes to handle data transmission over the data connection, allowing flexibility in how files are structured and sent between client and server. The default and most commonly used mode is Stream mode, in which data is transmitted as a continuous sequence of bytes without explicit boundaries between records or files. In this mode, end-of-record (EOR) and end-of-file (EOF) markers are indicated by specific two-byte control codes if needed, though EOF is typically signaled by closing the data connection. Stream mode is suitable for most modern transfers due to its simplicity and efficiency, supporting any representation type without imposing record structures. Block mode structures data into fixed-size blocks, each preceded by a three-byte header containing an 8-bit descriptor code and a 16-bit byte count. The descriptor provides such as EOR (), EOF (code 64), or restart markers (code 16), enabling better handling of record-oriented files and error recovery. This mode is useful for systems requiring explicit boundaries but is less common today than mode due to added overhead. Compressed mode, the least utilized of the three, transmits data in blocks similar to Block mode but incorporates techniques to reduce filler bytes and repetitions, using sequences for control information and a filler byte (such as space for or zero for ). It aims to optimize for repetitive data but is rarely implemented in contemporary FTP clients and servers because of complexity and limited gains over modern compression alternatives. The transfer mode is negotiated using the command, with as the . Transfer mechanisms in FTP define how data is represented and converted during transmission, primarily through the TYPE command, which specifies the format to ensure compatibility between heterogeneous systems. ASCII mode, the default, transfers text files using 7-bit Network Virtual Terminal (NVT) ASCII characters, converting line endings to the standard sequence for portability across operating systems. This mode performs necessary transformations, such as handling local conventions for end-of-line, making it essential for plain-text files but potentially inefficient for non-text data due to alterations. Binary mode, also known as Image mode, transmits data as a contiguous stream of bits packed into 8-bit bytes without any conversion or modification, preserving the exact file contents and avoiding issues with padding or encoding changes. It is recommended for executable files, images, and other binary content to maintain integrity. EBCDIC mode supports legacy mainframe environments by using 8-bit EBCDIC characters, applying for line endings where applicable, though its adoption has declined with the shift away from EBCDIC-based systems. To support reliability in interrupted transfers, FTP includes mechanisms for restarting and appending files. The REST command allows a client to resume a transfer from a specified byte or marker, particularly in or Compressed modes where restart markers are embedded, though it can be adapted for mode with extensions. This is followed by a transfer command like RETR or STOR to continue from the designated point, reducing the need to retransmit entire files. The APPE command enables appending data to an existing file on the server or creating a new one if absent, transferring additional content via the data connection without overwriting prior data. Performance enhancements in FTP address inefficiencies in command-response cycles and large file handling. For large files, extensions introduced in 2007 provide the command, which returns the exact octet count of a file based on current settings, allowing clients to gauge transfer scope and compute precise restart points. Complementing this, the MDTM command retrieves a file's last modification in a standardized format (YYYYMMDDHHMMSS), enabling verification of file currency before resuming or initiating transfers to avoid redundant operations. These features collectively improve efficiency for voluminous data transfers while adhering to FTP's core architecture.

Data and File Representation

Supported Data Types

The File Transfer Protocol (FTP) supports several representation types for data transfer, specified via the TYPE command, which defines how data is interpreted and transmitted between client and server systems. The TYPE command uses a single-character code to select the type, optionally followed by a format or byte-size parameter, ensuring compatibility across diverse host environments. All FTP implementations must support the and (binary, I) types, while (E) and Local byte (L) serve specialized or legacy needs. The ASCII type (A) handles textual data using the Network Virtual Terminal (NVT-ASCII) standard, a 7-bit of ASCII extended to 8 bits for transmission. In this , end-of-line sequences are standardized to followed by line feed (CR-LF), with the sending host converting its internal representation to NVT-ASCII and the receiving host performing the reverse transformation to maintain portability. Non-printable characters, such as control codes, are transmitted without alteration in ASCII but are typically handled more robustly in to avoid corruption. This type is ideal for human-readable files like or configuration scripts, where line-ending consistency is crucial. In contrast, the Image type (I), also known as binary mode, transfers data as a stream of contiguous 8-bit bytes without any modification, preserving the exact bit pattern of the original . Padding with null bytes may occur to align byte boundaries, but the core content remains unchanged, making this mode suitable for non-textual files such as executables, compressed archives, , and . Unlike ASCII mode, no character set conversions or line-ending adjustments are applied, which prevents issues like truncation or alteration of binary structures. The type (E) provides support for systems using the Extended Binary Coded Decimal Interchange Code, primarily mainframes, where data is transmitted in 8-bit EBCDIC characters and end-of-line is denoted by a (NL) character. This legacy type allows direct transfer without conversion for EBCDIC-native environments, though modern implementations often prefer binary mode for cross-platform compatibility. An optional format code, such as "N" for non-printable, can be specified with both A and E types to include control characters. For non-standard byte sizes, the Local byte type (L) enables transfer in logical bytes of a specified length, given as a integer (e.g., "L 8" for 8-bit bytes or "L 36" for systems like ). Data is packed contiguously into these bytes, with padding as needed, accommodating legacy or specialized hardware where standard 8-bit bytes do not apply. This type is rarely used today but remains part of the protocol for backward compatibility.
Type CodeDescriptionParametersPrimary Use Cases
AASCII (NVT-ASCII)Optional: F (form, e.g., N for non-print)Text files with line-ending normalization
IImage (Binary)NoneExecutables, images, archives (exact preservation)
EEBCDICOptional: F (form, e.g., N for non-print)IBM mainframe text data
LLocal byte sizeRequired: Byte size (e.g., 8, 36)Non-8-bit systems, legacy hardware

File and Directory Structures

In the File Transfer Protocol (FTP), files are represented through three primary structures defined to accommodate different access patterns and storage conventions across host systems. The file structure treats the file as a continuous sequence of data bytes, suitable for , and serves as the default mode for most transfers. The record structure organizes data into discrete records of either fixed or variable length, enabling within the file, particularly for text-based or structured data formats. Additionally, the page structure supports discontinuous access by dividing the file into independent, indexed pages, each with a header containing fields such as page length, index, data length, and type (e.g., last page or simple page), which was originally designed for systems like TOPS-20. Directories in FTP are handled implicitly through and commands rather than via an explicit command, allowing servers to manage hierarchical file systems in a system-dependent manner. Pathnames serve as the fundamental identifier for both files and directories, consisting of character strings that may include hierarchical elements like slashes to denote parent-child relationships, though the exact syntax varies by host operating system. For instance, pathnames can be (starting from the ) or relative to the current , enabling operations on nested directory trees without requiring a standardized format beyond basic pathname conventions. Navigation within the directory hierarchy is facilitated by core commands that adjust the client's perspective of the remote . The Change Working Directory (CWD) command shifts the current to the specified pathname, while the Change to Parent Directory (CDUP) command moves up one level to the parent directory. The Print Working Directory (PWD) command returns the absolute pathname of the current , providing clients with a clear reference point for subsequent operations. These commands support efficient traversal of hierarchical paths, with servers interpreting pathnames according to their local rules. To enhance the representation of file and directory attributes beyond simple names, FTP extensions introduced in RFC 3659 provide machine-readable listings. The Modify Listing (MLST) command retrieves structured facts about a single or , such as type ( or ), size in octets, last modification time in YYYYMMDDHHMMSS format, and permissions (e.g., read, write, delete). Similarly, the Modify Directory Listing (MLSD) command lists all entries in a , returning each with the same set of facts over a data connection, allowing clients to obtain detailed like type=dir;size=0;perm=adfr for directories or type=[file](/page/File);size=1024990;modify=19970214165800;perm=r for s. These mechanisms standardize attribute reporting, improving interoperability by specifying facts in a semicolon-separated, extensible format that supports pathnames.

Encoding and Formatting

The File Transfer Protocol (FTP) originally specifies the use of 7-bit US-ASCII as the default for commands, responses, and pathnames on the control connection, ensuring compatibility with the Network Virtual Terminal (NVT) standard from . This 7-bit encoding limits support to basic English characters, with the most significant bit set to zero, and applies to text-based transfers in ASCII mode where end-of-line sequences are normalized to followed by line feed (CRLF). To address internationalization needs, was extended in 1999 to support through encoding, particularly for pathnames and filenames containing non-ASCII characters. The OPTS UTF8 command enables this feature, allowing clients and servers to negotiate usage while maintaining with ASCII-only systems, as is a superset of US-ASCII. Servers can advertise support via the command, which lists available extensions, facilitating client detection of internationalization capabilities. In binary (IMAGE) mode, 8-bit characters are transferred unaltered as a of bytes, preserving multibyte sequences without interpretation, which supports data files effectively once the control connection is UTF-8 enabled. Directory listings returned by the LIST command exhibit varying formatting conventions across implementations, lacking a standardized structure in the core protocol. Common formats include Unix-style listings with columns for permissions, owner, size, and (e.g., "-rw-r--r-- 1 group 1024 Jan 1 12:00 file.txt"), while Windows-based servers often mimic styles with short filenames and basic attributes. This non-standardization poses parsing challenges for clients, requiring heuristic detection or server-specific logic to interpret fields like file sizes or dates reliably. UTF-8 adoption since the early 2000s has been driven by the need for robust, synchronization-safe encoding in global file transfers.

Commands and Responses

Core Commands

The File Transfer Protocol (FTP) employs a set of core commands to facilitate basic file operations, , and session between client and . These commands are transmitted over the control as case-insensitive ASCII strings, consisting of a four-character alphabetic command code followed optionally by a space-separated argument, and terminated by a and line feed (CRLF). This format ensures reliable parsing, with the server responding via three-digit reply codes to indicate success, errors, or required follow-up actions.

Connection Management Commands

Core commands for establishing and terminating sessions include , which specifies the username to initiate ; it must typically be one of the first commands issued after and is followed by a reply prompting for credentials. provides the corresponding password, completing the authentication if valid, and is handled sensitively by clients to avoid exposure in logs or displays. ACCT supplies additional account information, such as billing details, which may be required after USER and PASS for certain systems or to grant specific access levels. specifies the client's and for the data in active mode, using a comma-separated list of six numbers (host bytes and port bytes), allowing the to connect back to the client for transfers. PASV requests the to open a for passive mode data connections, replying with the 's and for the client to connect to, facilitating firewall traversal. reinitializes the , logging out the user and resetting the state without closing the control . QUIT terminates the user session gracefully, prompting the to close the control after sending a completion reply, though it does not interrupt ongoing data transfers.

File Transfer Commands

Commands for transferring and manipulating files form the protocol's primary function. RETR retrieves a specified from the , initiating a to send the file contents to the client without altering the original on the server. STOR uploads a to the , replacing any existing with the same pathname or creating a new one, with the client pushing over the established . APPE appends to an existing at the specified pathname or creates a new if none exists, allowing incremental updates without full replacement. REST enables restarting interrupted transfers by setting a byte marker, after which a subsequent RETR, STOR, or APPE command resumes from that point to support reliable large- handling. DELE deletes the specified from the , removing it permanently if permissions allow. For renaming, RNFR identifies the source pathname of the or directory to rename, requiring an immediate follow-up RNTO command with the destination pathname to complete the atomically.

Directory Management Commands

Directory operations are handled by commands that navigate and modify the server's structure. CWD changes the current to the specified pathname, enabling operations relative to that location without affecting the overall login context. CDUP simplifies navigation by changing to the parent of the current one, using the same reply codes as CWD for consistency. MKD creates a new at the given pathname, which can be absolute or relative to the current , and returns the full pathname in its reply. RMD removes an empty at the specified pathname, again supporting absolute or relative paths. PWD queries the server for the current pathname, which is returned in a dedicated reply format for client reference. Listing commands include LIST, which sends a detailed server-specific listing of files and directories (optionally for a given pathname) over the data connection in the current transfer type, and NLST, which provides a simpler name-only list in the same manner, both defaulting to the current if no argument is supplied.

Other Core Commands

Additional essential commands configure the transfer environment. TYPE sets the data representation type, such as ASCII (A) for text, (E) for legacy systems, (I) for , or (L) with a byte size, defaulting to ASCII non-printable format to ensure accurate interpretation across systems. MODE defines the transfer mode, with Stream (S) as the default for continuous byte streams, Block (B) for structured blocks with headers, or Compressed (C) for efficiency, influencing how data is packaged during transfers. STRU specifies the file structure, defaulting to (F) for unstructured streams, or alternatives like Record (R) or Page (P) for systems requiring delimited content. SYST queries the server's operating system type, eliciting a reply with the system name (e.g., UNIX or ) to allow clients to adapt to host-specific behaviors. ABOR aborts the previously issued command, interrupting any ongoing data transfer and closing the data connection if active.

Reply Codes and Error Handling

The File Transfer Protocol (FTP) employs a three-digit numeric reply code to communicate server responses to client commands, as defined in the protocol specification. Each reply code consists of three digits, where the first digit indicates the response category: 1xx for positive preliminary replies (signaling further action is needed), 2xx for positive completion (command accepted and action performed), 3xx for positive intermediate (command accepted but additional information required), 4xx for transient negative completion (temporary failure, action not taken but may succeed later), and 5xx for permanent negative completion (failure, action not taken and unlikely to succeed without change). The second digit specifies the , such as x0x for errors, x2x for connection management, x3x for and , and x5x for status. The third digit provides finer granularity within the group, allowing for specific error subtypes. These codes enable structured communication over the control channel, with the transmitting the code followed by a human-readable text explanation. For instance, code 220 ("Service ready for new ") is sent upon successful establishment to indicate the server is prepared to receive commands. Similarly, 331 ("User name okay, need password") confirms valid username input and prompts for credentials during . In data transfer scenarios, 426 (" closed; transfer aborted") signals an interruption, often due to network issues, while 550 ("Requested action not taken. File unavailable (e.g., file not found, no access)") denotes permanent failures like missing files or permission denials. These examples illustrate how codes guide client interpretation of server states across operations. Error handling in FTP relies on the reply code categories to facilitate . Clients are expected to retry operations upon receiving 4xx transient errors, such as 421 ("Service not available, closing control connection") or 425 ("Can't open data connection"), as these indicate temporary conditions like resource unavailability that may resolve quickly. Permanent 5xx errors, like 500 (", command unrecognized") or the aforementioned 550, prompt clients to log the issue and cease retries for that specific action, escalating to user notification or session termination if persistent. For interrupted transfers, the (Restart) command allows resumption from a specified byte offset, with the replying 350 ("Restarting at n. Send or RETRIEVE to initiate transfer") to confirm the marker; this mechanism supports partial file recovery in stream mode without restarting from the beginning. Subsequent RFCs have extended the reply code framework while maintaining compatibility with RFC 959. For example, RFC 3659 introduces refined uses of existing codes for new commands like MDTM (modification time) and , where 213 returns numerical values on success, and 550 indicates unavailability; it also specifies 501 ("Syntax error in parameters or arguments") for invalid options in machine-readable listings (MLST/MLSD). Some FTP implementations incorporate additional reply codes beyond the standard, such as negative variants or vendor-specific subtypes (e.g., 5xx extensions for detailed diagnostics), but these must adhere to the core three-digit structure to ensure interoperability. Updates in later RFCs, including for security extensions, refine error signaling without altering the foundational categories.

Authentication and Access Control

Login Procedures

The login process in FTP commences upon establishment of the control connection, typically on port 21. The server immediately issues a "Service ready for new user" reply code to signal readiness for . The client responds by sending the command, specifying the username as a string. The server validates the username and replies with 331 "User name okay, need password" if acceptable, or 530 "Not logged in" if invalid or unauthorized. Following a 331 response, the client transmits the PASS command with the corresponding password, also as a Telnet string. Successful verification yields 230 "User logged in, proceed", granting session access; failure results in 530 "Not logged in", while 332 "Need account for login" indicates a requirement for additional details. In cases of a 332 reply, the client may then send the optional ACCT command providing information, such as billing data, after which the server issues 230 upon completion or 530/532 if unsuccessful. Usernames and passwords are sent in over the unencrypted control channel, exposing them to potential . Server-side validation occurs against local user like /etc/passwd or via Pluggable Authentication Modules (), which support integration with external systems such as SQL or LDAP for credential checks. The 230 response confirms authentication success and initializes the user session, enabling subsequent commands for file operations. To enhance security, many servers apply post-login restrictions, such as chroot jails that confine the user to their home directory or a virtual root, preventing access to the broader filesystem. FTP servers commonly implement configurable idle timeouts to terminate inactive sessions and conserve resources; for instance, a default of 300 seconds without commands often triggers disconnection.

Anonymous and Restricted Access

Anonymous FTP provides a mechanism for public access to files without requiring authenticated user credentials, allowing general users to retrieve resources from archive sites. It operates by permitting login with the username "" or "ftp", followed by a password that is typically an , though some implementations accept "" or any string. This setup grants read-only access to designated public directories, enabling users to list contents and download files but prohibiting uploads or modifications unless explicitly configured otherwise. Since the , anonymous FTP has been widely used for software distribution and sharing public information across the early , such as releases. Restricted access in FTP implementations limits user privileges to enhance and prevent unauthorized system exploration. Chroot jails confine users to a specific subdirectory by changing the during , effectively isolating them from the broader filesystem; for example, in , the chroot_local_user=YES directive applies this to local users by defaulting to their home directories. Virtual users operate without corresponding system accounts in /etc/passwd, authenticating via separate databases like modules, and can be assigned privileges akin to or local users through options like virtual_use_local_privs=YES. Guest accounts map non-anonymous logins to a fixed system user, such as "ftp", providing predefined privileges without granting full user access; this is enabled via guest_enable=YES and guest_username=ftp. Server configuration for these features involves specific directives to balance and restriction. For FTP, anonymous_enable=YES permits logins, while anon_upload_enable=NO (default) blocks uploads to maintain read-only status, though enabling it requires careful permission setup on the anon_root directory. Misconfiguration, such as allowing writable directories without proper isolation, can enable or escapes from the jail, underscoring the need for non-writable roots in setups. Lists like /etc/[vsftpd](/page/Vsftpd)/chroot_list allow selective application of restrictions to specific users. The usage of anonymous FTP for public file distribution has declined since the 1990s, largely replaced by HTTP-based web servers, which offer simpler integration with browsers and better support for diverse content types without dedicated FTP clients.

Security Issues

Common Vulnerabilities

The File Transfer Protocol (FTP) transmits usernames, passwords, and file data in , exposing them to attacks where network traffic can be intercepted and analyzed using tools like . This vulnerability stems from the original protocol design in RFC 959, which lacks any encryption mechanisms for control or data connections. As a result, attackers on the same or those performing man-in-the-middle intercepts can capture sensitive credentials and content without detection. In active mode, FTP's use of port 20 for data connections enables risks such as port scanning for backdoors, where attackers probe for open services on the . A more severe issue is the FTP bounce attack, exploited via the PORT command, which allows an attacker to instruct the to connect to arbitrary hosts and ports on behalf of the client, potentially bypassing firewalls or scanning internal . This flaw, identified in CVE-1999-0017, turns the into an unwitting for or denial-of-service attempts. Directory traversal vulnerabilities arise from path manipulation in FTP commands like CWD or RETR, where insufficient input validation in servers allows attackers to access files outside the intended using sequences like "../". This risk is inherent to the protocol's flexible path handling but is exacerbated in implementations that fail to enforce strict boundaries. Buffer overflows in legacy FTP servers, such as those in daemons from the late 1990s, enable remote execution when processing oversized inputs in commands like or . These flaws, common in older software like wu-ftpd versions prior to 2.6.1, allowed attackers to overflow stack buffers and inject malicious . Standard FTP provides no built-in mechanisms for verifying during transfer, leaving files susceptible to undetected tampering or corruption en route. Historical exploits targeting FTP servers proliferated from the through the , with attackers using buffer overflows in daemons like wu-ftpd to gain persistent access on Unix systems. In modern contexts, legacy FTP implementations continue to support persistence, as unpatched servers remain common in various systems. As of 2025, recent vulnerabilities in software, such as bypass and remote code execution in CrushFTP (CVE-2024-4040, CVE-2025-54309) and post-authentication RCE in Wing (CVE-2025-47812), have been actively exploited, underscoring ongoing risks in contemporary deployments.

Mitigation Strategies

To mitigate the inherent security risks of FTP, such as unencrypted transmissions and susceptibility to eavesdropping or brute-force attacks, organizations can implement network-level controls to limit exposure. One effective approach is to restrict FTP access to trusted addresses or networks using Wrappers, which integrate with servers like to deny connections from unauthorized sources based on host lists in files like /etc/hosts.allow and /etc/hosts.deny. Additionally, tunneling FTP traffic over a VPN encrypts the entire session, preventing interception on untrusted networks, as recommended for protecting legacy protocols in storage infrastructures. For deployments requiring passive mode to facilitate data connections through s, configure a narrow range of high ports (e.g., 49152–65534) on the server and explicitly allow only those ports in rules, while blocking active mode to avoid inbound connection risks from clients. Server hardening focuses on minimizing the through configuration and maintenance. Disable access by default in vsftpd.conf with settings like anonymous_enable=NO, unless explicitly needed for public distribution, and uploads in any directories to write-only mode (e.g., 730 on /var/ftp/pub/) to prevent reading or execution of malicious . Enable detailed ging of connections, transfers, and attempts via vsftpd's xferlog_enable=YES and log_ftp_protocol=YES options, directing output to a secure, centralized for analysis, and implement on login attempts using rules to throttle excessive connections from single IPs. Regularly apply security patches and updates to the FTP software, such as those addressing overflows in from vendors like , and test configurations in a non-production before deployment. Ongoing monitoring enhances detection and response to potential compromises. Deploy host-based intrusion detection systems to FTP logs for anomalies, such as repeated failed logins or unusual patterns, with automated alerts configured for thresholds like five invalid attempts within a minute. For adding without altering the core , use TLS wrappers like to proxy FTP connections over SSL/TLS, ensuring certificates are valid and renewed periodically. As a broader , avoid deploying FTP for sensitive data transfers due to its nature, which exposes credentials and content to ; instead, plan migrations to secure alternatives like for new implementations. In legacy environments requiring compatibility, TLS proxy setups via tools like provide a transitional layer of protection while maintaining FTP syntax. Disable anonymous entirely if not in use, as it poses a high of unauthorized and should be confined to read-only directories with strict permissions.

Implementations and Software

Client Applications

Client applications for the File Transfer Protocol (FTP) enable users to initiate connections to remote servers, authenticate, and manage file transfers through intuitive interfaces or command-line tools. These applications handle the FTP control and data channels, supporting operations such as uploading, downloading, renaming, and deleting files across local and remote systems. Built-in and third-party clients vary in complexity, from basic interactive shells to feature-rich graphical user interfaces (GUIs) that incorporate drag-and-drop functionality and multi-protocol support, including extensions like and for enhanced security. Command-line FTP clients provide a lightweight, scriptable means for file transfers, often integrated directly into operating systems. The ftp command, built into systems such as and macOS, as well as Windows, allows interactive sessions for connecting to servers, navigating directories with commands like and , and transferring files using and put in either ASCII or modes. It supports batch mode for automated transfers via scripts, making it suitable for simple, unattended operations without additional installations. For more advanced scripting, offers enhanced reliability with features like automatic retries, segmented downloads for resuming interrupted transfers, and parallel file handling across multiple connections. Its built-in mirror command facilitates directory synchronization by recursively copying files and subdirectories, while bookmarks and queuing support complex workflows, such as bandwidth-limited transfers in shell scripts. Graphical FTP clients prioritize user-friendliness with visual file explorers and streamlined workflows. , a cross-platform open-source application for Windows, , and macOS, features a dual-pane interface for simultaneous local and remote file browsing, enabling drag-and-drop transfers and directory comparison for easy synchronization. It includes a site manager to store connection profiles with credentials and settings, transfer queues for managing multiple uploads/downloads sequentially or in parallel, and filters to exclude specific file types during operations. , tailored for Windows users, integrates alongside FTP for secure transfers and provides scripting capabilities through its .NET assembly for automation. Its synchronization tools allow one-way or two-way mirroring of directories, while an integrated supports in-place file modifications without separate applications. , optimized for macOS with Windows support, extends FTP functionality to cloud services like and Backblaze B2 via a bookmark-based connection system. It offers drag-and-drop uploads, queue management for batched transfers, and synchronization options that detect changes for efficient updates across remote storage. Common features across modern FTP clients enhance usability and efficiency. Site managers in tools like and allow saving multiple server configurations, including host details, port numbers, and methods, reducing setup time for frequent connections. Queueing systems, as implemented in and , permit scheduling and prioritizing transfers, with progress tracking and pause/resume capabilities to handle large datasets without interruption. Synchronization tools, such as directory mirroring in and , compare timestamps and sizes to transfer only modified files, minimizing bandwidth usage in repetitive tasks like backups. Open-source FTP clients dominate the landscape due to their accessibility, community-driven updates, and compatibility with diverse protocols, with applications like and consistently ranking among the most downloaded options. Mobile adaptations extend this trend; for instance, AndFTP on supports FTP, , , and with resume-enabled uploads/downloads and folder synchronization, allowing on-the-go file management via touch interfaces.

Server Implementations

FTP server implementations vary widely, encompassing both open-source and designed to handle file transfers efficiently and securely. These servers typically operate as daemons listening on port 21 for control connections and dynamically assigned ports for data transfers, supporting concurrent sessions through various architectural models. Popular implementations are chosen based on factors like operating system compatibility, performance requirements, and administrative ease, with many integrating into broader hosting environments. Among open-source options, (Very Secure FTP Daemon) stands out for its lightweight design, emphasizing speed, stability, and security on and other systems. It is particularly favored in enterprise Linux distributions due to its minimal resource footprint and built-in protections against common exploits, such as jails for user isolation. ProFTPD offers a modular inspired by Apache's , allowing administrators to extend functionality through loadable modules for features like and authentication backends. Its configuration files use a directive-based syntax similar to httpd.conf, enabling fine-grained control over server behavior without recompilation. Pure-FTPd provides a simple, single-process implementation optimized for ease of setup and support for virtual users, which map to non-system accounts stored in a or for isolated access management. This approach simplifies administration in multi-tenant environments by avoiding direct ties to host user databases. On the proprietary side, Microsoft's IIS FTP service integrates natively with , leveraging the (IIS) framework for seamless management within the Windows ecosystem. It supports site isolation and integration with for authentication, making it suitable for enterprise Windows deployments. Serv-U, developed by , is a commercial with robust auditing capabilities, including detailed of transfers, user actions, and access attempts that can be archived for purposes. It caters to businesses needing advanced reporting and integration with external monitoring tools. FTP server architectures commonly employ forking or preforking models to manage concurrency. In the forking model, the spawns a new for each incoming connection, which handles the session independently but incurs overhead from repeated process creation. Preforking, by contrast, pre-creates a of worker processes at startup, with the parent dispatching connections to idle workers, reducing under high load at the cost of idle resource usage. IPv6 support has been standardized in FTP servers since the late 1990s, with 2428 defining extensions for addresses and , enabling dual-stack operation without protocol modifications. By the 2000s, major implementations like and incorporated these features, ensuring compatibility with modern networks. Deployment of FTP servers is prevalent in web hosting scenarios, where they facilitate file uploads for website management alongside HTTP services. For scalability, containerization with has become common, allowing isolated FTP instances via images like those based on , which can be orchestrated in multi-container setups for high-availability hosting.

Integration in Browsers and Tools

Web browsers historically provided built-in support for accessing FTP servers through the ftp:// scheme, allowing users to browse and download files directly from the . For example, supported FTP URLs until version 88 in January 2021, when the feature was fully removed due to its lack of encryption () support and proxy compatibility, as well as declining usage rates. Similarly, Firefox fully removed FTP support in version 90 in July 2021. The standard FTP syntax, as defined in RFC 1738, follows the format ftp://[user:password@]host[:port]/path, enabling direct within the , but this approach exposes credentials in , exacerbating security risks. Download managers and command-line utilities have long integrated FTP capabilities for efficient file retrieval, often extending beyond basic browser functionality. GNU Wget, a non-interactive download tool, supports FTP protocol for both single-file and recursive downloads, allowing users to mirror entire directory hierarchies from remote servers. Similarly, provides FTP support for transfers, including features like connection reuse and active mode, though it requires scripting for recursive operations unlike Wget. Graphical download managers like (IDM) incorporate FTP handling with advanced features such as dynamic segmentation for acceleration and seamless resume of interrupted transfers, supporting protocols including HTTP, , and FTP. FTP integration extends to integrated development environments () and operating system file managers, enabling seamless file operations within productivity workflows. In Eclipse IDE, FTP access is facilitated through plugins like the Target Management project's Remote System Explorer (RSE), which supports FTP alongside SSH and for remote file browsing, editing, and synchronization. The GNOME file manager offers native FTP connectivity via its "Connect to Server" feature, where users enter an ftp:// to mount remote directories as virtual file systems, supporting drag-and-drop transfers without additional software. Due to inherent vulnerabilities in FTP, such as unencrypted , its in browsers and tools is increasingly phased out in favor of secure alternatives like , which provides HTTP-based file management with built-in and options. This shift reflects broader industry trends toward protocols that align with modern web standards, reducing exposure to interception and credential theft.

Variants and Derivatives

Secure FTP Extensions

File Transfer Protocol Secure (FTPS) extends the standard FTP by integrating (TLS) or its predecessor Secure Sockets Layer (SSL) to encrypt both control and data channels, thereby protecting against eavesdropping and tampering inherent in FTP's transmission. This addresses core FTP vulnerabilities such as unencrypted credentials and data exposure during transfer. FTPS operates in two primary modes: explicit and implicit. In explicit mode, as standardized in RFC 4217, the connection begins on the default FTP 21 in an unencrypted state, after which the client issues the AUTH TLS command to negotiate ; the server responds with 234 to confirm, upgrading the session to a protected state. Implicit mode, while not formally defined in the same RFC, assumes from the outset without commands, typically using 990 for the and 989 for data, making it suitable for environments requiring immediate but less flexible for mixed connections. Key features of FTPS include configurable channel protection levels via the PROT command, inherited from FTP security extensions in RFC 2228: Clear (C) for unprotected transmission, Safe (S) for integrity protection without confidentiality, and Private (P) for full confidentiality and integrity using TLS encryption. Authentication supports X.509 certificates for both server verification and optional client authentication, enabling mutual trust without relying solely on usernames and passwords. The foundations of FTPS trace to RFC 2228 in 1997, which introduced general FTP security mechanisms like protection buffers, and were later specialized for TLS in RFC 4217 published in 2005. Adoption surged in enterprise settings during the , driven by regulatory demands for data protection in sectors like finance and healthcare, where FTPS servers became standard for secure bulk transfers. In contrast to vanilla FTP, FTPS mandates encrypted channels post-negotiation in explicit mode or from connection start in implicit mode, eliminating plaintext fallbacks that could expose sessions. It also introduces challenges with intermediary proxies, where re-encryption for inspection requires custom proxy certificates, often complicating deployment in firewalled networks.

Lightweight Alternatives

Lightweight alternatives to the full File Transfer Protocol (FTP) emerged to address scenarios requiring minimal overhead, such as resource-constrained environments or automated processes, where the complexity of FTP's features like extensive directory navigation and were unnecessary. These protocols strip down core file transfer mechanics, often omitting security and advanced operations to prioritize simplicity and speed, though they inherit FTP's vulnerabilities to due to lack of . The Trivial File Transfer Protocol (TFTP), defined in RFC 1350 in 1992, exemplifies this approach as a UDP-based protocol designed for basic, unauthenticated file transfers without session management or error correction beyond UDP's checksums. It supports only essential operations: reading a file from a via a Read Request (RRQ), writing a file to a via a Write Request (WRQ), and acknowledging data blocks in a lock-step manner using fixed-size packets, typically 512 bytes. Lacking user authentication, directory listings, or rename capabilities in its core specification, TFTP relies on the underlying network for reliability, making it unsuitable for lossy connections. TFTP found primary use in diskless workstation booting and network device configuration, where clients download boot images or firmware over local networks without needing persistent connections. A key application is in (PXE) booting, where TFTP serves as the transport for initial bootloaders and operating system images after DHCP discovery, enabling automated OS deployments in enterprise environments like data centers. devices, such as routers and switches, also leverage TFTP for lightweight firmware updates due to its low resource footprint, often in trusted LANs where security is handled separately. However, its insecurity—no encryption or access controls—limits it to isolated networks, and the absence of retransmission mechanisms can lead to incomplete transfers on unreliable links. To enhance flexibility without overcomplicating the protocol, RFC 2347 in 1998 introduced an option negotiation extension for TFTP, allowing clients and servers to agree on parameters like block size before transfer begins, potentially increasing throughput by supporting larger packets up to 65464 bytes via RFC 2348. This evolution addressed scalability for larger files in scenarios but did not add features, preserving TFTP's lightweight nature while mitigating some performance bottlenecks. Another early lightweight variant is the Simple File Transfer Protocol (SFTP), outlined in RFC 913 from 1984, which provides a minimal superset of TFTP functionalities while remaining easier to implement than full FTP. Operating over for reliable delivery, it includes basic user authentication via and commands, along with limited file operations such as retrieval (RETR), sending (STOR), renaming (RNFR/RNTO), and deletion (), but omits advanced directory management beyond simple listing () and changing (CWD). Designed for environments needing more utility than TFTP—such as basic —without FTP's full command set, SFTP supports directory listings and changes but avoids complex features like account management or structured replies, reducing implementation complexity to under full FTP's scope. SFTP's use cases center on constrained systems requiring straightforward, authenticated transfers, such as early devices or simple client-server setups where full FTP overhead was prohibitive, though its waned with the rise of more robust protocols. Like TFTP, it lacks , relying on for integrity but exposing transfers to , and its minimal error handling suits only stable networks.

Modern Replacements

The (SFTP) has emerged as a primary modern replacement for FTP, providing secure file operations over an SSH connection on port 22 using a single channel for both commands and data. Defined as part of the SSH protocol suite in draft-ietf-secsh-filexfer (initially published in 2001 and widely adopted by the mid-2000s), SFTP supports comprehensive file access, transfer, and management capabilities, including authentication via or passwords, directory navigation, and permission handling. It operates as a subsystem within SSH, leveraging the for and integrity protection, which addresses FTP's vulnerabilities such as unencrypted transmissions. Popular implementations include the client, which provides the sftp command for interactive and batch file transfers. Other notable replacements include the (SCP), which uses SSH to copy files between hosts with built-in encryption and authentication, though it lacks SFTP's full interactive file management features. , integrated into tools like , enables simple, secure one-way transfers via commands such as scp source destination. Web Distributed Authoring and Versioning (), specified in RFC 4918 (2007), extends HTTP to support collaborative file editing, locking, and versioning over standard web ports (80 or 443), facilitating web-integrated transfers without dedicated FTP infrastructure. These protocols offer key advantages over FTP, including of both commands and data (using algorithms like ) and through mechanisms such as checksums and message codes, ensuring files remain unaltered during transit. SFTP's integration as an SSH subsystem further enhances by reusing established SSH sessions for multiple operations, reducing overhead while maintaining firewall compatibility via a single . The transition to these replacements reflects FTP's deprecation in modern systems; for instance, removed native FTP support in version 95 (2021) due to low usage and concerns, prompting reliance on secure alternatives like for browser-integrated or programmatic file operations. has become the de facto standard for secure file transfers since the early , widely adopted in enterprise environments and operating systems for its robustness.

References

  1. [1]
    RFC 959: File Transfer Protocol
    FTP promotes file sharing, indirect use of remote computers, shields users from file storage variations, and transfers data reliably and efficiently.
  2. [2]
    RFC 114: File Transfer Protocol
    This paper is a "first cut" at a protocol that will allow users at any host on the network to use the file system of every cooperating host.
  3. [3]
  4. [4]
    RFC 959 - File Transfer Protocol - IETF Datatracker
    These include the first proposed file transfer mechanisms in 1971 that ... Bhushan, Abhay, "File Transfer Protocol (FTP) Status and Further Comments ...Missing: origins | Show results with:origins
  5. [5]
  6. [6]
  7. [7]
  8. [8]
  9. [9]
  10. [10]
  11. [11]
    Active Vs. Passive FTP Simplified: Understanding FTP Ports | JSCAPE
    FTP commands and command responses go through the command channel, while the data or file transfers themselves pass through the data channel.
  12. [12]
    RFC 1579 - Firewall-Friendly FTP - IETF Datatracker
    This memo describes a suggested change to the behavior of FTP client programs. No protocol modifications are required, though we outline some that might be ...Missing: NAT | Show results with:NAT
  13. [13]
    RFC 2428 - FTP Extensions for IPv6 and NATs - IETF Datatracker
    In this specification, the FTP commands PORT and PASV are replaced with EPRT and EPSV, respectively. This document is organized as follows. Section 2 ...
  14. [14]
    RFC 3659 - Extensions to FTP - IETF Datatracker
    This document specifies new FTP commands to obtain listings of remote directories in a defined format, and to permit restarts of interrupted data transfers in ...<|control11|><|separator|>
  15. [15]
  16. [16]
  17. [17]
  18. [18]
  19. [19]
  20. [20]
  21. [21]
  22. [22]
    RFC 2640 - Internationalization of the File Transfer Protocol
    This document addresses the internationalization (I18n) of FTP, which includes supporting the multiple character sets and languages found throughout the ...
  23. [23]
    RFC 2389 - Feature negotiation mechanism for the File Transfer ...
    This document provides a mechanism by which clients of the FTP protocol can discover which new features are supported by a particular FTP server.
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
    Logins and Authentication - ProFTPD
    PAM, which stands for Pluggable Authentication Modules, is an API intended to make it easy to replace the old Unix-style DES password hashes stored in /etc/ ...
  31. [31]
  32. [32]
    Default FTP Connection Settings &lt - Microsoft Learn
    May 19, 2022 · In the Advanced Settings dialog box, expand Connections, specify your time-outs in the Control Channel Timeout and Data Channel Timeout fields, ...<|separator|>
  33. [33]
    RFC 1635 - How to Use Anonymous FTP - IETF Datatracker
    Anonymous FTP is a means by which archive sites allow general access to their archives of information. These sites create a special account called anonymous.
  34. [34]
    GNU Project - Free Software Foundation
    At this point, people began wanting to use GNU Emacs, which raised the question of how to distribute it. Of course, I put it on the anonymous ftp server on the ...
  35. [35]
    Manpage of VSFTPD.CONF
    If enabled, virtual users will use the same privileges as local users. By default, virtual users will use the same privileges as anonymous users, which ...
  36. [36]
    Why FTP Could Soon Disappear from the Internet - Tedium
    Sep 25, 2020 · Like telnet, FTP still has a few uses, but has lost prominence on the modern internet largely because of security concerns, with encrypted ...Missing: decline | Show results with:decline
  37. [37]
    RFC 2577 - FTP Security Considerations - IETF Datatracker
    This document provides suggestions for system administrators and those implementing FTP servers that will decrease the security problems associated with FTP.
  38. [38]
    CVE-1999-0017 Detail - NVD
    Dec 10, 1997 · Description. FTP servers can allow an attacker to connect to arbitrary ports on machines other than the FTP client, aka FTP bounce.Missing: buffer overflow
  39. [39]
    Top 4 FTP Exploits Used by Hackers - Globalscape
    Feb 8, 2018 · 1. Anonymous Authentication · 2. Directory Traversal Attack · 3. Cross-Site Scripting (XSS) · 4. Dridex-based Malware Attack.
  40. [40]
  41. [41]
    [PDF] Public Domain FTP Buffer Overflow Vulnerabilities Feb. - Oct. 1999
    Summary: Multiple buffer overflow vulnerability exists in older (1999) versions of popular public domain. FTP Daemon software which may be exploited to run ...
  42. [42]
    Why Avoid FTP: Security, Efficiency and Modern Alternatives
    Jan 14, 2025 · Lack of integrity checking: FTP doesn't verify if the files have been tampered with during transfer. This means you could be deploying ...<|separator|>
  43. [43]
    4.3. Securing Services | Security Guide | Red Hat Enterprise Linux | 7
    A standalone, security oriented implementation of the FTP service. The following security guidelines are for setting up the vsftpd FTP service. 4.3 ...
  44. [44]
    [PDF] Security Guidelines for Storage Infrastructure
    over TLS using tunneling (e.g., 'stunnel'). Ensure that objects are accessed through. HTTPS with TLS. (d) Extended network communication beyond the ...
  45. [45]
    Configuring FTP Firewall Settings in IIS 7 - Microsoft Learn
    Feb 17, 2023 · Step 1: Configure the Passive Port Range for the FTP Service · Go to IIS 7 Manager. · Double-click the FTP Firewall Support icon in the list of ...
  46. [46]
    [PDF] NIST SP 800-123, Guide to General Server Security
    ▫ Maintaining the secure configuration through application of appropriate patches and upgrades, security testing, monitoring of logs, and backups of data and ...
  47. [47]
    Technical Approaches to Uncovering and Remediating Malicious ...
    Sep 24, 2020 · To mitigate this risk, discontinue FTP and Telnet services by moving to more secure file storage/file transfer and remote access services.
  48. [48]
    Securing FTP Servers : TechWeb - Boston University
    Disable anonymous access to your ftp server altogether · Disable anonymous uploading of data · Configure the upload areas in a “dropbox” style ...
  49. [49]
    List of FTP Commands for Linux and UNIX - SolarWinds
    Similar to Windows, Linux and UNIX operating systems also have built-in command-line prompts that can be used as FTP clients to make an FTP connection.
  50. [50]
    ftp - Microsoft Learn
    Transfers files to and from a computer running a File Transfer Protocol (ftp) server service. This command can be used interactively or in batch mode.Missing: unix | Show results with:unix
  51. [51]
    LFTP - sophisticated file transfer program
    It has bookmarks, a built-in mirror command, and can transfer several files in parallel. It was designed with reliability in mind. LFTP is free software, ...Man page · Download · Description · Changes
  52. [52]
    the manual page - LFTP
    lftp is a file transfer program that allows sophisticated FTP, HTTP and other connections to other hosts.
  53. [53]
    FileZilla - The free FTP solution
    Welcome to the homepage of FileZilla®, the free FTP solution. The FileZilla Client not only supports FTP, but also FTP over TLS (FTPS) and SFTP.Client Features · Download FileZilla Client · Download FileZilla Server · FileZilla
  54. [54]
    Introducing WinSCP
    Mar 24, 2024 · WinSCP is a free, open-source file manager for Windows, functioning as an SFTP, FTP, WebDAV, S3, and SCP client, mainly for file transfer.Free SFTP Client for Windows · Screenshots · User Interfaces
  55. [55]
    Cyberduck | Libre server and cloud storage browser for Mac and ...
    Cyberduck is a libre server and cloud storage browser for Mac and Windows with support for FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, ...Download · FTP & FTP-TLS · FTP · Cyberduck & Mountain Duck...
  56. [56]
    FileZilla FTP Client
    Nov 23, 2024 · Features[edit] · Easy to use · Supports FTP, FTP over SSL/TLS (FTPS) and SSH File Transfer Protocol (SFTP) · Cross-platform. Runs on Windows (8.1 ...
  57. [57]
    Table of Contents - WinSCP
    Feb 16, 2023 · Free SFTP, SCP, S3 and FTP client for Windows. Table of Contents. This documentation is maintained by the WinSCP community.Command-line Options · Quick Start Guide · Supported file transfer protocols
  58. [58]
    Best Open Source FTP Clients 2025 - SourceForge
    WinSCP is a free SFTP, SCP, S3, WebDAV, and FTP client for Windows. WinSCP is a popular free file manager for Windows supporting SFTP, FTP, FTPS, SCP, S3, ...Missing: dominance | Show results with:dominance
  59. [59]
    FTP, FTPS, SCP and SFTP Android client - AndFTP - LYSESOFT
    It provides download, upload features with resume support and folder synchronization. Use device menu to rename, delete, copy, set permissions and create ...
  60. [60]
    vsftpd - Secure, fast FTP server for UNIX-like systems
    vsftpd is a GPL licensed FTP server for UNIX systems, including Linux. It is secure and extremely fast. It is stable.Missing: architecture | Show results with:architecture
  61. [61]
    21.2.2. The vsftpd Server | Red Hat Enterprise Linux | 6
    Whenever possible, processes are change-rooted to the directory being shared; this directory is then considered a chroot ...
  62. [62]
    Configuring ProFTPD
    The first step in configuring a proftpd daemon is knowing where the configuration file, usually named proftpd.conf, is located.
  63. [63]
  64. [64]
    Pure-FTPd - ArchWiki
    Mar 8, 2024 · The virtual users running as the FTP system users can not log in by default. To change that behavior, set the option MinUID in /etc/pure-ftpd.
  65. [65]
    Scenario: Build an FTP Site on IIS | Microsoft Learn
    May 8, 2020 · Step 1: Install FTP on an Existing IIS Web Server · Step 2: Add an FTP Site · Step 3: Configure FTP Site Defaults · Step 4: Configure Firewall ...Prerequisites · Step 1: Install FTP on an...
  66. [66]
    FTP Server Management Console - Serv-U - SolarWinds
    ... Serv-U FTP Server provides an automatic way to archive activity for audits. To further improve security, logs from Serv-U FTP server can be integrated into ...
  67. [67]
    Serv-U Audit Trail Feature
    Oct 21, 2020 · The Serv-U logs will only shows transactional information such as login, logouts, file upload and downloads, blocked IPs and such. Changed made ...
  68. [68]
    4.2 Server Architectures
    When using preforking, the main server process forks several handler processes preemptively on start-up, as shown in figure 4.1. Often, the (thread-safe) socket ...
  69. [69]
    Linux Applications Performance: Part III: Preforked Servers - Unixism
    Apr 28, 2019 · Up until 2,500 concurrent connections, our pre-forked server is able to handle in excess of 2,100 requests/second.Missing: FTP | Show results with:FTP
  70. [70]
    RFC 2428 - FTP Extensions for IPv6 and NATs - IETF Datatracker
    Jul 29, 2020 · FTP Extensions for IPv6 and NATs (RFC 2428, September 1998)
  71. [71]
    IPv6 Support for FTP, FTPS, SFTP and HTTP/S - Serv-U - SolarWinds
    Serv-U has natively supported IPv6 since Serv-U version 10.0. 0.2 was released on May 17, 2010. It has since been independently recognized as the most ...
  72. [72]
    FTP: fifty years and millions of FTP servers worldwide - Stackscale
    May 18, 2021 · FTP (File Transfer Protocol) dates from April, 1971 (RFC 114). Its original specification was written by computer scientist Abhay Bhushhan.
  73. [73]
    garethflowers/docker-ftp-server - GitHub
    A simple FTP server, using vsftpd. How to use this image start a FTP Server instance To start a container, with data stored in /data on the host, use the ...
  74. [74]
    Deprecations and removals in Chrome 88 | Blog
    Dec 4, 2020 · Chrome has removed support for FTP URLs. The legacy FTP implementation in Chrome has no support for encrypted connections (FTPS), nor proxies. ...
  75. [75]
    FTP link wants to open in other app | Firefox Support Forum
    Nov 22, 2020 · FTP is deprecated and is no longer enabled in Firefox Nightly builds, release builds should still support FTP.Missing: Chrome | Show results with:Chrome
  76. [76]
    GNU Wget 1.25.0 Manual
    GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP ...
  77. [77]
    Comparison Table - curl
    Compare curl with other download tools ; FTP 3rd Party Transfer ; FTP Active Mode, +, + ; FTP Connection Reuse, + ; FTP Kerberos, +.Missing: documentation | Show results with:documentation
  78. [78]
    Internet Download Manager features
    IDM will catch your downloads and accelerate them. IDM supports HTTP, FTP, HTTPS and MMS protocols. Download trial version of Internet Download Manager. Dark ...
  79. [79]
    Browse files on a server or network share
    To browse files over the network, open the Files application from the Activities overview, and click Other Locations in the sidebar.
  80. [80]
    Deprecations and removals in Chrome 80 | Blog
    Dec 19, 2019 · FTP support deprecated. The current FTP implementation in Chrome has no support for encrypted connections (FTPS), nor proxies. Usage of FTP in ...
  81. [81]
    RFC 4217: Securing FTP with TLS
    This document describes a mechanism that can be used by FTP clients and servers to implement security and authentication using the TLS protocol.
  82. [82]
    RFC 2228: FTP Security Extensions
    ### Summary of FTP Security Extensions (RFC 2228)
  83. [83]
    The Difference Between Implicit and Explicit FTPS - GoAnywhere
    Apr 13, 2021 · Explicit FTPS is a method FTPS of that allows clients to request the server to create a secured session using SSL/TLS (as mentioned above). This ...
  84. [84]
    FTPS Server - What It Is and How It Works - IT Glossary | SolarWinds
    Implicit FTPS vs. explicit FTPS. Implicit FTPS refers to sessions where the command and data channels are encrypted at all times. An SSL encryption is implied ...
  85. [85]
    Requirements to make secure (FTPS) connection from Proxy to ...
    Apr 5, 2022 · Resolution · 1)create new user (not admin user) Note: Users with admin rights cannot be used for FTPS. · 2)enable ftps with above new user · 3) ...
  86. [86]
    RFC 913 - Simple File Transfer Protocol - IETF Datatracker
    SFTP is a simple file transfer protocol. It fills the need of people wanting a protocol that is more useful than TFTP but easier to implement (and less ...
  87. [87]
    RFC 1350 - The TFTP Protocol (Revision 2) - IETF Datatracker
    TFTP is a very simple protocol used to transfer files. It is from this that its name comes, Trivial File Transfer Protocol or TFTP.
  88. [88]
    Use PXE for OSD over the network - Configuration Manager
    Sep 2, 2025 · Preboot execution environment (PXE)-initiated OS deployments in Configuration Manager let clients request and deploy operating systems over the network.
  89. [89]
    Chapter 7. Preparing a PXE installation source | 9
    Once installation starts, the client queries the DHCP server, receives the boot files from the HTTP or TFTP server, and downloads the installation image from ...<|separator|>
  90. [90]
    SSH File Transfer Protocol (SFTP): Get SFTP client & server
    SFTP (SSH File Transfer Protocol) is a secure file transfer protocol. It runs over the SSH protocol. It supports the full security and authentication ...
  91. [91]
    What is Secure File Copy (scp)? | SSH Academy
    SCP is a program for copying files between computers. It uses the SSH protocol. It is included by default in most Linux and Unix distributions.
  92. [92]
    RFC 4918 - HTTP Extensions for Web Distributed Authoring and ...
    WebDAV consists of a set of methods, headers, and content-types ancillary to HTTP/1.1 for the management of resource properties.
  93. [93]
    Deprecations and removals in Chrome 95 | Blog
    Sep 23, 2021 · Chrome is removing support for FTP URLs. Use of FTP in the browser is sufficiently low that it is no longer viable to invest in improving the ...FTP support removed · Support for URLs with non... · Deprecate U2F API...