Go to main content

手册页部分 1:用户命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

telnet(1)

名称

telnet - 使用 TELNET 协议与远程系统通信的用户接口

用法概要

telnet [-8ELcdr] [-e escape_char] [-l user] [-n file]
     [ [ [!] @hop1 [@hop2...] @] host [port]]

描述


Caution

注意  -  All data exchanges over this protocol are performed without encryption, and have no protection against spoofing or snooping of traffic.The in.telnetd server is disabled by default on Oracle Solaris and most other modern operating systems, and both the in.telnetd server and the telnet command may be removed in future versions of Oracle Solaris.For remote logins, ssh(1) is strongly recommended over telnet.For raw connections to network ports, nc(1) is recommended over telnet.


telnet 实用程序可使用 TELNET 协议与其他主机通信。If telnet is invoked without arguments, it enters command mode, indicated by its prompt, telnet>.在该模式下,它可接受并执行关联的命令。See USAGE.如果在调用它的同时指定了参数,将根据这些参数执行 open 命令。

例如,如果将 host 指定为 @hop1@hop2@host,连接将通过主机 hop1hop2,使用稀疏源路由在 host 处结束。如果使用了前导 !,连接将遵循严格的源路由。请注意,telnet 使用 IPv6 时,只能使用稀疏源路由,连接将忽略 !

一旦打开连接,telnet 便进入输入模式。在该模式下,会将键入的文本发送到远程主机。根据远程系统的具体支持,进入的输入模式将为“行模式”、“每次传送一个字符”或“逐行处理”。

在“行模式”下,将在远程系统的控制下在本地系统上完成字符处理。如果要禁用输入编辑或字符回显,远程系统将传递相应的信息。远程系统还会传递在远程系统上对任何特殊字符的更改,以使其在本地系统上生效。

在“每次传送一个字符”模式下,会将键入的大部分文本立即发送到远程主机进行处理。

在“逐行处理”模式下,所有文本都在本地回显,并且(通常)只将完整的行发送到远程主机。可以使用“本地回显字符”(以 ^E 开头)禁用和启用本地回显。(利用该设置主要是为了输入口令而不回显口令。)

如果启用了“行模式”选项或者如果将 localchars 切换到 TRUE(“逐行处理”模式下的缺省设置),用户的 quitintrflush 字符将在本地滞留,作为 TELNET 协议序列发送到远程端。如果启用过“行模式”,则用户的 suspeof 也作为 TELNET 协议序列发送。quit 则作为 TELNET ABORT 而非 BREAK 发送。选项 toggle autoflushtoggle autosynch 会导致该操作将后续输出驱逐到终端(直到远程主机确认 TELNET 序列为止);而选项 quitintr 会导致该操作清空之前的终端输入。

连接到远程主机时,用户可通过键入 telnet 转义符(以 ^] 开头)进入 telnet 命令模式。在命令模式下,可以遵循正常的终端编辑约定。在 telnet 命令提示符中按 RETURN 键会导致 telnet 退出命令模式。

选项

支持以下选项:

–8

指定一个 8 位数据路径。将尝试对输入和输出协商 TELNET BINARY 选项。

–c

禁止读取用户的 telnetrc 文件。(请参见本参考页上的 toggle skiprc 命令。)

–d

debug 切换的初始值设置为 TRUE

–e escape_char

将初始转义符设置为 escape_charescape_char 也可以是包含两个字符的序列:^(Ctrl 键)后跟一个字符。如果第二个字符为 ?,则选择 DEL 字符。否则,会将第二个字符转换为控制字符并用作转义符。如果将 escape_char 定义为空字符串(即 –e ''),这会等效于 –e '^@' (Ctrl-@)。要指定任何字符均不能为转义符,请使用 –E 选项。

–E

防止任何字符被识别为转义符。

–l user

如果连接到的远程系统了解 ENVIRON 选项,则会将 user 作为 ENVIRON 变量 USER 的值发送到远程系统。

–L

指定输出时使用的一个 8 位数据路径。这样会导致输出时协商 BINARY 选项。

–n tracefile

