手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

telnet(1)

名称

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

用法概要

telnet [-8EFKLacdfrx] [-X atype] [-e escape_char] 
     [-k realm] [-l user] [-n file] 
     [ [ [!] @hop1 [@hop2...] @] host [port]]

描述

telnet 实用程序可使用 TELNET 协议与其他主机通信。如果调用 telnet 而未指定参数,将在其提示符 telnet> 指示下进入命令模式。在该模式下,它可接受并执行关联的命令。请参见“用法”部分。如果在调用它的同时指定了参数,将根据这些参数执行 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 选项。

–a

尝试自动登录。如果受远程系统支持,将通过 ENVIRON 选项的 USER 变量发送用户名。如果 getlogin(3C) 返回的当前用户的名称与当前用户 ID 相符,则使用当前用户的名称。否则,将使用与用户 ID 关联的名称。

–c

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

–d

debug 切换的初始值设置为 TRUE

–e escape_char

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

–E

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

–f

将本地凭证的一个副本转发到远程系统。

–F

将本地凭证的一个可转发副本转发到远程系统。

–k realm

如果正在使用 Kerberos 验证,请求 telnetrealm 中获取远程主机的票证,而非按照 krb5.conf(4) 中确定的那样在远程主机的缺省领域中获取。

–K

指定不自动登录到远程系统。

–l user

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

–L

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

–n tracefile

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

–r

指定类似于 rlogin 的用户接口。在该模式下,转义符设置为波浪号 (~) 字符,除非使用 –e 选项修改。仅当 rlogin 转义符前面有回车时才能将其识别。在该模式下,telnet 转义符(通常为 '^]')还必须位于 telnet 命令前面。rlogin 转义符也可后跟 '.\r' 或 '^Z'(例如 rlogin(1)),分别用来关闭或暂停连接。该选项是一个未确定接口,将来可能会发生更改。

–x

启用数据流加密。启用该选项后,如果无法协商验证或无法启用加密,telnet 将退出并显示错误。

–X atype

禁用 atype 验证类型。

用法

telnet 命令

本部分介绍 telnet 提供的命令。有必要对各项命令的篇幅加以限制,只够对其进行唯一标识即可。(modesettoggleunsetenvirondisplay 命令的参数同样如此。)

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(4))或在“点记法”中指定的 Internet 地址(请参见 inet(7P)inet6(7P))。如果将 host 指定为 @hop1@hop2@host,连接将通过主机 hop1hop2,使用稀疏源路由在 host 处结束。必须使用 @ 符号作为指定主机之间的分隔符。如果前导 ! 与 IPv4 一起使用,连接将遵循严格的源路由。

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

close

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

encrypt

加密命令操控通过 TELNET ENCRYPT 选项发送的信息。

加密命令的有效参数如下:

disable type [input|output]

禁用指定的加密类型。如果省略输入和输出,输入和输出都会禁用加密。要获取可用类型的列表,应使用 encrypt disable ? 命令。

enable type [input|output]

启用指定的加密类型。如果省略输入和输出,输入和输出都会启用加密。要获取可用类型的列表,应使用 encrypt enable ? 命令。

input

该参数与 encrypt start input 命令相同。

-input

该参数与 encrypt stop input 命令相同。

output

该参数与 encrypt start output 命令相同。

-output

该参数与 encrypt stop output 命令相同。

start [input|output]

尝试开始加密。如果省略输入和输出,输入和输出都会启用加密。要获取可用类型的列表,应使用 encrypt enable ? 命令。

status

列出当前的加密状态。

stop [input|output]

停止加密。如果省略输入和输出,输入和输出都会启用加密。

type type

设置要与随后的 encrypt startencrypt stop 命令一起使用的缺省加密类型。

quit

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 命令查询变量的值。如果省略了 value,则认为值是 true 或 “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

如果 telnetlocalchars 模式下以“每次发送一个字符”模式运行,则键入 erase 字符时,则会将 TELNET EC 序列(请参见 sendec)发送到远程系统。认为 erase 字符的初始值是终端的 erase 字符。

kill

如果 telnetlocalchars 模式下以“每次发送一个字符”模式运行,则键入 kill 字符时,会将 TELNET EL 序列(请参见 sendel)发送到远程系统。kill 字符的初始值被视为终端的 kill 字符。

