Telnet (short for "teletype network") is a client/server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. Telnet consists of two components: (1) the protocol itself which specifies how two parties are to communicate and (2) the software application that provides the service. User data is interspersed in-band with Telnet control information in an 8-bit byte oriented data connection over the Transmission Control Protocol (TCP). Telnet was developed in 1969 beginning with , extended in , and standardized as Internet Engineering Task Force (IETF) Internet Standard STD 8, one of the first Internet standards. Telnet transmits all information including usernames and passwords in plaintext so it is not recommended for security-sensitive applications such as remote management of routers. Telnet's use for this purpose has waned significantly in favor of SSH. Some extensions to Telnet which would provide encryption have been proposed.

Components 
Telnet consists of two components: (1) the protocol itself and (2) the service component. The telnet protocol is a  client-server protocol, based on a reliable connection-oriented transport.  This protocol is used to establish a connection to Transmission Control Protocol (TCP) port number 23 or 2323, where a Telnet server application is listening. Telnet predated TCP/IP and originally ran over Network Control Protocol (NCP). The telnet service is best understood in the context of a user with a simple terminal using the local Telnet program (known as the client program) to run a logon session on a remote computer where the user's communications needs are handled by a Telnet server program.

Telnet Protocol

History 
Even though Telnet was an ad hoc protocol with no official definition until March 5, 1973, the name actually referred to Teletype Over Network Protocol as the RFC 206 (NIC 7176) on Telnet makes the connection clear:

Essentially, it used an 8-bit channel to exchange 7-bit ASCII data. Any byte with the high bit set was a special Telnet character. On March 5, 1973, a Telnet protocol standard was defined at UCLA with the publication of two NIC documents: Telnet Protocol Specification, NIC 15372, and Telnet Option Specifications, NIC 15373.

Extensions 
Many extensions were made for Telnet because of its negotiable options protocol architecture. Some of these extensions have been adopted as Internet standards, IETF documents STD 27 through STD 32. Some extensions have been widely implemented and others are proposed standards on the IETF standards track (see below).

Telnet service 
The Telnet service is the application providing services over the Telnet protocol. Most operating systems provide a service that can be installed or enabled to provide Telnet services to clients.

Security vulnerabilities 
Telnet is vulnerable to network-based cyberattacks, such as packet sniffing sensitive information including passwords and fingerprinting. Telnet services can also be exploited to leak information about the server (such as hostnames, IP addresses and brand) by packet sniffing the banner. This information can then be searched to determine if a Telnet service accepts a connection without authentication. Telnet is also frequently exploited by malware due to being improperly configured. In fact, Telnet is targeted by attackers more frequently than other common protocols, especially when compared to UPnP, CoAP, MQTT, AMQP and XMPP. Common devices targeted are Internet of things devices, routers and modems.

The SANS Institute recommends that the use of Telnet for remote logins should be discontinued under normal circumstances for the following reasons:

 Telnet, by default, does not encrypt any data sent over the connection (including passwords), and so it is often feasible to eavesdrop on the communications and use the password later for malicious purposes; anybody who has access to a router, switch, hub or gateway located on the network between the two hosts where Telnet is being used can intercept the packets passing by and obtain login, password and whatever else is typed with a packet analyzer.
 Most Telnet implementations lack authentication. An estimated 22,887 Telnet-enabled devices found by security researchers not only lacked authentication but also provided unrestricted access to the system.
 Most Telnet authentication mechanisms are vulnerable to being intercepted by Man-in-the-middle attacks.
Extensions to Telnet provide Transport Layer Security (TLS) security and Simple Authentication and Security Layer (SASL) authentication that address the above concerns.  However, most Telnet implementations do not support these extensions; and they do not address other vulnerabilities such as parsing the banner information.

IBM 5250 or 3270 workstation emulation is supported via custom telnet clients, TN5250/TN3270, and IBM i systems. Clients and servers designed to pass IBM 5250 data streams over Telnet generally do support SSL encryption, as SSH does not include 5250 emulation. Under IBM i (also known as OS/400), port 992 is the default port for secured telnet.

Uses

Historical uses 
Historically, Telnet provided access to a command-line interface on a remote host. However, because of serious security concerns when using Telnet over an open network such as the Internet, its use for this purpose has waned significantly in favor of SSH. The usage of Telnet for remote management has declined rapidly, especially on the public Internet, in favor of the Secure Shell (SSH) protocol. SSH provides much of the functionality of telnet, with the addition of strong encryption to prevent sensitive data such as passwords from being intercepted, and public key authentication, to ensure that the remote computer is actually who it claims to be.