打开用于记录跟踪信息的 tracefile。请参见下文的 set tracefile 命令。

–r

指定类似于 rlogin 的用户接口。在该模式下,转义符设置为波浪号 (~) 字符,除非使用 –e 选项修改。仅当 rlogin 转义符前面有回车时才能将其识别。在该模式下,telnet 转义符(通常为 '^]')还必须位于 telnet 命令前面。The rlogin escape character can also be followed by '.\r' or '^Z', and, like rlogin(1), closes or suspends the connection, respectively.该选项是一个未确定接口,将来可能会发生更改。

用法

telnet Commands

本部分介绍 telnet 提供的命令。有必要对各项命令的篇幅加以限制,只够对其进行唯一标识即可。(This is also true for arguments to the mode, set, toggle, unset, environ, and display commands.)

auth argument ...

auth 命令操控通过 TELNET AUTHENTICATE 选项发送的信息。auth 命令的有效参数如下:

disable type

禁用指定的验证类型。要获取可用类型的列表,请使用 auth disable ? 命令。

enable type

启用指定的验证类型。要获取可用类型的列表,请使用 auth enable ? 命令。

status

列出各种验证类型的当前状态。

open [–l user ] [ [!] @hop1 [@hop2 ...]@host [ port ]

打开到指定主机的连接。如果未指定端口号,telnet 将尝试通过缺省端口联系 TELNET 服务器。主机规范可以是主机名(请参见 hosts(5))或在“点记法”中指定的 Internet 地址(请参见 inet(4P)inet6(4P))。If the host is specified as @hop1@hop2@host, the connection goes through hosts hop1 and hop2, using loose source routing to end at host.必须使用 @ 符号作为指定主机之间的分隔符。如果前导 ! 与 IPv4 一起使用,连接将遵循严格的源路由。

–l 选项可将 user 作为 ENVIRON 变量 USER 的值传递到远程系统。

close

关闭任何打开的 TELNET 会话。EOF(在命令模式下)也可关闭会话并退出。

quit

Same as close.

z

暂停 telnet。仅当用户在使用支持作业控制的 shell(例如 sh(1))时,该命令才会起作用。

mode type

要求远程主机具有相应的权限才能进入请求的模式。如果远程主机能够进入该模式,将进入请求的模式。参数 type 为以下值之一:

character

禁用 TELNET LINEMODE 选项,或者如果远程端不了解 LINEMODE 选项,则进入“每次传送一个字符”模式。

line

启用 TELNET LINEMODE 选项,或者如果远程端不了解 LINEMODE 选项,则尝试进入“逐行处理”模式。

isig (–isig)

尝试启用(禁用)LINEMODE 选项的 TRAPSIG 模式。该参数要求启用 LINEMODE 选项。

edit (–edit)

尝试启用(禁用)LINEMODE 选项的 EDIT 模式。该参数要求启用 LINEMODE 选项。

softtabs (–softtabs)

尝试启用(禁用)LINEMODE 选项的 SOFT_TAB 模式。该参数要求启用 LINEMODE 选项。

litecho (–litecho)

尝试启用(禁用)LINEMODE 选项的 LIT_ECHO 模式。该参数要求启用 LINEMODE 选项。

?

列显 mode 命令的帮助信息。

status

显示 telnet 的当前状态。其中包括连接到的对等方以及当前的模式。

display

[argument . . . ] 显示全部或部分 settoggle 值(请参见 toggle argument. . .)。

?

[command] 获取帮助。如果未指定参数,telnet 将列显帮助摘要。如果指定了某个命令,telnet 将只列显该命令的帮助信息。

send argument . . .

将一个或多个特殊字符序列发送到远程主机。可以指定的参数如下(一次可以指定多个参数):

escape

发送当前的 telnet 转义符(以 ^] 开头)。

synch

发送 TELNET SYNCH 序列。该序列将在远程系统上放弃之前键入但尚未读取的所有输入。该序列作为 TCP 紧急数据发送,如果远程系统为 4.2 BSD 系统,则该序列可能不起作用。如果它不起作用,可能会在终端上回显小写 “r”。

brkbreak

