Skip to content
Surf Wiki
Save to docs
technology/networking

From Surf Wiki (app.surf) — the open knowledge base

Telnet

Network protocol for virtual terminals

Telnet

Summary

Network protocol for virtual terminals

Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main goal was to connect terminal devices and terminal-oriented processes.

The name "Telnet" refers to two things: a protocol specifying how two parties are to communicate and a software application that implements the protocol as a 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 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.

Description

The telnet protocol is a client-server protocol that runs on a reliable connection-oriented transport. Most often, a telnet client connects over TCP to port 23 or 2323, where a Telnet server application is listening. The Telnet protocol abstracts any terminal as a Network Virtual Terminal (NVT). The client must simulate a NVT using the NVT codes when messaging the server.

Telnet predated UDP/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 service

A Telnet service is an 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.

Name

The official specification stylizes the name as TELNET, which is not as an acronym or abbreviation.

In a 1972 paper, when discussing one of the early forms of the protocol, Stephen Crocker et al. used "TELNET" explicitly as an abbreviation of "telecommunications network".

In his 2015 book WHOIS Running the Internet: Protocol, Policy, and Privacy, Internet researcher Garth O. Bruen claims that Telnet was originally short for "Teletype Over Network Protocol".

History

Telnet was originally developed for ARPANET in 1969.{{cite book |access-date=5 April 2025 |access-date=2025-04-06

Since then, many additional RFCs have updated or extended the Telnet specification, both to address issues in the original standard and to add new capabilities. Some of these extensions have also been adopted as Internet standards, particularly standards 27 through 32 (see below).

Security vulnerabilities

Telnet is vulnerable to network-based cyberattacks, such as packet sniffing sensitive information including passwords and fingerprinting. Telnet services can 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 frequently exploited by malware due to being improperly configured. 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.
  • Many Telnet implementations lack authentication.
  • 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. Telnet over VPN is a viable option if SSHv2 is not supported, or a VPN is already used to securely tunnel other application data to the remote network the Telnet server is present in. However, precautions must be taken: ideally the VPN should terminate on the Telnet server itself, unless the LAN has additional security measures against eavesdropping and modification by other devices such as additional encryption and/or VLANs. This is because Telnet traffic leaves the VPN server in its insecure plaintext form after it is decrypted. The VPN software should be a trusted one that is heavily audited (e.g. OpenVPN, WireGuard, IPsec), using preferably certificate-based/public key mutual authentication.

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 TelnetS (Telnet over SSL/TLS).

Uses

Historical

Screenshot of a black screen with the output of the help command and a # prompt.
Client]] from a router.

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

The Telnet protocol is mainly used for legacy equipment that does not support more modern communication mechanisms. For example, many 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 support has become highly unusual in new applications, though amateur radio operators and multi-user dungeons do continue to utilize it.

Security researchers estimated that 7,096,465 exposed systems on the Internet continue to use Telnet as of 2021. However, estimates of this number have varied significantly, depending on the number of ports scanned beyond the default TCP port 23.

The Telnet client may be used in debugging network services such as SMTP, IRC, or HTTP servers, to issue commands to the server and examine the responses. In this case, when the Telnet client establishes a TCP connection to a port other than the standard Telnet server port, it does not use the Telnet protocol, and can be used instead to send and receive data over the TCP connection directly.

Technical details

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

Commands

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

NameByte Value (dec)Byte value (hex)Explanation
SE (Subnegotiation end)2400xf0End of negotiation (or data block) of a sub-service of a protocol mechanism
NOP (No operation)2410xf1Data packet that does nothing
Data Mark2420xf2
Break2430xf3
Interrupt Process2440xf4Request that other party ends current process
Abort output2450xf5Request that other party stops sending output
Are you there?2460xf6
Erase character2470xf7
Erase Line2480xf8
Go ahead2490xf9
SB (Subnegotiation begin)2500xfaInitiate the negotiation of a sub-service of a protocol mechanism
WILL2510xfbInforms other party that this party will use a protocol mechanism
WON'T2520xfcInforms other party that this party will not use a protocol mechanism
DO2530xfdInstruct other party to use a protocol mechanism
DON'T2540xfeInstruct other party to not use a protocol mechanism
IAC2550xffSequence Initializer/Escape Character
Source: J. Postel and Reynolds (1983)

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.)

Options

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

