FTP stands for File Transfer Protocol, it is a TCP network layer protocol used to access/exchange data from a remote server to your system using FTP Client. It works on Port 21 (data is send to the client by port 20).
Some most commonly used FTP Clients are FileZilla (Works with Windows, Mac OS X and Linux), FireFTP and WinSCP (Windows)
When you connect to the server remotely you would have noticed the FTP logs, have you ever noticed what AUTH, EPSV, TLS, SMNT e.t.c means? They are all are FTP Commands that are send to the FTP server that follow RFC 959 Specifications by IETF.
Comprehensive List of FTP Commands:
Status: Connecting to 192.168.0.145... Status: Connection established, waiting for welcome message... Trace: CFtpControlSocket::OnReceive() Response: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- Response: 220-You are user number 5 of 500 allowed. Response: 220-Local time is now 07:39. Server port: 21. Response: 220-This is a private system - No anonymous login Response: 220 You will be disconnected after 3 minutes of inactivity. Trace: CFtpControlSocket::SendNextCommand() Command: AUTH TLS Trace: CFtpControlSocket::OnReceive() Response: 234 AUTH TLS OK. Status: Initializing TLS... Trace: CTlsSocket::Handshake() Trace: CTlsSocket::ContinueHandshake() Trace: CTlsSocket::OnSend() Trace: CTlsSocket::OnRead() Trace: TLS Handshake successful Trace: Protocol: TLS1.0, Key exchange: RSA, Cipher: AES-256-CBC, MAC: SHA1 Status: Verifying certificate... Status: TLS connection established. Trace: CFtpControlSocket::SendNextCommand() Command: USER m6ef4918 Trace: CTlsSocket::OnRead() Trace: CFtpControlSocket::OnReceive() Response: 331 User m6ef4918 OK. Password required Trace: CFtpControlSocket::SendNextCommand() Command: PASS ************* Trace: CTlsSocket::OnRead() Trace: CFtpControlSocket::OnReceive() Response: 230 OK. Current restricted directory is / Trace: CFtpControlSocket::SendNextCommand() Command: OPTS UTF8 ON Trace: CTlsSocket::OnRead() Command: PBSZ 0 Trace: CTlsSocket::OnRead() Trace: CFtpControlSocket::OnReceive() Response: 200 PBSZ=0 Trace: CFtpControlSocket::SendNextCommand() Command: PROT P Trace: CTlsSocket::OnRead() Trace: CFtpControlSocket::OnReceive() Response: 200 Data protection level set to "private" Status: Connected Trace: CFtpControlSocket::ResetOperation(0) Trace: Measured latency of 96 ms Status: Retrieving directory listing... Trace: CFtpControlSocket::SendNextCommand() Trace: CFtpControlSocket::ChangeDirSend() Command: PWD Trace: state = 1 Command: TYPE I Trace: CTlsSocket::OnRead() Trace: CFtpControlSocket::OnReceive() Response: 200 TYPE is now 8-bit binary Trace: CFtpControlSocket::TransferParseResponse() Command: PASV Trace: code = 2 Trace: state = 2 Trace: CFtpControlSocket::SendNextCommand() Trace: CFtpControlSocket::TransferSend() Trace: state = 4 Command: MLSD
ABOR: This command is used to abort an active file transfer or abort previously fired command. ACCT: It is an Account request command send to the server with account name parameter. ADAT: It stands for Authentication/Security Data: Base64 encoding is used in ADAT ALLO: Command to allocate sufficient disk space to receive a file. APPE: Command Append is used to tell the server to append data transferred via the data connection to the existing file. AUTH: It is an Authentication/Security Mechanism Command CCC: Clear Command Channel command makes the secured channel revert back to plaintext i.e. unsecured. CDUP: This command changes the servers working directory to Parent Directory. CONF: Confidentiality Protection CWD: This command is used to change the current working directory. DELE: When a file is deleted from the FTP client Delete file command is send using this command. ENC: Privacy Protected Channel EPRT: Specifies an extended address and port to which the server should connect. EPSV: This command tells the server to enter extended passive mode. FEAT: Command to get feature list implemented from the server. HELP: This command returns help documentation. LANG: Language Negotiation: A new command added to FTP that lets command set to allow server-FTP to determine in which language to present server greetings and the textual part of command responses. LIST: Returns information of a file or directory if specified, else information of the current working directory is returned. If the server supports the '-R' command (e.g. 'LIST -R') then a recursive directory listing will be returned. LPRT: Specifies a long address and port to which the server should connect. LPSV: Command tells server to enter long passive mode. MDTM: This command return the last-modified time of a specified file. MIC: Integrity Protected Command MKD: This command is used to make a new directory at server. MLSD: Lists the contents of a directory if a directory is named. MLST: Provides data about exactly the object named on its command line and no others. MODE: Sets the transfer mode (Stream, Block, or Compressed). NLST: This command returns a list of file names in a specified directory. NOOP: No operation (dummy packet; used mostly as keepalives). OPTS: Select options for a feature. PASS: To send authentication password. PASV: Command makes server enter passive mode. PBSZ: Protection Buffer Size PORT: Specifies an address and port to which the server should connect. PROT: Data Channel Protection Level PWD: Print Working Directory. It return current directory of the host. QUIT: To disconnect. REIN: This command is used to re-initialize the connection. REST: Restart transfer from the specified point. RETR: Retrieve a copy of the file. RMD: Remove a directory. RNFR: Rename from. RNTO: Rename to. SITE: Sends site specific commands to remote server. SIZE: Return the size of a file. SMNT: Mount file structure. STAT: Returns the current status. STOR: Accept data and store data as a file at the server site. STOU: Store file uniquely. STRU: Set file transfer structure. SYST: Return system type. TYPE: Sets the transfer mode (ASCII/binary). USER: Authentication username. XCUP: [Deprecated] Change to the parent of the current working directory. XMKD: [Deprecated] Command to Make/Create a directory at server. XPWD: [Deprecated] Command to print current working directory. XRCP: [Deprecated] RFC describes an extension to FTP which allows the user of an ITS FTP server. XRMD: [Deprecated] Remove directory from the server. XRSQ: [Deprecated] XRSQ command is used to specify recipients after a scheme is chosen XSEM: [Deprecated] Command to send, mail if cannot. XSEN: [Deprecated] Command to send to terminal.
- FileZilla Connection time out Failed to retrieve directory listing
- How to switch between sftp and Terminal shell
- How to connect to the SFTP location using Terminal command
- [Solution] SFTP File 22 not found Connection closed
- How to Copy a remote file to local using SFTP command?
- List of 60 useful FTP Client Commands to access server
- Check help on commands while being on sftp> prompt
- 10 FTP SFTP Clients and Alternatives
- How to SFTP to port different than 22 (Custom port)
- How to enable missing SharePoint Site Assets, Site Pages library App - SharePoint
- Easy Steps to Upgrade iPhone to the new iOS 16 - HowTos
- Install postgres Client using apt-get command - Ubuntu
- Open Docker Desktop from macOS Terminal - Docker
- How to Connect to AWS Windows EC2 UI Instance from M1 Mac (Updated 2022) - HowTos
- Rename a directory using Linux/Unix command - Linux
- Merge-SPlogfile PowerShell - SharePoint Correlation ID error - SharePoint