发送 TELNET BRK(中断)序列,该序列可能对远程系统有意义。

ip

发送 TELNET IP(中断进程)序列,该序列将异常中止远程系统上当前正在运行的进程。

abort

发送 TELNET ABORT(异常中止进程)序列。

ao

发送 TELNET AO(异常中止输出)序列,该序列会将所有输出从远程系统驱逐到用户的终端。

ayt

发送 TELNET AYT(请求资源)序列,远程系统可能对其响应,也可能不对其响应。

ec

发送 TELNET EC(清除字符)序列,该序列将清除输入的最后一个字符。

el

发送 TELNET EL(清除行)序列,该序列应该使远程系统清除当前正在输入的行。

eof

发送 TELNET EOF(文件结束)序列。

eor

发送 TELNET EOR(记录结束)序列。

ga

发送 TELNET GA(继续)序列,该序列可能对远程系统没有意义。

getstatus

如果远程端支持 TELNET STATUS 命令,getstatus 将发送子协商以请求服务器发送其当前的选项状态。

nop

发送 TELNET NOP(无操作)序列。

susp

发送 TELNET SUSP(暂停进程)序列。

do option
dont option
will option
wont option

发送指示的 TELNET 协议选项协商。选项可能是协议选项的文本名称或者对应于选项的编号。如果指示的选项协商在当前状态下无效,将无提示地忽略该命令。如果将 option 指定为 help?,则会列出已知选项名称的列表。该命令主要对不寻常的调试情况有用。

?

列显 send 命令的帮助信息。

set argument [value]
unset argument

将多个 telnet 变量中的任意一个设置为某个特定值。特殊值 off 将禁用与变量关联的函数。可使用 display 命令查询变量的值。If value is omitted, the value is taken to be true, or “on”.如果采用 unset 格式,则认为值是 false 或 off。可以指定以下变量:

echo

这是在“逐行处理”模式下时在本地回显输入的字符进行正常处理与禁止回显输入的字符(例如输入口令)之间切换的值(以 ^E 开头)。

escape

这是连接到远程系统时进入 telnet 命令模式的 telnet 转义符(以 ^] 开头)。

interrupt

如果 telnetlocalchars 模式下(请参见 togglelocalchars)且键入了 interrupt 字符,会将 TELNET IP 序列(请参见 sendip)发送到远程主机。认为中断字符的初始值是终端的 intr 字符。

quit

如果 telnetlocalchars 模式下且键入了 quit 字符,会将 TELNET BRK 序列(请参见 sendbrk)发送到远程主机。认为退出字符的初始值是终端的 quit 字符。

flushoutput

如果 telnetlocalchars 模式下且键入了 flushoutput 字符,会将 TELNET AO 序列(请参见 sendao)发送到远程主机。清空字符的初始值被视为终端的 flush 字符。

erase

If telnet is in localchars mode and operating in “character at a time” mode, then when the erase character is typed, a TELNET EC sequence (see send, ec) is sent to the remote system.认为 erase 字符的初始值是终端的 erase 字符。

kill

If telnet is in localchars mode and operating in “character at a time” mode, then when the kill character is typed, a TELNET EL sequence (see send, el) is sent to the remote system.kill 字符的初始值被视为终端的 kill 字符。

eof

如果 telnet 在“逐行处理”模式下运行,则输入 eof 字符作为行中第一个字符时,会将该字符发送到远程系统。The initial value of eof is taken to be the terminal's eof character.

ayt

如果 telnetlocalchars 模式下或启用了 LINEMODE 且键入了状态字符,则会将 TELNET AYT(“请求资源”)序列发送到远程主机。(See send, ayt above.)ayt 的初始值是终端的状态字符。

forw1
forw2

If telnet is operating in LINEMODE, and the forw1 or forw2 characters are typed, this causes the forwarding of partial lines to the remote system.转发字符的初始值来自终端的 eoleol2 字符。

lnext

如果 telnetLINEMODE 或“逐行处理”模式下运行,则假定 lnext 字符是终端的 lnext 字符。lnext 字符的初始值被视为终端的 lnext 字符。

reprint

