通过 inetd 运行守护进程需要多复杂?

通过 inetd 运行守护进程需要多复杂?

哪些守护进程应通过 启动的一般规则是什么inetd?目前,在我的服务器上sshdapachesendmail设置为始终运行,而简单的 *NIX 服务设置为由 inetd 启动。

我是唯一一个在计算机上使用 ssh 的人,入侵尝试不成问题,因为我在非标准端口上运行它,并且我的 HTTP 服务器每天大概会收到 5 次非 GoogleBot 的点击。

我的问题是,通过超级服务器守护进程运行像 sshd 或 apache 这样的复杂守护进程有哪些好处以及性能损失如何?您以这种方式运行自己的守护进程时,是否有成功或失败的经历?

答案1

具体情况要视具体情况而定。一般来说,除非有特殊原因需要在超级服务器中运行,否则最好不要这样做。在超级服务器中运行会增加额外的开销和高负载,因为每个连接都会产生一个新进程。

Apache 的设计目标是始终运行。它采用线程化设计,可以智能地管理系统资源。

inetd 和其他超级服务器最初更适合那些没有能力在其本机代码中与套接字交互的守护进程。

答案2

守护进程的复杂性并不是真正的问题。使用频率才是。xinetd 允许您增加日志记录,并根据配置增加一层安全性。您提到的所有守护进程都可以在某些配置下在超级服务器下运行。

如果您很少使用守护进程,请考虑在超级服务器下运行它。这将允许您减少运行的守护进程的数量以及由此产生的开销。

inetd 和 xinetd 内置了一些非常简单的服务。除非需要,否则应禁用这些服务。其他服务没有守护进程接口,因此必须由超级服务器运行。许多具有网络守护进程功能的服务都有标志,表明它们在 inetd 下运行。

在超级服务器下运行守护进程之前,您应该考虑启动开销和配置稳定性。启动开销大是将很少使用的服务作为守护进程运行的原因之一。您列出的服务在安装时通常使用频率较高,因此会作为守护进程运行。

Apache 已优化为以守护进程运行。如果使用较多,最好以守护进程运行。

邮件服务器通常为每个传入呼叫分叉一个新服务器,这在大多数操作系统上开销较低。如果它不用作邮件中心或从远程站点投递,它不应该监听除本地主机以外的任何地址。除非您在服务器上运行使用 TCP/IP 通过本地主机发送电子邮件的程序,否则它不需要这样做。

sshd 的启动开销相对较低,除了加密所需的随机数据。它确实需要相当多的随机数据,如果在超级服务器下运行,这些数据可能不容易获得。

相关内容