freebsd中利用inetd来开启服务

2009-05-13 02:10:45来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


在系统中有一个专门负责各式网络服务的超级服务器 "inetd"。 我们可以经由修改设定文件请它负责许多网络相关的服务,例如 telnet、ftp、ssh 等。当有 telnet 联机要求时,inetd 会依照设定执行负责 telnet 服务的 telnetd 这支程序,再将主导权转手给 telnetd,并继续等待下一个联机要求。若下一个联机是 ftp,则 inetd 会呼叫 ftpd 这支程序来负责。
其实像 ftpd 这类的程序,它本身也可以自己成为一支 daemon,由自己等待 ftp 的联机要求,而无需经由 inetd。使用 inetd 来管理这些网络服务的好处是我们不必为了提供十种网络服务而执行十个常驻程序。每一个常驻程序都会占用一些系统资源,而使用一个 inetd 来统筹,可以让这些资源空出来。另外,inetd 也可以用来过滤联机来源,针对不同的联机,我们可以使用 inetd 内建的 TCP Wrapper 功能来进行联机网域的限制,相关设定我们会再后续章节中提及。
有优点就会有缺点,使用 inetd 来管理网络服务固然有其优点,但对于联机较频繁、需要更快反应的服务而言并不合适。以 FTP 为例,一个联机进来,inetd 都必须重新执行一次 ftpd。如果我们是以 daemon 的方式,让 ftpd 常驻于系统中,则当有联机要求时,我们就可以直接将自己复制一份出来进行 ftp 服务,而不需重头执行。所以对于一台大型的 FTP 服务器而言,通常会使用独立 daemon 的方式。而一些较少使用的服务,如 telnet、ssh 等就交由 inetd 来处理。
FreeBSD 预设并不会启动 inetd,所以如果我们想要让它在一开机就执行,必须在 /etc/rc.conf 中加入下列设定:
inetd_enable="YES"
假设我们想要让 inetd 负表 telnet 及 ftp 服务,我们必须修改 /etc/inetd.conf ,将 telnet 及 ftp 前的 "#" 拿掉,如下所示:
# $FreeBSD: src/etc/inetd.conf,v 1.63 2003/06/09 21:04:30 markm Exp $
#
# Internet server configuration database
#
# Define *both* IPv4 and IPv6 entries for dual-stack support.
# To disable a service, comment it out by prefixing the line with '#'.
# To enable a service, remove the '#' at the beginning of the line.
#
ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
ftp     stream  tcp6    nowait  root    /usr/libexec/ftpd       ftpd -l
#ssh    stream  tcp     nowait  root    /usr/sbin/sshd          sshd -i -4
#ssh    stream  tcp6    nowait  root    /usr/sbin/sshd          sshd -i -6
telnet  stream  tcp     nowait  root    /usr/libexec/telnetd    telnetd
telnet  stream  tcp6    nowait  root    /usr/libexec/telnetd    telnetd
#shell  stream  tcp     nowait  root    /usr/libexec/rshd       rshd
#shell  stream  tcp6    nowait  root    /usr/libexec/rshd       rshd

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Shell 的环境变量/环境设定/中文支持 for freebsd

下一篇:ftpusers与ftpchroot文件 for freebsd