一、xinetd简介
xinetd托管服务也就是extended internet daemon简写,xinetd执行与inetd相同的功能:它启动提供互联网服务的程序。xinetd不是在系统初始化时启动此类服务器,并在连接请求到达之前处于休眠状态,而是唯一启动的守护进程,它在所有服务端口上侦听其配置文件中列出的服务。当请求传入时,xinetd启动相应的服务器。由于其操作方式,xinetd(以及inetd)也被称为超级服务器。
xinetd配置文件中列出的服务可以分为两组。第一组中的服务称为多线程服务,它们需要为每个新的连接请求分叉一个新的服务器进程。然后,新服务器处理该连接。对于此类服务,xinetd会不断侦听新的请求,以便生成新的服务器。另一方面,第二组包括服务守护进程负责处理所有新连接请求的服务。这种服务称为单线程服务,xinetd将停止处理新的请求,直到服务器死亡。该组中的服务通常基于数据报。
到目前为止,超级服务器存在的唯一原因是通过避免分叉许多可能在其生命周期的大部分时间处于休眠状态的进程来节省系统资源。在实现这一功能的同时,xinetd利用了超级服务器的思想来提供访问控制和日志记录等功能。xinetd服务的主配置文件/etc/xinetd.conf,用于存放被托管的服务的目录:/etc/xinetd.d 。
二、xinetd安装
此博文是以centos7.6操作系统环境为例进行介绍,centos7.6自身是没有安装xinetd的,需要我们手动安装,我们可以使用yum方式进行安装。安装完成后可以使用systemctl管理xinetd服务。
[root@s152 ~]# yum install -y xinetd
…
已安装:
xinetd.x86_64 2:2.3.15-14.el7
完毕!
xinetd不限于/etc/services中列出的服务。因此,任何人都可以使用xinetd启动专用服务器。我们可以查看/etc/services了解xinetd支持的服务:
[root@s153 ~]# cat /etc/services |wc -l
11176
[root@s153 ~]# cat /etc/services |grep telnet
telnet 23/tcp
telnet 23/udp
…
三、xinetd实践举例
配置xinetd服务的时候,注意配置文件格式,“项 =值”,这个=号前要求空格。如果发现配置的服务托管不起来,可以使用xinetd -d命令检查,如果配置文件语法错误都会有相关提示,根据提示修正即可。
————————————————
五、QA
1、配置好telnet服务后无法启动
报错信息:无,重启xinetd后,无任何输出,查看xinetd服务状态正常,就是无法启动telnet服务。
问题分析:xinetd没有正式托管telnet服务,使用xinetd -d命令可以对服务进行debug日志输出,发现是telnet服务配置文件检查后报错,所以没有启用该服务。
解决方案:根据xinetd -d输出中的报错系统修改配置文件,然后重启xinetd服务。
2、使用root密码telnet登录服务器失败
报错信息:Login incorrect
报错原因:为了安全,禁止使用root账户telnet登录
解决方案:切换普通用户登录,登录正常。
————————————————
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!