CodeNameSpecNotes
0Binary TransmissionThe 8-bit mode (so named binary option) is intended to transmit binary data, not ASCII characters. The standard suggests the interpretation of codes 0000–0176 as ASCII, but does not offer any meaning for high-bit-set data octets. There was an attempt to introduce a switchable character encoding support like HTTP has, but nothing is known about its actual software support.
1Echo
2ReconnectionNIC 15391 of 1973
3Suppress Go AheadThe "Go Ahead" command code (249) in the original Telnet protocol is used to notify to the other end that the other end could start sending back messages. This was used in "half duplex" communication, as some terminals could send messages and receive messages, but not simultaneously.
4Approx Message Size NegotiationNIC 15393 of 1973
5Status
6Timing Mark
7Remote Controlled Trans and Echo
8Output Line WidthNIC 20196 of August 1978
9Output Page SizeNIC 20197 of August 1978
10Output Carriage-Return Disposition
11Output Horizontal Tab Stops
12Output Horizontal Tab Disposition
13Output Formfeed Disposition
14Output Vertical Tabstops
15Output Vertical Tab Disposition
16Output Linefeed Disposition
17Extended ASCII
18Logout
19Byte Macro
20Data Entry Terminal{{plainlist*
21SUPDUP{{plainlist*
22SUPDUP Output
23Send Location
24Terminal Type
25End of Record
26TACACS User Identification
27Output Marking
28Terminal Location Number
29Telnet 3270 Regime
30X.3 PAD
31Negotiate About Window Size
32Terminal Speed
33Remote Flow Control
34Linemode
35X Display Location
36Environment Option
37Authentication Option
38Encryption Option
39New Environment Option
40TN3270ESee IBM 3270
41XAUTH
42CHARSET
43Telnet Remote Serial Port (RSP)
44Com Port Control Option
45Telnet Suppress Local Echo
46Telnet Start TLS
47KERMITSee Kermit (protocol)
48SEND-URL
49FORWARD_X
50-137Unassigned
138TELOPT PRAGMA LOGON
139TELOPT SSPI LOGON
140TELOPT PRAGMA HEARTBEAT
141-254Unassigned
255Extended-Options-List

Client applications

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

References

References

  1. (2019). "2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO)".
  2. (2015). "2015 23nd Signal Processing and Communications Applications Conference (SIU)".
  3. Todorov, Dobromir. (2007). "Mechanics of user identification and authentication : fundamentals of identity management". Auerbach Publications.
  4. (1983). "Telnet Protocol Specification". Network Working Group.
  5. "Service Name and Transport Protocol Port Number Registry".
  6. (2021-11-02). "Proceedings of the 21st ACM Internet Measurement Conference". Association for Computing Machinery.
  7. Postel, J.. (1981). "NCP/TCP transition plan". Network Working Group.
  8. (1971). "Proceedings of the November 16-18, 1971, fall joint computer conference on - AFIPS '71 (Fall)". Association for Computing Machinery.
  9. Bruen, Garth O.. (2015). "WHOIS Running the Internet: Protocol, Policy, and Privacy". Wiley.
  10. (April 3, 1972). "Telnet Protocol".
  11. (2002-01-01). "Chapter 11 - Detecting and Performing Security Breaches with Sniffer Pro". Syngress.
  12. (2016). "2016 IEEE Conference on Intelligence and Security Informatics (ISI)".
  13. Kirk, Jeremy. (2007-02-12). "Zero-day flaw in Solaris allows remote attacks".
  14. Mahmood, H.B.. (2003). "9th Asia-Pacific Conference on Communications (IEEE Cat. No.03EX732)".
  15. "TCP/IP Ports Required for IBM i Access and Related Functions". IBM Support.
  16. Todorov, Dobromir. (2007). "Mechanics of user identification and authentication : fundamentals of identity management". Auerbach Publications.
  17. (2 April 2007). "Telnet, dead at 35...RIP".
  18. "History of the SSH Protocol". SSH Communications Security, Inc..
  19. "What is Telnet? {{!}} PDF {{!}} Networking Standards {{!}} Internet Standards".
  20. Bartle, Richard. (2003). "[[Designing Virtual Worlds]]". New Riders.
  21. "Debugging server services with telnet".
  22. "TELNET CHARSET Option".
  23. "Telnet Options".
  24. (10 March 2019). "The Lost Worlds of Telnet".
Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Telnet — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report