1.简介

telnet 是基于 Telnet 协议的远程登录程序,用于登录远程主机,对远程主机进行管理。

telnet 因采用明文传送报文,安全性不好,很多 Linux 服务器都不开放 telnet 服务,而改用更安全的 ssh 方式了。但仍然有很多别的系统可能采用了 telnet 方式来提供远程登录,因此弄清楚 telnet 的使用方式仍是很有必要的。

telnet 命令还可做别的用途,比如确定远程服务器的某个端口是否能访问。

此外,Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议,属于应用层协议,基于 TCP 协议实现远程登录。

2.命令格式

telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefile] [host [port]]

3.选项说明

-8
	允许使用 8 位字符资料,包括输入与输出
-a
	尝试自动登入远端系统
-b HOSTALIAS
	使用别名指定远端主机名称
-c
	不读取用户专属目录里的.telnetrc文件
-d
	启动排错模式
-e ESCAPECHAR
	设置转义字符
-E
	滤除转义字符
-f
	此选项的效果和指定 -F 相同
-F
	使用 Kerberos V5 认证时,加上此参数可把本地主机的认证数据上传到远端主机
-k <realm>
	使用 Kerberos 认证时,加上此参数让远端主机采用指定的域名,而非该主机的域名去获取票据
-K
	不自动登入远端主机
-l USER
	指定要登入远端主机的用户名称
-L
	允许输出 8 位字符资料
-n TRACEFILE
	指定文件记录相关信息
-r
	使用类似 rlogin 指令的用户界面
-x
	假设主机有支持数据加密的功能,就使用它
-X ATYPE
	关闭指定的认证类型

4.常用示例

(1)登录主机。不显示提供端口,默认为 23。

telnet 192.168.0.5

(2)确认远端服务器某个端口是否可用。比如查看远端服务器 ssh 服务的 22 号端口是否开放。

telnet 10.234.178.144 22
Trying 10.234.178.144...
Connected to 10.234.178.144.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0

以上表示远端服务器 ssh 服务的 22 号端口已经开放。注意,这并不表示使用 ssh 命令一定可以与远端服务器建立 SSH 链接,需要远端服务器的授权。

(3)进入命令行交互模式。
如果在没有 host 参数的情况下调用 telnet,它将进入命令模式,提示符为 telnet>。

telnet
telnet>

交互模式下常用子命令有:

auth <argument> [...]:查看和管理telnet登录身份验证方式。argument可取值:disable、enable和status
close:关闭当前 Telnet 连接
display:使用 display 命令可以查看 Telnet 客户端的当前设置
logout:类似于cloase命令,用于关闭Telnet连接或者挂起。注:Telnet服务端可能不支持
open <host> [-l user] [[-] port]:建立到指定主机的 Telnet 连接
send <arguments>:使用send命令可以向Telnet服务器发送特定字符串。支持包括但不限于以下命令字符串:
	abort:终止服务命令
	ao:Abort Output,放弃输出命令
	ayt:Are you there命令
	brk:Break命令
	eof:发送End Of File字符
	escape:发送当前的转义字符,初始为分组符^]。
	ip:中断进程命令
	synch:执行Telnet同步操作。
quit:退出 Telnet 客户端。
status:显示当前Telnet连接状态

参考文献

telnet(1) manualLinux命令大全.telnet命令每天一个Linux命令(52)telnet命令