免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 889 | 回复: 0
打印 上一主题 下一主题

Super server系列1: inetd和xinetd [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-26 11:50 |只看该作者 |倒序浏览
    使用busybox自带的inetd来启动自带的telnetd,总是无法成功。但是telnetd单独启动,倒是没有问题。这里肯定存在一个配置的问题,或者说busybox的telnetd是否支持独立启动和inetd启动。这里想通过移植独立的super server来探讨这个问题。

    需要移植inetd,xinetd,telnetd,这几个都是和《构建嵌入式Linux系统》的完全一致,放在这里只是方便查阅。

(1)inetd的移植

下载地址:
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit
解压后,首先把configure文件中的./__conftest || exit 1;删除。然后:

CC=arm-linux-gcc ./configure --prefix=yourprefix
make

完成后strip一下inetd,复制到rootfs的/usr/sbin下。它的配置文件放到/etc/inetd.conf。具体格式可以参考etc.example.

在inittab中的设定如下:

::respawn:/usr/sbin/inetd -i

不过我还是认为不用-i参数的好,万一你的inetd出现问题,那么就会打印满屏幕的错误提示。这是需要避免的。

(2)xinetd的移植

下载地址:
http://www.xinetd.org
,不过我的是从BLFS项目列表中下载的。
解压之后,执行:

CC=arm-linux-gcc ./configure --host=arm-linux --prefix=yourprefix
make

同样不用安装,需要strip一下xinetd,然后拷贝到rootfs的/usr/sbin下。关于配置文件,可以把redhat的拷贝过来。

inittab设为 ::once:/usr/sbin/xinetd

(3)telnetd移植

下载地址:
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit
解压后,首先把configure文件中的./__conftest || exit 1;删除。然后:

CC=arm-linux-gcc ./configure --prefix=yourprefix
这里有一个编译的技巧,就是touch一个空的头文件termcap.h,当然是在你的yourprefix下include文件夹下建立。虽然源码包含该头文件,但是不需要链接termcap库。
make -C telnetd

同样拷贝到/usr/sbin

测试:

(1)telnetd独立启动

    发现没有出那公共。可见该套件中的telnetd只能由inetd或者xinetd来启动了。

(2)telnetd由inetd启动

[root@listentec ~]#cat /etc/inetd.conf
telnet stream tcp nowait root /usr/sbin/telnetd

    测试没有问题。

(3)telnetd由xinetd启动

[root@listentec ~]#cat /etc/xinetd.d/telnet
# xinetd: telnetd CONFIG
service telnet
{
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/telnetd
#       bind = 192.168.1.100
        log_on_failure += USERID
}

    注意的是,可以利用bind命令绑定到固定的ip上,也可以实现重定向。

(4)busybox自带telnetd由inetd或者xinetd启动,还是无法成功。可见,如果使用busybox的telnetd,就要独立启动;如果使用该篇移植的telnetd,就要使用inetd或者xinetd启动。

附:vsftpd既支持独立启动,也支持xinetd启动。不过需要注意的是,/etc/vsftpd.conf中,如果独立启动,则把listen设为YES;如果由xinetd启动,则设置listen为NO。

[root@listentec ~]#cat /etc/xinetd.d/vsftpd
# xinetd: vsftpd CONFIG
service ftp
{
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/vsftpd
        port = 21
        instances = 4
        log_on_success += DURATION USERID
        log_on_failure += USERID
#      access_times = 2:00-8:59 12:00-23:59  //设定访问时间
#      nice = 10
}

    当然还可以增加更多的配置到vsftpd。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21948/showart_508671.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP