执行telnet指令开启终端机阶段作业,并登入远端主机。
(1)用法:
用法: telnet [参数] [主机]
(2)功能:
功能: telnet命令通常用来远程登录。
原理: Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算)。
telnet实现的远程登录:
分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记帐方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为‘登远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。
telnet的简介:
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet会话,必须输入用户名和密码来登录服务器。
Telnet是常用的远程控制Web服务器的方法。但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。
telnet命令还可做别的用途,比如确定远程服务的状态,比如确定远程服务器的某个端口是否能访问。
(3)选项参数:
1) -8 允许使用8位字符资料,包括输入与输出。
2) -a 尝试自动登入远端系统。
3) -b<主机别名> 使用别名指定远端主机名称。
4) -c 不读取用户专属目录里的.telnetrc文件。
5) -d 启动排错模式。
6) -e<脱离字符> 设置脱离字符。
7) -E 滤除脱离字符。
8) -f 此参数的效果和指定"-F"参数相同。
9) -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
10) -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
11) -K 不自动登入远端主机。
12) -l<用户名称> 指定要登入远端主机的用户名称。
13) -L 允许输出8位字符资料。
14) -n<记录文件> 指定文件记录相关信息。
15) -r 使用类似rlogin指令的用户界面。
16) -S<服务类型> 设置telnet连线所需的IP TOS信息。
17) -x 假设主机有支持数据加密的功能,就使用它。
18) -X<认证形态> 关闭指定的认证形态。
(4)实例:
1)[[email protected] xinetd.d]# telnet localhost 23 连接本地的主机,端口号为23
[[email protected] xinetd.d]# telnet localhost 23 Trying ::1... Connected to localhost. Escape character is ‘^]‘. Kernel 3.10.0-229.el7.x86_64 on an x86_64 localhost login: sunjimeng Password: Last login: Sat Jun 18 18:29:24 from ::ffff:192.168.142.128 [[email protected] ~]$
正在学习中......
(5)其他:
学习此命令遇到的问题:
1.centOS7.0下的shell中出现下面的问题:
[[email protected] sunjimeng]# telnet bash: telnet: 未找到命令...
解决方案:
1)安装telnet-server,telnet,xinted:
[[email protected] xinetd.d]# yum install telnet-server -y 已加载插件:fastestmirror, langpacks base | 3.6 kB 00:00 extras | 3.4 kB 00:00 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was 12: Timeout on http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock: (28, ‘Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds‘) updates | 3.4 kB 00:00 updates/7/x86_64/primary_db | 4.9 MB 00:00:25 Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirror.lzu.edu.cn * updates: mirror.lzu.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 telnet-server.x86_64.1.0.17-59.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ========================================================================================================= Package 架构 版本 源 大小 ========================================================================================================= 正在安装: telnet-server x86_64 1:0.17-59.el7 base 40 k 事务概要 ========================================================================================================= 安装 1 软件包 总下载量:40 k 安装大小:55 k Downloading packages: 警告:/var/cache/yum/x86_64/7/base/packages/telnet-server-0.17-59.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY telnet-server-0.17-59.el7.x86_64.rpm 的公钥尚未安装 telnet-server-0.17-59.el7.x86_64.rpm | 40 kB 00:00:04 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥 导入 GPG key 0xF4A80EB5: 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>" 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 软件包 : centos-release-7-1.1503.el7.centos.2.8.x86_64 (@anaconda) 来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 1:telnet-server-0.17-59.el7.x86_64 1/1 验证中 : 1:telnet-server-0.17-59.el7.x86_64 1/1 已安装: telnet-server.x86_64 1:0.17-59.el7 完毕!
[[email protected] etc]# yum install xinetd -y 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.sina.cn * updates: mirrors.cug.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 xinetd.x86_64.2.2.3.15-12.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ========================================================================================================= Package 架构 版本 源 大小 ========================================================================================================= 正在安装: xinetd x86_64 2:2.3.15-12.el7 base 128 k 事务概要 ========================================================================================================= 安装 1 软件包 总下载量:128 k 安装大小:261 k Downloading packages: xinetd-2.3.15-12.el7.x86_64.rpm | 128 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 2:xinetd-2.3.15-12.el7.x86_64 1/1 验证中 : 2:xinetd-2.3.15-12.el7.x86_64 1/1 已安装: xinetd.x86_64 2:2.3.15-12.el7 完毕!
[[email protected] etc]# yum install telnet 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.yun-idc.com * extras: mirrors.sina.cn * updates: mirrors.cug.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 telnet.x86_64.1.0.17-59.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================================================ Package 架构 版本 源 大小 ================================================================================ 正在安装: telnet x86_64 1:0.17-59.el7 base 63 k 事务概要 ================================================================================ 安装 1 软件包 总下载量:63 k 安装大小:113 k Is this ok [y/d/N]: y Downloading packages: telnet-0.17-59.el7.x86_64.rpm | 63 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : 1:telnet-0.17-59.el7.x86_64 1/1 验证中 : 1:telnet-0.17-59.el7.x86_64 1/1 已安装: telnet.x86_64 1:0.17-59.el7 完毕!
2)将xinetd、telnet服务加入开机自启动:
[[email protected] etc]# systemctl enable xinetd.service [[email protected] etc]# systemctl enable telnet.socket ln -s ‘/usr/lib/systemd/system/telnet.socket‘ ‘/etc/systemd/system/sockets.target.wants/telnet.socket‘
3)启动这两个服务:
[[email protected] etc]# systemctl start telnet.socket [[email protected] etc]# systemctl start xinetd
4)连接范例:(在这里我不连接远程主机,把自己的本地主机当做远程主机来测试)
[[email protected] sysconfig]# telnet 192.168.142.128 Trying 192.168.142.128... Connected to 192.168.142.128. Escape character is ‘^]‘. Kernel 3.10.0-229.el7.x86_64 on an x86_64 localhost login: sunjimeng Password: Last login: Sat Jun 18 18:20:46 on :0 [[email protected] ~]$ su root Password:
连接别人主机的范例:(连不上!)
[[email protected] sunjimeng]# telnet 169.254.27.89 //这个是连别人的主机 Trying 169.254.27.89... telnet: connect to address 169.254.27.89: Connection refused [[email protected] sunjimeng]# telnet www.baidu.com //连接baidu.com的主机 Trying 14.215.177.37... telnet: connect to address 14.215.177.37: Connection refused Trying 14.215.177.38... telnet: connect to address 14.215.177.38: Connection refused
2.去除telnet服务的开机自启功能:(为了安全着想)
[[email protected] sunjimeng]# systemctl disable telnet.socket rm ‘/etc/systemd/system/sockets.target.wants/telnet.socket‘ [[email protected] sunjimeng]# systemctl disable xinetd.service rm ‘/etc/systemd/system/multi-user.target.wants/xinetd.service‘
3.用netstat查看当前已经建立的tcp连接:
[[email protected] sunjimeng]# netstat -t Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.142.128:42193 192.168.142.128:telnet ESTABLISHED tcp6 0 0 192.168.142.128:telnet 192.168.142.128:42193 ESTABLISHED
4.什么是xinetd?
xinetd(extended internet daemon)是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。
xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序.
系统默认使用xinetd的服务可以分为如下几类。
① 标准Internet服务:telnet、ftp。 ② 信息服务:finger、netstat、systat。 ③ 邮件服务:imap、imaps、pop2、pop3、pops。 ④ RPC服务:rquotad、rstatd、rusersd、sprayd、walld。 ⑤ BSD服务:comsat、exec、login、ntalk、shell、talk。 ⑥ 内部服务:chargen、daytime、echo、servers、services、time。 ⑦ 安全服务:irc。 ⑧ 其他服务:name、tftp、uucp。
具体可以使用xinetd的服务在/etc/services文件中指出。
启动和关闭xinetd服务:
service xinetd start service xinetd stop service xinetd restart
5.Telnet 客户端命常用命令:
open : 使用 openhostname 可以建立到主机的 Telnet 连接。 close : 使用命令 close 命令可以关闭现有的 Telnet 连接。 display : 使用 display 命令可以查看 Telnet 客户端的当前设置。 send : 使用 send 命令可以向 Telnet 服务器发送命令。支持以下命令: ao : 放弃输出命令。 ayt : “Are you there”命令。 esc : 发送当前的转义字符。 ip : 中断进程命令。 synch : 执行 Telnet 同步操作。 brk : 发送信号。 上表所列命令以外的其他命令都将以字符串的形式发送至 Telnet 服务器。例如,sendabcd 将发送字符串 abcd 至 Telnet 服务器,这样,Telnet 会话窗口中将出现该字符串。 quit :使用 quit 命令可以退出 Telnet 客户端。