eof

如果 telnet 在“逐行处理”模式下运行,则输入 eof 字符作为行中第一个字符时,会将该字符发送到远程系统。eof 的初始值被视为终端的 eof 字符。

ayt

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

forw1
forw2

如果 telnetLINEMODE 模式下运行且键入了 forw1forw2 字符,则会将不完整的行转发到远程系统。转发字符的初始值来自终端的 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 字符。kill 字符的初始值被视为终端的 stop 字符。

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 命令查询这些标志的状态。有效参数如下:

authdebug

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

autodecrypt

如果协商了 TELNET ENCRYPT 选项,缺省情况下,不会自动开始数据流的实际加密(解密)。自动加密(自动解密)命令说明应该尽快启用输出(输入)流的加密。

autologin

如果远程端支持 TELNET AUTHENTICATION 选项,telnet 将尝试使用它执行自动验证。如果不支持 AUTHENTICATION 选项,将通过 TELNET ENVIRON 选项传播用户的登录名。该命令与指定 open 命令的 –a 选项相同。

autoflush

如果 autoflushlocalchars 均为 TRUE,则 aointrquit 字符被识别(并转换为 TELNET 序列;有关详细信息,请参见 set)时,telnet 将拒绝在用户的终端上显示任何数据,直到远程系统确认(使用 TELNET 计时标记选项)已处理这些 TELNET 序列为止。如果终端用户尚未执行 “stty noflsh”,则切换的初始值为 TRUE。否则,值为 FALSE(请参见 stty(1))。

autosynch

如果 autosynchlocalchars 均为 TRUE,则键入 interruptquit 字符(有关 interruptquit 的说明,请参见 set)时,发送的生成的 TELNET 序列后跟 TELNET SYNCH 序列。该过程 should 导致远程系统开始丢弃之前键入的所有输入,直到两个 TELNET 序列都已读取并予以执行。切换的初始值为 FALSE

binary

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

inbinary

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

outbinary

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

crlf

确定回车的发送方式。如果值为 TRUE,则回车将作为 <CR><LF> 发送。如果值为 FALSE,则回车将作为 <CR><NUL> 发送。切换的初始值为 FALSE

crmod

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

debug

切换套接字级别的调试(只有超级用户可执行该操作)。切换的初始值为 FALSE

encdebug

对加密代码启用调试信息。

localchars

如果切换到 TRUE,则 flushinterruptquiterasekill 字符(请参见 set)将在本地识别并分别转换为相应的 TELNET 控制序列 aoipbrkecel(请参见 send)。切换的初始值在“逐行处理”模式下为 TRUE,在“每次传送一个字符”模式下为 FALSE。如果启用了 LINEMODE 选项,则会忽略 localchars 的值,假定始终为 TRUE。如果启用过 LINEMODE,则 quit 将作为 abort 发送,eofsuspend 将作为 eofsusp 发送(请参见上文的 send)。

netdata

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

options

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

prettydump

启用 netdata 切换后,如果启用了 prettydump,将以更易于用户读取的格式对 netdata 命令的输出进行格式化。输出中各个字符之间留有空格。任何 TELNET 转义序列的开头前面都要有一个星号 (*),以帮助找到它们。

skiprc

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

termdata

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

verbose_encrypt

如果将 verbose_encrypt 标志切换为 TRUE,则每次启用或禁用加密时,TELNET 都会输出一条消息。切换的初始值为 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 选项,则不执行任何操作。但是,如果远程端支持 logout 选项,该命令应该导致远程端关闭 TELNET 连接。如果远程端也支持暂停用户会话稍后重新连接的概念,则 logout 参数指示远程端应该立即终止会话。

文件

$HOME/.telnetrc

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

属性

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

属性类型
属性值
可用性
network/telnet

另请参见

rlogin(1)sh(1)stty(1)getlogin(3C)hosts(4)krb5.conf(4)nologin(4)telnetrc(4)attributes(5)inet(7P)inet6(7P)

诊断

NO LOGINS: System going down in N minutes

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

附注

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

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

telnet 协议仅使用单个 DES 保护会话-客户端使用单个 DES 会话密钥请求服务票证。KDC 必须知道提供 telnet 服务的主机服务主体支持单个 DES,这实际上表示此类主体必须在 KDC 数据库中有单个 DES 密钥。