在linux中,telnet是TELNET协议的用户接口,是基于Telnet协议的远程登录程序,用于登录远程主机,还可以确定远程服务器的某个端口是否能访问,语法“telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]”。
本教程操作环境:linux7.3系统、Dell G3电脑。
telnet是什么
telnet 是基于 Telnet 协议的远程登录程序,用于登录远程主机,对远程主机进行管理。
telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式,虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23)。
telnet 因采用明文传送报文,安全性不好,很多 Linux 服务器都不开放 telnet 服务,而改用更安全的 ssh 方式了。但仍然有很多别的系统可能采用了 telnet 方式来提供远程登录,因此弄清楚 telnet 的使用方式仍是很有必要的。
telnet 命令还可做别的用途,比如确定远程服务器的某个端口是否能访问。
此外,Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议,属于应用层协议,基于 TCP 协议实现远程登录。
telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>]
-8 允许使用8位字符资料,包括输入与输出 -a 尝试自动登入远端系统 -b<主机别名> 使用别名指定远端主机名称 -c 不读取用户专属目录里的.telnetrc文件 -d 启动排错模式 -e<脱离字符> 设置脱离字符 -E 滤除脱离字符 -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机 -f 此参数的效果和”-F”参数相同 -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名 -K 不自动登入远端主机 -l<用户名称> 指定要登入远端主机的用户名称 -L 允许输出8位字符资料 -n<记录文件> 指定文件记录相关信息 -r 使用类似rlogin指令的用户界面 -S<服务类型> 设置telnet连线所需IP TOS信息 -x 假设主机有支持数据加密的功能,就使用它 -X<认证形态> 关闭指定的认证形态
常用示例
(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连接状态