telnetd -- TELNET protocol server


in.telnetd [ -Uhn ] [ -D debug_mode ] [ -K n ] [ -N n ] [ -k n ] [ -u len ] [ -debug ] [ port ]


The telnetd command is a server which supports the Internet standard TELNET virtual terminal protocol. telnetd is invoked by the Internet server (see inetd(1Mtcp)) when it receives a request to connect to the TELNET port (see services(4tcp)).

The options are as follows:

Cause telnetd to refuse connections from addresses that cannot be mapped back into a symbolic name via the gethostbyaddr(3N) routine.

Normally, telnetd displays the system release, hostname, and terminal port prior to the login prompt. This option stops telnetd from displaying this information.

Disable keepalive messages.

-D debug_mode
Used for debugging purposes. This allows telnet to print out debugging information to the connection, thus enabling the user to see what telnetd is doing. debug_mode can be one of the following:

Exercise client (not currently implemented).

Display the received data stream.

Print information about the negotiation of the TELNET options.

Display data passed to the pseudo-terminal.

Print the options information, as well as some additional information about what processing is going on.

-K n
Specify the interval (in seconds) between keepalive probes if no response is received.

-N n
Specify the number of unanswered keepalive probes that will be sent prior to dropping the connection.

-k n
Specify the time (in seconds) that a connection must be idle before the first keepalive probe will be sent.

-u len
Specify the size of the field in the utmpx structure that holds the remote hostname. If the resolved hostname is longer than len, the dotted decimal value will be used instead. This allows hosts with long hostnames that overflow this field to be uniquely identified. Specifying a length of 0 indicates that only dotted decimal addresses should be put into the utmpx file.

Start up telnetd manually, instead of through inetd(1Mtcp). If started up in this manner, port may be specified to run telnetd on this alternate TCP port number.

The telnetd command operates by allocating a pseudo-terminal device for a client, thereby creating a login process which has the slave side of the pseudo-terminal serving as stdin, stdout, and stderr. telnetd manipulates the master side of the pseudo-terminal, implementing the TELNET protocol and parsing characters between the remote client and the login process.

When a TELNET session is started up, telnetd sends TELNET options to the client side, indicating a willingness to:

If the remote client is willing, the remote terminal type will be propagated to the environment of the created login process. The pseudo-terminal allocated to the client will be configured to operate in ``cooked'' mode, with TAB3 and ICRNL enabled (see termio(7)).

The telnetd command is willing to do: echo, binary, suppress go ahead, and timing mark.

The telnetd command is also willing to have the remote client do: binary, terminal type, terminal speed, window size, toggleflow control, environment, Xdisplay location, and suppress go ahead.


Transport-level keepalive messages are enabled unless the -n option is present. The use of keepalive messages allows sessions to be timed out if the client crashes or becomes unreachable.

The default keepalive values corresponding to the -K, -N and -k options are controlled by the parameters tcp_keepidle (7200 seconds), tcp_keepintvl (75 seconds), and tcp_nkeep (8). These can be tuned on a system-wide basis using inconfig(1Mtcp). These options exist solely to provide finer control of keepalives on a per-application basis.


configuration file for inetd

Internet services list


inconfig(1Mtcp), inetd(1Mtcp), inetd.conf(4tcp), services(4tcp), telnet(1tcp)

RFC 727, RFC 854, RFC 856, RFC 857, RFC 859, RFC 860, RFC 885, RFC 1073, RFC 1079, RFC 1091, RFC 1096, RFC 1123, RFC 1372, RFC 1572


Some TELNET commands are only partially implemented.

Because of bugs in the original 4.2 BSD version of telnet, telnetd performs some unreliable protocol exchanges to try to discover if the remote client is, in fact, a 4.2 BSD telnet.

Binary mode has no common interpretation except between similar operating systems (UNIX in this case).

The terminal type name received from the remote client will be converted into lowercase.

telnetd never sends TELNET go ahead commands.

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004