w:en:Telnet

{{Short description|Network protocol for bidirectional communication using a virtual terminal connection}}

{{Distinguish|Telenet}}

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.{{Cite book |last1=Valenčić |first1=D. |last2=Mateljan |first2=V. |title=2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO) |chapter=Implementation of NETCONF Protocol |date=2019 |chapter-url=https://ieeexplore.ieee.org/document/8756925 |pages=421–430 |doi=10.23919/MIPRO.2019.8756925|isbn=978-953-233-098-4 |s2cid=195883872 }} 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 itself 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.{{Cite book |last1=Daş |first1=Resul |last2=Karabade |first2=Abubakar |last3=Tuna |first3=Gurkan |title=2015 23nd Signal Processing and Communications Applications Conference (SIU) |chapter=Common network attack types and defense mechanisms |date=2015 |chapter-url=https://ieeexplore.ieee.org/document/7130435 |pages=2658–2661 |doi=10.1109/SIU.2015.7130435|isbn=978-1-4673-7386-9 |s2cid=11256038 }} Telnet's use for this purpose has waned significantly in favor of SSH.{{Cite book |last=Todorov |first=Dobromir |url=https://www.worldcat.org/oclc/263353270 |title=Mechanics of user identification and authentication : fundamentals of identity management |date=2007 |publisher=Auerbach Publications |isbn=978-1-4200-5220-6 |location=Boca Raton |oclc=263353270}} Some extensions to Telnet which would provide encryption have been proposed.{{IPstack}}

Description

{{expand section|with=more details about the protocol itself|talk=Additional description|date=April 2025}}

The telnet protocol is a client-server protocol that runs on a reliable connection-oriented transport.{{citation needed|reason=This is basically true, but not stated in the source previously cited here.|date=April 2025}} Most often, a telnet client connects over TCP to port 23 or 2323, where a Telnet server application is listening.{{Cite IETF|last1=Postel |first1=J. |last2=Reynolds |first2=J. K. |date=1983 |title=Telnet Protocol Specification |rfc=854 |journal=Network Working Group |issn=2070-1721 }}{{Cite web |title=Service Name and Transport Protocol Port Number Registry |url=https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml |access-date=2023-01-12 |website=www.iana.org}}{{Cite book |last1=Srinivasa |first1=Shreyas |last2=Pedersen |first2=Jens Myrup |last3=Vasilomanolakis |first3=Emmanouil |title=Proceedings of the 21st ACM Internet Measurement Conference |chapter=Open for hire |date=2021-11-02 |chapter-url=https://doi.org/10.1145/3487552.3487833 |series=IMC '21 |location=New York, NY, USA |publisher=Association for Computing Machinery |pages=195–215 |doi=10.1145/3487552.3487833 |isbn=978-1-4503-9129-0|s2cid=240357287 }} 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).{{Cite IETF|last=Postel |first=J. |date=1981 |title=NCP/TCP transition plan |rfc=801 |journal=Network Working Group |issn=2070-1721}} 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.{{citation needed|date=April 2025}}

= Name =

While the official specification stylizes the name as TELNET, it is not defined therein 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."{{cite book |last1=Crocker|first1=Stephen D.|last2=Heafner|first2=John F.|last3=Metcalfe|first3=Robert M.|last4=Postel|first4=Jonathan B.|chapter=Function-oriented protocols for the ARPA computer network |title = Proceedings of the November 16-18, 1971, fall joint computer conference on - AFIPS '71 (Fall)|year = 1971 |publisher = Association for Computing Machinery|doi = 10.1145/1478873.1478908 |isbn = 9781450379090 |pages = 271–279}}

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."{{cite book |last=Bruen |first=Garth O. |title=WHOIS Running the Internet: Protocol, Policy, and Privacy |publisher=Wiley |year=2015 |isbn=9781118679555 |edition=1st |page=25}}

History

Telnet was originally developed for ARPANET in 1969.{{cite book

|last1=Kozierok

|first1=Charles M.

|title=The TCP/IP Guide : a comprehensive, illustrated internet protocols reference

|date=2005

|publisher=No Starch Press

|location=San Francisco

|isbn=1-59327-047-X

|page=1439

|url=http://www.tcpipguide.com/

|access-date=5 April 2025

}} Initially, it was an ad hoc protocol with no formal specification,{{cite IETF|rfc=318 |title=Telnet Protocol |date=April 3, 1972}} but after extensive work in the 1970s, including numerous RFCs, it was officially formalized in {{IETF RFC|854}} and {{IETF RFC|855}}, which together form internet standard 8.{{cite IETF

|title=Internet Standard 8

|last1=Postel

|first1=J.

|last2=Reynolds

|first2=J.

|date=May 1983

|publisher=IETF

|access-date=2025-04-06

|std=8

}}

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.

{{Citation |last1=Shimonski |first1=Robert J. |title=Chapter 11 - Detecting and Performing Security Breaches with Sniffer Pro |date=2002-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9781931836579500150 |work=Sniffer Pro Network Optimization and Troubleshooting Handbook |pages=513–565 |editor-last=Shimonski |editor-first=Robert J. |place=Burlington |publisher=Syngress |language=en |isbn=978-1-931836-57-9 |access-date=2023-01-12 |last2=Eaton |first2=Wally |last3=Khan |first3=Umer |last4=Gordienko |first4=Yuri |editor2-last=Eaton |editor2-first=Wally |editor3-last=Khan |editor3-first=Umer |editor4-last=Gordienko |editor4-first=Yuri |doi=10.1016/B978-193183657-9/50015-0}}

{{Cite book |last1=Samtani |first1=Sagar |last2=Yu |first2=Shuo |last3=Zhu |first3=Hongyi |last4=Patton |first4=Mark |last5=Chen |first5=Hsinchun |title=2016 IEEE Conference on Intelligence and Security Informatics (ISI) |chapter=Identifying SCADA vulnerabilities using passive and active vulnerability assessment techniques |date=2016 |chapter-url=https://ieeexplore.ieee.org/document/7745438 |pages=25–30 |doi=10.1109/ISI.2016.7745438|isbn=978-1-5090-3865-7 |s2cid=11741873 }}

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 {{Citation needed|date=July 2024}}. 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:{{Cite web |last=Kirk |first=Jeremy |date=2007-02-12 |title=Zero-day flaw in Solaris allows remote attacks |url=https://www.networkworld.com/article/2295079/zero-day-flaw-in-solaris-allows-remote-attacks.html |access-date=2023-01-12 |website=Network World |language=en}}

  • 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.{{Cite book |last=Mahmood |first=H.B. |title=9th Asia-Pacific Conference on Communications (IEEE Cat. No.03EX732) |chapter=Transport layer security protocol in Telnet |date=2003 |chapter-url=https://ieeexplore.ieee.org/document/1274255 |volume=3 |pages=1033–1037 Vol.3 |doi=10.1109/APCC.2003.1274255|isbn=0-7803-8114-9 |s2cid=56798078 }} 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).{{cite web |title=TCP/IP Ports Required for IBM i Access and Related Functions |url=http://www-01.ibm.com/support/docview.wss?uid=nas8N1019667 |url-status=live |archive-url=https://web.archive.org/web/20160918095706/http://www-01.ibm.com/support/docview.wss?uid=nas8N1019667 |archive-date=2016-09-18 |publisher=IBM Support |access-date=2016-09-07}}

Uses

File:Busybox DG834Gt.PNG running under the Microsoft Telnet Client from a router.|alt=Screenshot of a black screen with the output of the help command and a # prompt.|left]]

= 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.{{Cite book |last=Todorov |first=Dobromir |url=https://www.worldcat.org/oclc/263353270 |title=Mechanics of user identification and authentication : fundamentals of identity management |date=2007 |publisher=Auerbach Publications |isbn=978-1-4200-5220-6 |location=Boca Raton |oclc=263353270}} The usage of Telnet for remote management has declined rapidly, especially on the public Internet, in favor of the Secure Shell (SSH) protocol.{{cite magazine |last1=Poulsen |first1=Kevin |date=2 April 2007 |title=Telnet, dead at 35...RIP |url=https://www.wired.com/2007/04/telnet_dead_at_/ |url-status=live |magazine=Wired |page=24 |archive-url=https://web.archive.org/web/20161221012744/https://www.wired.com/2007/04/telnet_dead_at_/ |archive-date=21 December 2016 |access-date=14 June 2017}} 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 =

The Telnet protocol is mainly used for legacy equipment that does not support more modern communication mechanisms.{{cite web |last1=Ylonen |first1=Tatu |title=History of the SSH Protocol |url=https://www.ssh.com/ssh/telnet |url-status=live |archive-url=https://web.archive.org/web/20180725073549/https://www.ssh.com/ssh/telnet |archive-date=25 July 2018 |access-date=14 June 2017 |website=SSH home page |publisher=SSH Communications Security, Inc.}} 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).{{citation needed|reason=The provided source only states that telnet is used for legacy applications; the details about legacy systems are all unsourced.|date=April 2025}}

Telnet is commonly used by amateur radio operators for providing public information.{{Cite web |title=What is Telnet? {{!}} PDF {{!}} Networking Standards {{!}} Internet Standards |url=https://www.scribd.com/document/514519676/Telnet |access-date=2023-01-12 |website=Scribd |language=en}}

Despite recommendations against 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.{{Cite web |title=Debugging server services with telnet |url=https://www.sysadmin.md/debugging-server-services-with-telnet.html |access-date=2023-01-12 |website=www.sysadmin.md |language=en}}{{Better source needed|reason=The website shown demonstrates such usage, but does not discuss how it works or that it is widely used.|date=April 2025}}

Technical details

The technical details of Telnet are defined by a variety of specifications including {{IETF RFC| 854}}.

= USASCII control codes =

class="wikitable"

!Name

!Byte code

!Explanation

!Notes

NULL

|0

|

|

Line feed

|10

|

|

Carriage return

|13

|

|

Bell

|7

|

|

Backspace

|8

|

|

Horizontal tab

|9

|

|

Vertical tab

|11

|

|

Form feed

|12

|

|

colspan="4" |Source: J. Postel and Reynolds (1983)

= 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:

class="wikitable"

|+

!Name

!Byte code

!Explanation

!Notes

SE (Subnegotiation end)

|240

|End of negotiation (or data block) of a sub-service of a protocol mechanism

|

NOP (No operation)

|241

|Data packet that does nothing

|

Data Mark

|242

|

|

Break

|243

|

|

Interrupt Process

|244

|Request that other party ends current process

|

Abort output

|245

|Request that other party stops sending output

|

Are you there?

|246

|

|

Erase character

|247

|

|

Erase Line

|248

|

|

Go ahead

|249

|

|

SB (Subnegotiation begin)

|250

|Initiate the negotiation of a sub-service of a protocol mechanism

|

WILL

|251

|Informs other party that this party will use a protocol mechanism

|

WON'T

|252

|Informs other party that this party will not use a protocol mechanism

|

DO

|253

|Instruct other party to use a protocol mechanism

|

DON'T

|254

|Instruct other party to not use a protocol mechanism

|

IAC

|255

|Sequence Initializer/Escape Character

|

colspan="4" |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.)

= Telnet options =

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

class="wikitable"

|+Telnet Options

!Code

!Name

!Spec

! style=width:50% | Notes

0

|Binary Transmission

|{{IETF RFC| 856}}

|{{small|The 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,{{cite IETF|rfc= 2066 |title= TELNET CHARSET Option}} but nothing is known about its actual software support.}}

1

|Echo

|{{IETF RFC| 857}}

|

2

|Reconnection

|NIC 15391 of 1973

|

3

|Suppress Go Ahead

|{{IETF RFC| 858}}

|The "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.

4

|Approx Message Size Negotiation

|NIC 15393 of 1973

|

5

|Status

|{{IETF RFC| 859}}

|

6

|Timing Mark

|{{IETF RFC| 860}}

|

7

|Remote Controlled Trans and Echo

|{{IETF RFC| 726}}

|

8

|Output Line Width

|NIC 20196 of August 1978

|

9

|Output Page Size

|NIC 20197 of August 1978

|

10

|Output Carriage-Return Disposition

|{{IETF RFC| 652}}

|

11

|Output Horizontal Tab Stops

|{{IETF RFC| 653}}

|

12

|Output Horizontal Tab Disposition

|{{IETF RFC| 654}}

|

13

|Output Formfeed Disposition

|{{IETF RFC| 655}}

|

14

|Output Vertical Tabstops

|{{IETF RFC| 656}}

|

15

|Output Vertical Tab Disposition

|{{IETF RFC| 657}}

|

16

|Output Linefeed Disposition

|{{IETF RFC| 658}}

|

17

|Extended ASCII

|{{IETF RFC| 698}}

|

18

|Logout

|{{IETF RFC| 727}}

|

19

|Byte Macro

|{{IETF RFC| 735}}

|

20

|Data Entry Terminal

|{{plainlist|* {{IETF RFC| 1043}}

  • {{IETF RFC| 732}}}}

|

21

|SUPDUP

|{{plainlist| * {{IETF RFC| 736}}

  • {{IETF RFC| 734}}}}

|

22

|SUPDUP Output

|{{IETF RFC| 749}}

|

23

|Send Location

|{{IETF RFC| 779}}

|

24

|Terminal Type

|{{IETF RFC| 1091}}

|

25

|End of Record

|{{IETF RFC| 885}}

|

26

|TACACS User Identification

|{{IETF RFC| 927}}

|

27

|Output Marking

|{{IETF RFC| 933}}

|

28

|Terminal Location Number

|{{IETF RFC| 946}}

|

29

|Telnet 3270 Regime

|{{IETF RFC| 1041}}

|

30

|X.3 PAD

|{{IETF RFC| 1053}}

|

31

|Negotiate About Window Size

|{{IETF RFC| 1073}}

|

32

|Terminal Speed

|{{IETF RFC| 1079}}

|

33

|Remote Flow Control

|{{IETF RFC| 1372}}

|

34

|Linemode

|{{IETF RFC| 1184}}

|

35

|X Display Location

|{{IETF RFC| 1096}}

|

36

|Environment Option

|{{IETF RFC| 1408}}

|

37

|Authentication Option

|{{IETF RFC| 2941}}

|

38

|Encryption Option

|{{IETF RFC| 2946}}

|

39

|New Environment Option

|{{IETF RFC| 1572}}

|

40

|TN3270E

|{{IETF RFC| 2355}}

|See IBM 3270

41

|XAUTH

|

|

42

|CHARSET

|{{IETF RFC| 2066}}

|

43

|Telnet Remote Serial Port (RSP)

|

|

44

|Com Port Control Option

|{{IETF RFC| 2217}}

|

45

|Telnet Suppress Local Echo

|

|

46

|Telnet Start TLS

|

|

47

|KERMIT

|{{IETF RFC| 2840}}

|See Kermit (protocol)

48

|SEND-URL

|

|

49

|FORWARD_X

|

|

50-137

|Unassigned

|

|

138

|TELOPT PRAGMA LOGON

|

|

139

|TELOPT SSPI LOGON

|

|

140

|TELOPT PRAGMA HEARTBEAT

|

|

141-254

|Unassigned

|

|

255

|Extended-Options-List

|{{IETF RFC| 861}}

|

colspan="4" |{{center|Source: Internet Assigned Numbers Authority (n.d.){{Cite web |title=Telnet Options |url=https://www.iana.org/assignments/telnet-options/telnet-options.xhtml |access-date=2023-01-12 |website=www.iana.org}}}}

Telnet clients

See also

References

{{reflist}}

Further reading

=Internet Standards=

  • {{IETF RFC|854}}, Telnet Protocol Specification
  • {{IETF RFC|855}}, Telnet Option Specifications
  • {{IETF RFC|856}}, Telnet Binary Transmission
  • {{IETF RFC|857}}, Telnet Echo Option
  • {{IETF RFC|858}}, Telnet Suppress Go Ahead Option
  • {{IETF RFC|859}}, Telnet Status Option
  • {{IETF RFC|860}}, Telnet Timing Mark Option
  • {{IETF RFC|861}}, Telnet Extended Options: List Option

=Proposed Standards=

  • {{IETF RFC|885}}, Telnet End of Record Option
  • {{IETF RFC|1073}}, Telnet Window Size Option
  • {{IETF RFC|1079}}, Telnet Terminal Speed Option
  • {{IETF RFC|1091}}, Telnet Terminal-Type Option
  • {{IETF RFC|1096}}, Telnet X Display Location Option
  • {{IETF RFC|1123}}, Requirements for Internet Hosts - Application and Support
  • {{IETF RFC|1184}}, Telnet Linemode Option
  • {{IETF RFC|1372}}, Telnet Remote Flow Control Option
  • {{IETF RFC|1572}}, Telnet Environment Option
  • {{IETF RFC|2941}}, Telnet Authentication Option
  • {{IETF RFC|2942}}, Telnet Authentication: Kerberos Version 5
  • {{IETF RFC|2943}}, TELNET Authentication Using DSA
  • {{IETF RFC|2944}}, Telnet Authentication: SRP
  • {{IETF RFC|2946}}, Telnet Data Encryption Option
  • {{IETF RFC|4248}}, The telnet URI Scheme

=Informational/experimental=

  • {{IETF RFC|1143}}, The Q Method of Implementing TELNET Option Negotiation
  • {{IETF RFC|1571}}, Telnet Environment Option Interoperability Issues
  • {{IETF RFC|2066}}, TELNET CHARSET Option

=Other RFCs=

  • {{IETF RFC|748}}, TELNET RANDOMLY-LOSE Option (April Fool's Day RFC joke)
  • {{IETF RFC|1041}}, Telnet 3270 Regime Option
  • {{IETF RFC|1097}}, TELNET SUBLIMINAL-MESSAGE Option (April Fool's Day RFC joke)
  • {{IETF RFC|1205}}, 5250 Telnet Interface
  • {{IETF RFC|2355}}, TN3270 Enhancements
  • {{IETF RFC|2217}}, Telnet Com Port Control Option
  • {{IETF RFC|4777}}, IBM's iSeries Telnet Enhancements