NAME¶
telnet —
user interface to the TELNET
protocol
SYNOPSIS¶
telnet |
[-468ELadr]
[-S tos]
[-b
address]
[-e
escapechar]
[-l user]
[-n
tracefile]
[host
[port]] |
DESCRIPTION¶
The
telnet command is used for interactive communication with
another host using the TELNET protocol. It begins in command mode, where it
prints a telnet prompt ("telnet> "). If
telnet
is invoked with a
host argument, it performs an
open command implicitly; see the description below.
Options:
- -4
- Force IPv4 address resolution.
- -6
- Force IPv6 address resolution.
- -8
- Request 8-bit operation. This causes an attempt to
negotiate the
TELNET BINARY
option for both input
and output. By default telnet is not 8-bit clean.
- -E
- Disables the escape character functionality; that is, sets
the escape character to ``no character''.
- -L
- Specifies an 8-bit data path on output. This causes the
TELNET BINARY
option to be negotiated on just
output.
- -a
- Attempt automatic login. Currently, this sends the user
name via the
USER
variable of the
ENVIRON
option if supported by the remote system.
The username is retrieved via getlogin(3).
- -b
address
- Use bind(2) on the local socket to bind it to a specific
local address.
- -d
- Sets the initial value of the debug
toggle to
TRUE.
- -r
- Emulate rlogin(1). In this mode, the
default escape character is a tilde. Also, the interpretation of the
escape character is changed: an escape character followed by a dot causes
telnet to disconnect from the remote host. A ^Z instead
of a dot suspends telnet, and a ^] (the default
telnet escape character) generates a normal telnet
prompt. These codes are accepted only at the beginning of a line.
- -S
tos
- Sets the IP type-of-service (TOS) option for the telnet
connection to the value tos.
- -e
escapechar
- Sets the escape character to
escapechar. If no character is supplied, no escape
character will be used. Entering the escape character while connected
causes telnet to drop to command mode.
- -l
user
- Specify user as the user to log in as
on the remote system. This is accomplished by sending the specified name
as the
USER
environment variable, so it requires
that the remote system support the TELNET ENVIRON
option. This option implies the -a option, and may also
be used with the open command.
- -n
tracefile
- Opens tracefile for recording trace
information. See the set tracefile command below.
- host
- Specifies a host to contact over the network.
- port
- Specifies a port number or service name to contact. If not
specified, the telnet port (23) is used.
Protocol:
Once a connection has been opened,
telnet will attempt to
enable the
TELNET LINEMODE
option. If this fails, then
telnet will revert to one of two input modes: either
“character at a time” or “old line by line” depending
on what the remote system supports.
When
LINEMODE
is enabled, character processing is done
on the local system, under the control of the remote system. When input
editing or character echoing is to be disabled, the remote system will relay
that information. The remote system will also relay changes to any special
characters that happen on the remote system, so that they can take effect on
the local system.
In “character at a time” mode, most text typed is immediately sent
to the remote host for processing.
In “old line by line” mode, all text is echoed locally, and
(normally) only completed lines are sent to the remote host. The “local
echo character” (initially “^E”) may be used to turn off and
on the local echo (this would mostly be used to enter passwords without the
password being echoed).
If the
LINEMODE
option is enabled, or if the
localchars toggle is
TRUE
(the
default for “old line by line“; see below), the user's
quit,
intr, and
flush
characters are trapped locally, and sent as TELNET protocol sequences to the
remote side. If
LINEMODE
has ever been enabled, then
the user's
susp and
eof are also sent as
TELNET protocol sequences, and
quit is sent as a
TELNET ABORT
instead of
BREAK
There are options (see
toggle autoflush
and
toggle autosynch below) which cause
this action to flush subsequent output to the terminal (until the remote host
acknowledges the TELNET sequence) and flush previous terminal input (in the
case of
quit and
intr).
Commands:
The following
telnet commands are available. Unique prefixes
are understood as abbreviations.
- auth
argument ...
- The auth command controls the
TELNET AUTHENTICATE
protocol option. If
telnet was compiled without authentication, the
auth command will not be supported. Valid arguments are
as follows:
- disable
type
- Disable the specified type of authentication. To obtain
a list of available types, use the auth disable ?
command.
- enable
type
- Enable the specified type of authentication. To obtain
a list of available types, use the auth enable ?
command.
- status
- List the current status of the various types of
authentication.
Note that the current version of telnet does not support
authentication.
- close
- Close the connection to the remote host, if any, and return
to command mode.
- display
argument ...
- Display all, or some, of the set and
toggle values (see below).
- encrypt
argument ...
- The encrypt command controls the
TELNET
ENCRYPT
protocol option. If telnet was compiled
without encryption, the encrypt command will not be
supported.
Valid arguments are as follows:
- disable
type [input|output]
- Disable the specified type of encryption. If you do not
specify input or output, encryption of both is disabled. To obtain a
list of available types, use ``encrypt disable ?''.
- enable
type [input|output]
- Enable the specified type of encryption. If you do not
specify input or output, encryption of both is enabled. To obtain a
list of available types, use ``encrypt enable ?''.
- input
- This is the same as ``encrypt start input''.
- -input
- This is the same as ``encrypt stop input''.
- output
- This is the same as ``encrypt start output''.
- -output
- This is the same as ``encrypt stop output''.
- start
[input|output]
- Attempt to begin encrypting. If you do not specify
input or output, encryption of both input and output is started.
- status
- Display the current status of the encryption
module.
- stop
[input|output]
- Stop encrypting. If you do not specify input or output,
encryption of both is stopped.
- type
type
- Sets the default type of encryption to be used with
later ``encrypt start'' or ``encrypt stop'' commands.
Note that the current version of telnet does not support
encryption.
- environ
arguments...
- The environ command is used to propagate
environment variables across the telnet link using the
TELNET ENVIRON
protocol option. All variables
exported from the shell are defined, but only the
DISPLAY
and PRINTER
variables are marked to be sent by default. The
USER
variable is marked to be sent if the
-a or -l command-line options were
used.
Valid arguments for the environ command are:
- define
variable value
- Define the variable variable to
have a value of value. Any variables defined by
this command are automatically marked for propagation (``exported'').
The value may be enclosed in single or double
quotes so that tabs and spaces may be included.
- undefine
variable
- Remove any existing definition of
variable.
- export
variable
- Mark the specified variable for propagation to the
remote host.
- unexport
variable
- Do not mark the specified variable for propagation to
the remote host. The remote host may still ask explicitly for
variables that are not exported.
- list
- List the current set of environment variables. Those
marked with a * will be propagated to the remote
host. The remote host may still ask explicitly for the rest.
- ?
- Prints out help information for the
environ command.
- logout
- Send the
TELNET LOGOUT
protocol
option to the remote host. This command is similar to a
close command. If the remote host does not support the
LOGOUT
option, nothing happens. But if it does,
this command should cause it to close the connection. If the remote side
also supports the concept of suspending a user's session for later
reattachment, the logout command indicates that the session should be
terminated immediately.
- mode
type
- Type is one of several options,
depending on the state of the session. Telnet asks the remote host to go
into the requested mode. If the remote host says it can, that mode takes
effect.
- character
- Disable the
TELNET LINEMODE
option, or, if the remote side does not understand the
LINEMODE
option, then enter “character
at a time“ mode.
- line
- Enable the
TELNET LINEMODE
option, or, if the remote side does not understand the
LINEMODE
option, then attempt to enter
“old-line-by-line“ mode.
- isig
(-isig)
- Attempt to enable (disable) the
TRAPSIG
mode of the
LINEMODE
option. This requires that the
LINEMODE
option be enabled.
- edit
(-edit)
- Attempt to enable (disable) the
EDIT
mode of the
LINEMODE
option. This requires that the
LINEMODE
option be enabled.
- softtabs
(-softtabs)
- Attempt to enable (disable) the
SOFT_TAB
mode of the
LINEMODE
option. This requires that the
LINEMODE
option be enabled.
- litecho
(-litecho)
- Attempt to enable (disable) the
LIT_ECHO
mode of the
LINEMODE
option. This requires that the
LINEMODE
option be enabled.
- ?
- Prints out help information for the
mode command.
- open
host
[[-l]
user][-
port]
- Open a connection to the named host. If no port number is
specified, telnet will attempt to contact a telnet
daemon at the standard port (23). The host specification may be a host
name or IP address. The -l option may be used to specify
a user name to be passed to the remote system, like the
-l command-line option.
When connecting to ports other than the telnet port,
telnet does not attempt telnet protocol negotiations.
This makes it possible to connect to services that do not support the
telnet protocol without making a mess. Protocol negotiation can be forced
by placing a dash before the port number.
After establishing a connection, any commands associated with the remote
host in /etc/telnetrc and the user's
.telnetrc file are executed, in that order.
The format of the telnetrc files is as follows: Lines beginning with a #,
and blank lines, are ignored. The rest of the file should consist of
hostnames and sequences of telnet commands to use with
that host. Commands should be one per line, indented by whitespace; lines
beginning without whitespace are interpreted as hostnames. Lines beginning
with the special hostname ‘
DEFAULT
’
will apply to all hosts. Hostnames including
‘DEFAULT
’ may be followed immediately
by a colon and a port number or string. If a port is specified it must
match exactly with what is specified on the command line. If no port was
specified on the command line, then the value
‘telnet
’ is used. Upon connecting to a
particular host, the commands associated with that host are executed.
- quit
- Close any open session and exit telnet.
An end of file condition on input, when in command mode, will trigger this
operation as well.
- send
arguments
- Send one or more special telnet protocol character
sequences to the remote host. The following are the codes which may be
specified (more than one may be used in one command):
- abort
- Sends the
TELNET ABORT
(Abort
Processes) sequence.
- ao
- Sends the
TELNET AO
(Abort
Output) sequence, which should cause the remote system to flush all
output from the remote system to
the user's terminal.
- ayt
- Sends the
TELNET AYT
(Are You
There?) sequence, to which the remote system may or may not choose to
respond.
- brk
- Sends the
TELNET BRK
(Break)
sequence, which may have significance to the remote system.
- ec
- Sends the
TELNET EC
(Erase
Character) sequence, which should cause the remote system to erase the
last character entered.
- el
- Sends the
TELNET EL
(Erase
Line) sequence, which should cause the remote system to erase the line
currently being entered.
- eof
- Sends the
TELNET EOF
(End Of
File) sequence.
- eor
- Sends the
TELNET EOR
(End of
Record) sequence.
- escape
- Sends the current telnet escape
character.
- ga
- Sends the
TELNET GA
(Go Ahead)
sequence, which likely has no significance to the remote system.
- getstatus
- If the remote side supports the
TELNET
STATUS
command, getstatus will send the
subnegotiation to request that the server send its current option
status.
- ip
- Sends the
TELNET IP
(Interrupt
Process) sequence, which should cause the remote system to abort the
currently running process.
- nop
- Sends the
TELNET NOP
(No
Operation) sequence.
- susp
- Sends the
TELNET SUSP
(Suspend
Process) sequence.
- synch
- Sends the
TELNET SYNCH
sequence. This sequence causes the remote system to discard all
previously typed (but not yet read) input. This sequence is sent as
TCP urgent data (and may not work if the remote system is a
4.2BSD system -- if it doesn't work, a lower
case “r” may be echoed on the terminal).
- do
cmd
-
- dont
cmd
-
- will
cmd
-
- wont
cmd
- Sends the
TELNET DO
cmd sequence. cmd can be
either a decimal number between 0 and 255, or a symbolic name for a
specific TELNET
command.
cmd can also be either help or
? to print out help information, including a list of
known symbolic names.
- ?
- Prints out help information for the
send command.
- set
argument value
-
- unset
argument value
- The set command will set any one of a
number of telnet variables to a specific value or to
TRUE
. The special value off
turns off the function associated with the variable. This is equivalent to
using the unset command. The unset
command will disable or set to FALSE
any of the
specified variables. The values of variables may be interrogated with the
display command. The variables which may be set or
unset, but not toggled, are listed here. In addition, any of the variables
for the toggle command may be explicitly set or unset.
- ayt
- If telnet is in localchars mode, or
LINEMODE
is enabled, and the status character
is typed, a TELNET AYT
sequence is sent to the
remote host. The initial value for the "Are You There"
character is the terminal's status character.
- echo
- This is the value (initially “^E”) which,
when in “line by line” mode, toggles between doing local
echoing of entered characters (for normal processing), and suppressing
echoing of entered characters (for entering, say, a password).
- eof
- If telnet is operating in
LINEMODE
or “old line by line”
mode, entering this character as the first character on a line will
cause this character to be sent to the remote system. The initial
value of the eof character is taken to be the terminal's
eof character.
- erase
- If telnet is in
localchars mode (see toggle
localchars below), and if
telnet is operating in “character at a
time” mode, then when this character is typed, a
TELNET EC
sequence (see send
ec above) is sent to the remote system. The initial
value for the erase character is taken to be the terminal's
erase character.
- escape
- This is the telnet escape character
(initially “^[”) which causes entry into
telnet command mode (when connected to a remote
system).
- flushoutput
- If telnet is in
localchars mode (see toggle
localchars below) and the
flushoutput character is typed, a
TELNET AO
sequence (see send
ao above) is sent to the remote host. The initial
value for the flush character is taken to be the terminal's
flush character.
- forw1
-
- forw2
- If TELNET is operating in
LINEMODE
, these are the characters that, when
typed, cause partial lines to be forwarded to the remote system. The
initial value for the forwarding characters are taken from the
terminal's eol and eol2 characters.
- interrupt
- If telnet is in
localchars mode (see toggle
localchars below) and the
interrupt character is typed, a
TELNET IP
sequence (see send
ip above) is sent to the remote host. The initial
value for the interrupt character is taken to be the terminal's
intr character.
- kill
- If telnet is in
localchars mode (see toggle
localchars below), and if
telnet is operating in “character at a
time” mode, then when this character is typed, a
TELNET EL
sequence (see send
el above) is sent to the remote system. The initial
value for the kill character is taken to be the terminal's
kill character.
- lnext
- If telnet is operating in
LINEMODE
or “old line by line“
mode, then this character is taken to be the terminal's
lnext character. The initial value for the lnext
character is taken to be the terminal's lnext
character.
- quit
- If telnet is in
localchars mode (see toggle
localchars below) and the quit
character is typed, a
TELNET BRK
sequence (see
send brk above) is sent to the
remote host. The initial value for the quit character is taken to be
the terminal's quit character.
- reprint
- If telnet is operating in
LINEMODE
or “old line by line“
mode, then this character is taken to be the terminal's
reprint character. The initial value for the reprint
character is taken to be the terminal's reprint
character.
- rlogin
- This is the rlogin mode escape character. Setting it
enables rlogin mode, as with the r command-line
option (q.v.)
- start
- If the
TELNET
TOGGLE-FLOW-CONTROL
option has been enabled, then this
character is taken to be the terminal's start
character. The initial value for the kill character is taken to be the
terminal's start character.
- stop
- If the
TELNET
TOGGLE-FLOW-CONTROL
option has been enabled, then this
character is taken to be the terminal's stop
character. The initial value for the kill character is taken to be the
terminal's stop character.
- susp
- If telnet is in
localchars mode, or
LINEMODE
is enabled, and the suspend character is typed, a
TELNET SUSP
sequence (see
send susp above) is sent to the
remote host. The initial value for the suspend character is taken to
be the terminal's suspend character.
- tracefile
- This is the file to which the output, caused by
netdata or option tracing being
TRUE
, will be written. If it is set to
“-”, then tracing information will be
written to standard output (the default).
- worderase
- If telnet is operating in
LINEMODE
or “old line by line“
mode, then this character is taken to be the terminal's
worderase character. The initial value for the
worderase character is taken to be the terminal's
worderase character.
- ?
- Displays the legal set
(unset) commands.
- slc
state
- The slc command (Set Local Characters) is
used to set or change the state of the the special characters when the
TELNET LINEMODE
option has been enabled. Special
characters are characters that get mapped to TELNET commands sequences
(like ip or quit) or line editing
characters (like erase and kill). By
default, the local special characters are exported.
- check
- Verify the current settings for the current special
characters. The remote side is requested to send all the current
special character settings, and if there are any discrepancies with
the local side, the local side will switch to the remote value.
- export
- Switch to the local defaults for the special
characters. The local default characters are those of the local
terminal at the time when telnet was started.
- import
- Switch to the remote defaults for the special
characters. The remote default characters are those of the remote
system at the time when the TELNET connection was established.
- ?
- Prints out help information for the
slc command.
- status
- Show the current status of telnet. This
includes the name of the remote host, if any, as well as the current
mode.
- toggle
arguments ...
- Toggle (between
TRUE
and
FALSE
) various flags that control how
telnet responds to events. These flags may be set
explicitly to TRUE
or
FALSE
using the set and
unset commands. More than one flag may be toggled at
once. The state of these flags may be examined with the
display command. Valid flags are:
- authdebug
- Turns on debugging for the authentication code. This
flag only exists if authentication support is enabled.
- autoflush
- If autoflush and
localchars are both
TRUE
,
then when the ao, or quit
characters are recognized (and transformed into TELNET sequences; see
set above for details), telnet
refuses to display any data on the user's terminal until the remote
system acknowledges (via a TELNET TIMING MARK
option) that it has processed those TELNET sequences. The initial
value for this toggle is TRUE
if the terminal
user had not done an "stty noflsh", otherwise
FALSE
(see stty(1)).
- autodecrypt
- When the
TELNET ENCRYPT
option
is negotiated, by default the actual encryption (decryption) of the
data stream does not start automatically. The autoencrypt
(autodecrypt) command states that encryption of the output (input)
stream should be enabled as soon as possible.
Note that this flag exists only if encryption support is enabled.
- autologin
- If the remote side supports the
TELNET
AUTHENTICATION
option, telnet attempts to use it to perform
automatic authentication. If the TELNET
AUTHENTICATION
option is not supported, the user's login name
is propagated using the TELNET ENVIRON
option.
Setting this flag is the same as specifying the
a option to the open command
or on the command line.
- autosynch
- If autosynch and
localchars are both
TRUE
,
then when either the intr or quit
characters is typed (see set above for descriptions
of the intr and quit characters),
the resulting telnet sequence sent is followed by the
TELNET SYNCH
sequence. This procedure
should cause the remote system to begin throwing
away all previously typed input until both of the telnet sequences
have been read and acted upon. The initial value of this toggle is
FALSE
.
- binary
- Enable or disable the
TELNET
BINARY
option on both input and output.
- inbinary
- Enable or disable the
TELNET
BINARY
option on input.
- outbinary
- Enable or disable the
TELNET
BINARY
option on output.
- crlf
- If this is
TRUE
, then carriage
returns will be sent as <CR><LF>
.
If this is FALSE
, then carriage returns will
be send as <CR><NUL>
. The initial
value for this toggle is FALSE
.
- crmod
- Toggle carriage return mode. When this mode is enabled,
most carriage return characters received from the remote host will be
mapped into a carriage return followed by a line feed. This mode does
not affect those characters typed by the user, only those received
from the remote host. This mode is not very useful unless the remote
host only sends carriage return, but never line feed. The initial
value for this toggle is
FALSE
.
- debug
- Toggles socket level debugging (useful only to the
super user). The initial value for this toggle is
FALSE
.
- encdebug
- Turns on debugging information for the encryption code.
Note that this flag only exists if encryption support is
available.
- localchars
- If this is
TRUE
, then the
flush, interrupt,
quit, erase, and
kill characters (see set above)
are recognized locally, and transformed into (hopefully) appropriate
TELNET control sequences (respectively ao,
ip, brk, ec, and
el; see send above). The initial
value for this toggle is TRUE
in “old
line by line” mode, and FALSE
in
“character at a time” mode. When the
LINEMODE
option is enabled, the value of
localchars is ignored, and assumed to always be
TRUE
. If LINEMODE
has
ever been enabled, then quit is sent as
abort, and eof and are sent as
eof and susp, see
send above).
- netdata
- Toggles the display of all network data (in hexadecimal
format). The initial value for this toggle is
FALSE
.
- options
- Toggles the display of some internal
telnet protocol processing (having to do with telnet
options). The initial value for this toggle is
FALSE
.
- prettydump
- When the netdata toggle is enabled,
if prettydump is enabled the output from the
netdata command will be formatted in a more
user-readable format. Spaces are put between each character in the
output, and the beginning of telnet escape sequences are preceded by a
'*' to aid in locating them.
- skiprc
- When the skiprc toggle is
TRUE
,
telnet does not read the telnetrc files. The initial value for this
toggle is FALSE.
- termdata
- Toggles the display of all terminal data (in
hexadecimal format). The initial value for this toggle is
FALSE
.
- verbose_encrypt
- When the verbose_encrypt toggle is
TRUE
, TELNET prints out a message each time
encryption is enabled or disabled. The initial value for this toggle
is FALSE.
This flag only exists if encryption
support is available.
- ?
- Displays the legal toggle
commands.
- z
- Suspend telnet. This command only works
when the user is using the csh(1).
- !
[command]
- Execute a single command in a subshell on the local system.
If command is omitted, then an interactive subshell is
invoked.
- ?
[command]
- Get help. With no arguments, telnet
prints a help summary. If a command is specified, telnet
will print the help information for just that command.
ENVIRONMENT¶
Telnet uses at least the
HOME
,
SHELL
,
DISPLAY
, and
TERM
environment variables. Other environment
variables may be propagated to the other side via the
TELNET
ENVIRON
option.
FILES¶
- /etc/telnetrc
- global telnet startup values
- ~/.telnetrc
- user customized telnet startup values
HISTORY¶
The
Telnet command appeared in
4.2BSD.
NOTES¶
On some remote systems, echo has to be turned off manually when in “old
line by line” mode.
In “old line by line” mode or
LINEMODE
the
terminal's
eof character is only recognized (and sent to the
remote system) when it is the first character on a line.
BUGS¶
The source code is not comprehensible.