本文出自 http://futeng.iteye.com/blog/2039490?utm_source=tuicool&utm_medium=referral, 经过我的实验, 比较靠谱.
文中加入了我自己在使用时遇到的问题以及是如何解决的. 感谢原著作者, 此问题困扰了挺长时间.
思考:
1. 检测Linux下telnet服务存不存在。
2. 存在则打开,不存在则安装。
步骤:
1. 使用telnet远程连接目标主机(本例使用Xshell)
- Xshell:\> telnet 192.168.80.218
- Connecting to 192.168.80.218:23...
- Could not connect to '192.168.80.218' (port 23): Connection failed.
- Type `help' to learn how to use Xshell prompt.
连接失败
2. 登录目标主机检测telnet服务是否正常:telnet localhost
- [oracle@localhost ~]$ telnet localhost
- -bash: telnet: command not found
命令不存在,可以理解为未安装该服务。
3. 下一步并不是立即安装,而是先检测下该机器中安装了哪些telnet相关的软件。多了要删除,少了要补缺等。
- 尝试google:linux telent 服务 等关键字。
通过搜索发现telnet由:
- telnet-client :telnet客户端
- telnet-server :telnet服务端
- xinetd :网络服务器超级守护进程
大致可以理解为,大多发型版本的Linux默认安装了telnet-client,而telnet-server需要用户另外安装。
xinetd是Linux系统的超级守护进程,长期驻存于后台,并监听来自网络的请求,从而启动对应的服务。而telnet正是xinetd管辖的服务之一。
4. 查询是否有telnet相关的rpm安装包:rpm -qa | grep telnet
- [root@localhost ~]# rpm -qa | grep telnet
- telnet-0.17-47.el6.x86_64
- [root@localhost ~]#
telnet-0.17-47.el6.x86_64即为默认安装的客户端。很明确的发现,系统确实未默认安装telnet-server。
5. 使用yum安装telnet-server服务
yum方式是最为便捷的在线包安装工具。
安装方式都可以直接搜索关键字,类似于:
Google:yum telnet
- [root@crxjtest xinetd.d]# yum list |grep telnet
- ...
- Trying other mirror.
- telnet.x86_64 1:0.17-47.el6 @anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2
- telnet-server.x86_64 1:0.17-47.el6 local
发现有telnet-server.x86_64这个源
- [root@crxjtest xinetd.d]# yum install telnet-server.x86_64 -y
- ...
- Trying other mirror.
- Setting up Install Process
- Resolving Dependencies
- --> Running transaction check
- ---> Package telnet-server.x86_64 1:0.17-47.el6 will be installed
- --> Processing Dependency: xinetd for package: 1:telnet-server-0.17-47.el6.x86_64
- --> Running transaction check
- ---> Package xinetd.x86_64 2:2.3.14-33.el6 will be installed
- --> Finished Dependency Resolution
- ...
- Complete!
- [root@crxjtest xinetd.d]#
安装成功。
可再搜索遍看是否已经写入环境中。
- [root@crxjtest xinetd.d]# rpm -qa | grep telnet
- telnet-0.17-47.el6.x86_64
- telnet-server-0.17-47.el6.x86_64
发现telnet-server已经安装成功。
ps : 也可以
[root@localhost xinetd.d]# yum list|grep telnet
telnet-server.x86_64 1:0.17-60.el7 @base
telnet.x86_64 1:0.17-60.el7 base
@base的代表已经安装了的.
6. [更改配置文件,将telnet服务设置为默认启动,非必须]
查询xinetd.d所管辖的所有配置文件所在目录。
- [root@crxjtest xinetd.d]# cd /etc/xinetd.d
- [root@crxjtest xinetd.d]# ls
- chargen-dgram cvs daytime-stream discard-stream echo-stream tcpmux-server time-dgram
- chargen-stream daytime-dgram discard-dgram echo-dgram rsync telnet time-stream
- [root@crxjtest xinetd.d]# vi telnet
- # default: on
- # description: The telnet server serves telnet sessions; it uses \
- # unencrypted username/password pairs for authentication.
- service telnet
- {
- disable = no
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = /usr/sbin/in.telnetd
- log_on_failure += USERID
- }
备份telnet文件,再vi打开,将disable值赋为no。
7. 开启telnet服务
- [root@crxjtest xinetd.d]# service xinetd restart
- Stopping xinetd: [FAILED]
- Starting xinetd: [ OK ]
可直接start,这样就不会有关闭服务时候报的那个错,毕竟那个时候服务还不存在。
ps: 我在centos 虚拟机上安装时没有xinetd 服务, 若不安装上它第六步就没法搞定.所以对比telnet服务的安装方式使用
yum list|grep xinetd 检查有没有相关的软件可以安装:
然后执行yum install xinetd.x86_64将xinetd 服务安装到系统中. 随后返回去操作第六步之后就可以telnet了!
8. 测试telnet服务
- [root@crxjtest xinetd.d]# telnet localhost
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- Red Hat Enterprise Linux Server release 6.2 (Santiago)
- Kernel 2.6.32-220.el6.x86_64 on an x86_64
- login:
测试正常。
9. 总结
要明确出现的是什么问题,要有清晰的解决思路,再跟着自己的思路去解决。
本文描述的场景是缺失telnet服务,那能否举一反三到例如能思考和处理ftp服务缺失的解决呢。
可能的步骤如下:
1. 尝试使用多种客户端去连接ftp服务。多次尝试能避免出现一些低级错误,例如是本机客户端出错,用户名密码错误,连接IP端口不对等。尝试的最后是出一个结果,即是否是ftp服务端出现了问题。
2. 倘若确定是ftp服务端出的问题,则需要登录该服务器具体处理。在登录之前,如果不了解ftp服务的构成,还需要搜索等方式去了解。
3. 最后就是如何在ftp服务端解决问题。丢东西了,通常的处理方式,就是现在还有哪些东西,还需要安装哪些东西,最后安装就好了。