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.
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
Comprehensive List of FTP Commands:
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)
- Microsoft Teams Zoom In and Zoom Out Keyboard Shortcut - Teams
- Calculate days between dates using dateutils ddiff command - Linux
- How to Uninstall Android Studio on Mac - Android-Studio
- How to fix Microsoft Windows 10 update error 80070020 - Microsoft
- The tag img may only appear as a descendant of tag noscript. Did you mean amp-img - AMP
- Make Bootstrap Button look like a link - Bootstrap
- Install specific JRE on Ubuntu using apt - Ubuntu
- 18: Get Sub List By Slicing a Python List - 1000+ Python Programs - Python-Programs