Modern day uses 
Telnet may be used in debugging network services such as SMTP, IRC, HTTP, FTP or POP3, to issue commands to a server and examine the responses. For example, Telnet client applications can establish an interactive TCP session to a port other than the Telnet server port. For example, a command line telnet client could make an HTTP request to a web server on TCP port 80 as follows:

$ telnet www.example.com 80
GET /path/to/file.html HTTP/1.1
Host: www.example.com
Connection: closeThe older protocol is used these days only in rare cases to access decades-old legacy equipment that does not support more modern protocols. For example, a large number of industrial and scientific devices only have Telnet available as a communication option.  Some are built with only a standard RS-232 port and use a serial server hardware appliance to provide the translation between the TCP/Telnet data and the RS-232 serial data.  In such cases, SSH is not an option unless the interface appliance can be configured for SSH (or is replaced with one supporting SSH). 

Telnet is commonly used by amateur radio operators for providing public information.

Although recommended against, security researchers estimated that 7,096,465 devices connected to the Internet continue to use Telnet, however, much less are often estimated because most estimates only scan for TCP port 23.

Technical details 
The technical details of Telnet are defined by a variety of specifications including RFC 854.

USASCII control codes

Telnet commands 
Telnet commands consist of at least two bytes. The first byte is the IAC escape character (typically byte 255) followed by the byte code for a given command:

Interpret As Command 
All data octets except 0xff are transmitted over Telnet as is.
(0xff, or 255 in decimal, is the IAC byte (Interpret As Command) which signals that the next byte is a telnet command. The command to insert 0xff into the stream is 0xff, so 0xff must be escaped by doubling it when sending data over the telnet protocol.)

Telnet options 
Telnet also has a variety of options that terminals implementing Telnet should support.

Related RFCs

Internet Standards
 , Telnet Protocol Specification
 , Telnet Option Specifications
 , Telnet Binary Transmission
 , Telnet Echo Option
 , Telnet Suppress Go Ahead Option
 , Telnet Status Option
 , Telnet Timing Mark Option
 , Telnet Extended Options: List Option

Proposed Standards
 , Telnet End of Record Option
 , Telnet Window Size Option
 , Telnet Terminal Speed Option
 , Telnet Terminal-Type Option
 , Telnet X Display Location Option
 , Requirements for Internet Hosts - Application and Support
 , Telnet Linemode Option
 , Telnet Remote Flow Control Option
 , Telnet Environment Option
 , Telnet Authentication Option
 , Telnet Authentication: Kerberos Version 5
 , TELNET Authentication Using DSA
 , Telnet Authentication: SRP
 , Telnet Data Encryption Option
 , The telnet URI Scheme

Informational/experimental
 , The Q Method of Implementing TELNET Option Negotiation
 , Telnet Environment Option Interoperability Issues

Other RFCs
 , Telnet 3270 Regime Option
 , TN3270 Enhancements
 , 5250 Telnet Interface
 , Telnet Com Port Control Option
 , IBM's iSeries Telnet Enhancements

Telnet clients
 PuTTY and plink command line are a free, open-source SSH, Telnet, rlogin, and raw TCP client for Windows, Linux, and Unix.
 AbsoluteTelnet is a telnet client for Windows.  It also supports SSH and SFTP,
 RUMBA (Terminal Emulator)
 Line Mode Browser, a command line web browser
 NCSA Telnet
 TeraTerm
 SecureCRT from Van Dyke Software
ZOC Terminal
 SyncTERM BBS terminal program supporting Telnet, SSHv2, RLogin, Serial, Windows, *nix, and Mac OS X platforms, X/Y/ZMODEM and various BBS terminal emulations
Rtelnet is a SOCKS client version of Telnet, providing similar functionality of telnet to those hosts which are behind firewall and NAT.
 Inetutils includes a telnet client and server and is installed by default on many Linux distributions.
 telnet.exe command line utility included in default installation of many versions of Microsoft Windows.

In popular culture 
Star Wars: Episode IV – A New Hope from 1977 has been recreated as a text art movie served through Telnet.

See also
 List of terminal emulators
 Banner grabbing
 Virtual terminal
 Reverse telnet
 HyTelnet
 Kermit
 SSH

References

External links
 Telnet Options — the official list of assigned option numbers at iana.org
 Telnet Interactions Described as a Sequence Diagram
 Telnet configuration
 Telnet protocol description, with NVT reference
 Microsoft TechNet:Telnet commands
 TELNET: The Mother of All (Application) Protocols
 Troubleshoot Telnet Errors in Windows Operating System
  Contains a list of telnet addresses and list of telnet clients

 
Application layer protocols
History of the Internet
Internet Protocol based network software
Internet protocols
Internet Standards
Unix network-related software
URI schemes