如果 telnetLINEMODE 或“逐行处理”模式下运行,则假定 lnext 字符是终端的 reprint 字符。reprint 的初始值被视为终端的 reprint 字符。

rlogin

这是 rlogin 转义符。如果设置了该字符,将忽略正常的 telnet 转义符,除非其前面在行开头有该字符。在行开头且后跟 “.” 的 rlogin 字符将关闭连接。如果后跟 ^Zrlogin 命令将暂停 telnet 命令。初始状态为禁用 rlogin 转义符。

start

如果启用了 TELNET TOGGLE-FLOW-CONTROL 选项,则 start 字符被视为终端的 start 字符。kill 字符的初始值被视为终端的 start 字符。

stop

如果启用了 TELNET TOGGLE-FLOW-CONTROL 选项,则 stop 字符被视为终端的 stop 字符。The initial value for the kill character is taken to be the terminal's stop character.

susp

如果 telnetlocalchars 模式下或启用了 LINEMODE 且键入了 suspend 字符,则会将 TELNET SUSP 序列(请参见上文的 sendsusp)发送到远程主机。suspend 字符的初始值被视为终端的 suspend 字符。

tracefile

这是 netdatadebug 选项为 TRUE 时生成的输出将要写入的文件。如果将 tracefile 设置为 “-”,则会将跟踪信息写入标准输出(缺省设置)。

worderase

如果 telnetLINEMODE 或“逐行处理”模式下运行,则认为该字符是终端的 worderase 字符。worderase 字符的初始值被视为终端的 worderase 字符。

?

显示合法的 setunset 命令。

slc state

slc(设置本地字符)命令用于在启用了 TELNET LINEMODE 选项的情况下设置或更改特殊字符的状态。特殊字符是指映射到 TELNET 命令序列(例如 ipquit)或行编辑字符(例如 erasekill)的字符。缺省情况下,将导出本地特殊字符。state 的有效值如下:

check

验证当前特殊字符的设置。请求远程端发送当前的所有特殊字符设置。如果与本地端存在任何差异,本地设置将切换到远程值。

export

切换到特殊字符的本地缺省值。本地缺省字符是指 telnet 启动时本地终端的字符。

import

切换到特殊字符的远程缺省值。远程缺省字符是指建立 TELNET 连接时远程系统的字符。

?

列显 slc 命令的帮助信息。

toggle argument...

将用于控制 telnet 对事件响应方式的各种标志在 TRUEFALSE 之间切换。可以指定多个参数。可使用 display 命令查询这些标志的状态。Valid arguments are:

authdebug

对验证代码启用调试信息。

autoflush

If autoflush and localchars are both TRUE, then when the ao, intr, or quit characters are recognized (and transformed into TELNET sequences; see set for details), telnet refuses to display any data on the user's terminal until the remote system acknowledges (using a TELNET Timing Mark option) that it has processed those TELNET sequences.如果终端用户尚未执行 “stty noflsh”,则切换的初始值为 TRUE。否则,值为 FALSE(请参见 stty(1))。

autosynch

If autosynch and localchars are both TRUE, then when either the interrupt or quit characters are typed (see set for descriptions of interrupt and quit), the resulting TELNET sequence sent is followed by the TELNET SYNCH sequence.该过程 should 导致远程系统开始丢弃之前键入的所有输入,直到两个 TELNET 序列都已读取并予以执行。切换的初始值为 FALSE

binary

对输入和输出启用或禁用 TELNET BINARY 选项。

inbinary

对输入启用或禁用 TELNET BINARY 选项。

outbinary

对输出启用或禁用 TELNET BINARY 选项。

crlf

确定回车的发送方式。If the value is TRUE, then carriage returns will be sent as <CR><LF>.If the value is FALSE, then carriage returns will be send as <CR><NUL>.切换的初始值为 FALSE

crmod

Toggle RETURN mode.如果启用了该模式,从远程主机接收的大多数 RETURN 字符将映射到一个后跟一个换行符的 RETURN。该模式不会影响用户键入的字符,只影响从远程主机接收的字符。该模式只对发送 RETURN 但从不发送 LINEFEED 的远程主机有用。切换的初始值为 FALSE

