基于 xinetd 服务的启动 和独立服务不同,基于xinetd的服务没有自己的启动脚本,它们完全依赖xinetd这个超级守护进程来启动。有趣的是,xinetd本身其实是个独立服务,所以它的启动方式和普通独立服务一模一样。 但其他基于xinetd的服务就没这么简单了——必须通过修改配置文件才能启动。
和独立服务不同,基于xinetd的服务没有自己的启动脚本,它们完全依赖xinetd这个超级守护进程来启动。有趣的是,xinetd本身其实是个独立服务,所以它的启动方式和普通独立服务一模一样。
但其他基于xinetd的服务就没这么简单了——必须通过修改配置文件才能启动。这些服务的配置文件都集中存放在/etc/xinetd.d/目录下,整齐划一,管理起来相当方便。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
为了让大家更好理解,我们拿Telnet服务来举例说明。Telnet主要用于系统远程管理,默认使用23端口。不过得提醒一句:Telnet的数据传输是明文的,安全性堪忧,生产环境里基本不会使用。现在大家普遍采用ssh协议进行远程管理,因为它全程加密,安全得多。
Telnet服务其实分为客户端和服务器端两个部分:服务器端负责启动服务(就是那个不太安全的);客户端则用来连接服务器或者测试端口是否开放。实际工作中,我们更常用Telnet客户端来检测远程服务器的端口状态。
客户端的使用格式很简单:
[root@localhost ~]# telnet 服务器 IP #连接并管理远程服务器,因为数据明文传输,所以不安全 [root@localhost ~]# telnet 服务器IP 端口 #测试远程服务器的端口是否开启。如果能够正常连接,则证明该端口是开启的
举个例子:
[root@localhost ~]# telnet 192.168.0.210 22 #测试一下192.168.0.210这台服务器上的22(ssh服务)端口是否打开 #连接成功后,退出时使用"Ctrl+]"快捷键回到telnet交互模式,再输入"quit"退出
虽然Telnet服务本身不太安全,但它作为基于xinetd的典型服务,非常适合用来学习xinetd服务的启动管理。目前大多数Linux系统默认都不安装Telnet服务器端,如果需要测试,得手动安装:
[root@localhost ~]#rpm-ivh/mnt/cdroin/Packages/telnet-server-0.17-47.el6.i686.rpm [100%] ###############Preparing...1:telnet-server###############[100%] #安装 [root@localhost ~]# chkconfig -list #安装之后查询一下 …省略部分输出... 基于xinetd的服务: chargen-dgram:关闭 chargen-stream:关闭 cvs:关闭 daytime-dgram:关闭 daytime-stream:关闭 discard-dgram:关闭 discard-stream:关闭 echo-dgram:关闭 echo-stream:关闭 rsync:关闭 tcpmux-server:关闭 telnet:关闭 time-dgram:关闭 time-stream:关闭 #Telnet服务已经安装,是基于xinetd的服务,自启动状态是关闭
接下来就是启动Telnet服务的关键步骤了。前面说过,基于xinetd服务的配置文件都在/etc/xinetd.d/目录下,所以Telnet的配置文件自然是/etc/xinetd.d/telnet。打开看看里面的内容:
[root@localhost ~]#vi /etc/xinetd.d/telnet
#default: on
#description: The telnet server serves telnet sessions; it uses \
#unencrypted username/password pairs for authentication.
service telnet
#服务的名称为telnet
{
flags = REUSE
#标志为REUSE,设定TCP/IP socket可重用
socketjtype = stream
#使用 TCP协议数据包
wait = no
#允许多个连接同时连接
user = root
#启动服务的用户为root
server = /usr/sbin/in.telnetd
#服务的启动程序
log_on_failure += USERID
#登录失败后,记录用户的ID
disable = yes
#服务不启动
}
想要启动Telnet服务,其实就改一个参数:把配置文件里的"disable=yes"改成"disable=no"。这个参数名起得很直白——"disable"就是"禁用"的意思,"disable=yes"当然就是不启动服务,"disable=no"自然就是启动服务了。具体操作如下:
[root@localhost ~]#vi /etc/xinetd.d/telnet
#修改配置文件
service telnet {
…省略部分输出…
disable = no
#把 yes 改为no
}
[root@localhost ~]# service xinetd restart
#重启xinetd服务
停止 xinetd:[确定]
正在启动xinetd:[确定]
[root@localhost ~]# netstat -tlun|grep 23
tcp 0 0 :::23 :::* LISTEN
#查看端口,23端口启动,表示Telne服务已经启动了
看到了吗?所有基于xinetd服务的启动都是这个套路:修改/etc/xinetd.d/目录下的对应配置文件,然后重启xinetd服务就搞定了。
基于xinetd服务的自启动管理有两种常用方法:chkconfig命令和ntsysv命令。不过要注意,不能通过修改/etc/rc.d/rc.local文件来管理,原因很简单——基于xinetd的服务根本没有自己的启动脚本。下面我们分别来看看这两种方法。
chkconfig这个自启动管理工具可以管理所有RPM包默认安装的服务,自然也包括基于xinetd的服务。命令格式如下:
[root@localhost ~]# chkconfig 服务名 on|off #基于xinetd的服务没有自己的运行级别,而依靠xinetd服务的运行级别,所以不用指定--level选项
实际操作一下:
[root@localhost ~]# chkconfig telnet on #启动Telnet服务的自启动 [root@localhost ~]# chkconfig --list|grep telnet telnet:启用 #查看服务的自启动,Telnet服务变为了"启用" [root@localhost ~]# chkconfig telnet off #关闭Telnet服务的自启动 [root@localhost ~]# chkconfig --list|grep telnet telnet:关闭 #查看服务的自启动,Telnet服务变为了 "关闭"
ntsysv命令同样能管理所有RPM包默认安装的服务,基于xinetd的服务也不例外。使用方法和管理独立服务完全一样,这里就不重复介绍了。
话说回来,仔细琢磨一下就会发现:基于xinetd服务的启动和自启动其实没有严格区分。启动命令会同时把服务设为自启动,自启动命令也会同时启动服务。我们做个实验验证一下:
[root@localhost ~]# vi /etc/xinetd.d/telnet
service telnet
{
disable = yes
...省略部分输出...
}
[root@localhost ~]# service xinetd restart
停止xinetd: [确定]
正在启动xinetd: [确定】
[root@localhost ~]# chkconfig telnet off
#先关闭Telnet服务的启动和自启动,保证不会对后面的实验产生影响
[root@localhost ~]# vi /etc/xinetd.d/telnet
service telnet
{
disable = no
...省略部分输出...
}
[root@localhost ~]# service xinetd restart
停止xinetd: [确定]
正在启动xinetd: [确定】
#然后启动Telnet服务
[root@localho.st ~] # chkconfig --list | grep telnet
telnet:启用
#看到了吗我们一开始已经把Telnet服务的自启动关闭了。后面的实验虽然只启动了
#Telnet服务,但是该服务自动变为了自启动状态
这个实验清楚地说明:基于xinetd服务的启动和自启动命令是互通的。在当前系统中启动服务,自启动状态会自动开启;反过来,关闭自启动,当前运行的服务也会停止。
到此这篇关于Linux使用xinetd服务的管理方法案例详解的文章就介绍到这了,更多相关Linux使用xinetd服务的管理内容请搜索脚本大全以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本大全!
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述