debug

Toggle socket level debugging.切换的初始值为 FALSE

localchars

If this toggle is TRUE, then the flush, interrupt, quit, erase, and kill characters (see set) are recognized locally, and transformed into appropriate TELNET control sequences, respectively ao, ip, brk, ec, and el (see send).切换的初始值在“逐行处理”模式下为 TRUE,在“每次传送一个字符”模式下为 FALSE。如果启用了 LINEMODE 选项,则会忽略 localchars 的值,假定始终为 TRUE。If LINEMODE has ever been enabled, then quit is sent as abort, and eof and suspend are sent as eof and susp (see send above).

netdata

切换所有网络数据(采用十六进制格式)的显示。切换的初始值为 FALSE

options

切换某些内部 TELNET 协议处理(与 telnet 选项有关)的显示。切换的初始值为 FALSE

prettydump

启用 netdata 切换后,如果启用了 prettydump,将以更易于用户读取的格式对 netdata 命令的输出进行格式化。输出中各个字符之间留有空格。The beginning of any TELNET escape sequence is preceded by an asterisk (*) to aid in locating them.

skiprc

如果将 skiprc 切换到 TRUE,打开连接时 TELNET 将跳过用户的主目录中 .telnetrc 文件的读取。切换的初始值为 FALSE

termdata

切换所有终端数据(采用十六进制格式)的显示。切换的初始值为 FALSE

?

显示合法的 toggle 命令。

environ argument . . .

environ 命令用于操控可通过 TELNET ENVIRON 选项发送的变量。初始的一组变量从用户环境中获取。缺省情况下,仅导出 DISPLAYPRINTER 变量。environ 命令的有效参数如下:

define variable value

variable 的值定义为 value。将自动导出由该命令定义的所有变量。value 可能会用单引号或双引号引起来,因此可能包含制表符和空格。

undefine variable

variable 从环境变量列表中删除。

export variable

variable 标记为要导出到远程端。

unexport variable

variable 标记为除非远程端显式请求否则不导出。

list

列出当前的一组环境变量。将自动发送标有星号 (*) 的变量。只有显式请求才会发送其他变量。

?

列显 environ 命令的帮助信息。

logout

telnet logout 选项发送到远程端。该命令类似于 close 命令。但是,如果远程端不支持 logout 选项,则不执行任何操作。If, however, the remote side does support the logout option, this command should cause the remote side to close the TELNET connection.如果远程端也支持暂停用户会话稍后重新连接的概念,则 logout 参数指示远程端应该立即终止会话。

文件

$HOME/.telnetrc

包含要在发起 telnet 会话之前执行的命令的文件

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
network/telnet
Interface Stability
Committed

另请参见

nc(1), rlogin(1), sh(1), ssh(1), stty(1), getlogin(3C), inet(4P), inet6(4P), hosts(5), nologin(5), telnetrc(5), attributes(7)

诊断

NO LOGINS: System going down in N minutes

该计算机处于关机过程中,已禁用登录。

附注

在某些远程系统上,在“逐行处理”模式下时,必须手动关闭回显。

在“逐行处理”模式下或启用了 LINEMODE 时,仅当终端的 EOF 字符为行中第一个字符时,才会将其识别(并发送到远程系统)。

History

Support for Kerberos, including the options –f, –F, –k, –K, –PN, –PO, and –x, was added in Solaris 10 3/05 and removed in Oracle Solaris 11.4.0.Prior to Solaris 10, a kerberized version was available in the Sun Enterprise Authentication Mechanism (SEAM) add-on package for Solaris.

Support for IPv6 was added in Solaris 8.

Enhancements from 4.4BSD were added in Solaris 2.5, including support for the –8, –c, –d, –E, –e, –L, –l, and –r command line options; the STATUS, LOGOUT, EOR, NAWS, TSPEED, LFLOW, XDISPLOC, OLD_ENVIRON, NEW_ENVIRON, and LINEMODE protocol options; and the .telnetrc file.

Support for the –n option was added in Solaris 2.0.

The telnet command has been present since the initial release of Solaris.