Chinaunix首页 | 论坛 | 博客
  • 博客访问: 535325
  • 博文数量: 86
  • 博客积分: 1076
  • 博客等级: 准尉
  • 技术积分: 1018
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-02 19:15
文章分类

全部博文(86)

文章存档

2013年(15)

2012年(69)

2011年(2)

分类: LINUX

2011-12-27 12:52:24

利用busybox内置的telnetd搭建开发板端的telnet服务器,采用xinetd管理
1、xinetd移植
   到网上下载xinetd-2.3.14.tar.gz,根据你的嵌入式平台交叉编译之,例如我的平台是:
   #make CC=unicore32-linux-gcc
    (我没有Install,所以就没有执行./configure之类的配置)
   编译完成之后,在xinetd目录下生成xinetd的可执行文件,可以将其放在usr/sbin/目录下,然后在contrib目录下会有一些脚本和配置文件。
   分别将xinetd.d和xinetd.conf拷贝到etc/目录下,将xinetd拷贝到/etc/init.d/目录下。
    我们在运行#/etc/init.d/xinted restart的时候,可能会报一些错误,主要就是xinetd这个脚本里面的一些路径和路径下的文件问题,可以根据提示信息自行修改,我给出我的配置信息。
(1)、/etc/init.d/xinetd
  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides: inetd
  4. # Required-Start: $local_fs $remote_fs
  5. # Required-Stop: $local_fs $remote_fs
  6. # Should-Start: $syslog
  7. # Should-Stop: $syslog
  8. # Default-Start: 2 3 4 5
  9. # Default-Stop: 0 1 6
  10. # Short-Description: Start or stop the xinetd daemon.
  11. ### END INIT INFO

  12. # clear poisonned environment
  13. unset TMPDIR

  14. NAME=xinetd
  15. DAEMON=/usr/sbin/$NAME
  16. PIDFILE=/var/run/$NAME.pid

  17. test -x "$DAEMON" || exit 0

  18. test -e /etc/default/$NAME && . /etc/default/$NAME
  19. case "$INETD_COMPAT" in
  20.     [Yy]*)
  21.         XINETD_OPTS="$XINETD_OPTS -inetd_compat"
  22.         if perl -MSocket -e 'exit (!socket($sock, AF_INET6, SOCK_STREAM, 0))'; then
  23.             XINETD_OPTS="$XINETD_OPTS -inetd_ipv6"
  24.         fi
  25.         ;;
  26. esac

  27. . /lib/lsb/init-functions

  28. checkportmap () {
  29.     if grep "^[^ *#]" /etc/xinetd.conf | grep -q 'rpc/'; then
  30.         if ! rpcinfo -u localhost portmapper >/dev/null 2>&1; then
  31.             echo
  32.             echo "WARNING: portmapper inactive - RPC services unavailable!"
  33.             echo " Commenting out or removing the RPC services from"
  34.             echo " the /etc/xinetd.conf file will remove this message."
  35.             echo
  36.         fi
  37.     fi
  38. }

  39. case "$1" in
  40.     start)
  41.         checkportmap
  42.         log_daemon_msg "Starting internet superserver" "$NAME"
  43.         start-stop-daemon --start --quiet --background --exec "$DAEMON" -- \
  44.             -pidfile "$PIDFILE" $XINETD_OPTS
  45.         log_end_msg $?
  46.         ;;
  47.     stop)
  48.         log_daemon_msg "Stopping internet superserver" "$NAME"
  49.         start-stop-daemon --stop --signal 3 --quiet --oknodo --exec "$DAEMON"
  50.         log_end_msg $?
  51.         ;;
  52.     reload)
  53.         log_daemon_msg "Reloading internet superserver configuration" "$NAME"
  54.         start-stop-daemon --stop --signal 1 --quiet --oknodo --exec "$DAEMON"
  55.         log_end_msg $?
  56.         ;;
  57.     restart|force-reload)
  58.         $0 stop
  59.         $0 start
  60.         ;;
  61.     status)
  62.     status_of_proc -p "$PIDFILE" "$DAEMON" xinetd && exit 0 || exit $?
  63.     ;;
  64.     *)
  65.         echo "Usage: /etc/init.d/xinetd {start|stop|reload|force-reload|restart|status}"
  66.         exit 1
  67.         ;;
  68. esac

  69. exit 0
(2)、/etc/xinetd.conf
  1. #
  2. # This is the master xinetd configuration file. Settings in the
  3. # default section will be inherited by all service configurations
  4. # unless explicitly overridden in the service configuration. See
  5. # xinetd.conf in the man pages for a more detailed explanation of
  6. # these attributes.

  7. includedir /etc/xinetd.d

(3)、/etc/xinetd.d/telnet

  1. # default: on
  2. # description: The telnet server serves telnet sessions; it uses \
  3. # unencrypted username/password pairs for authentication.


  4. service telnet
  5. {
  6.     disable              = no
  7.     instances         = 10
  8.     nice                 = 0
  9.     port                 = 23
  10.     #bind                 = 192.168.1.255
  11.    #only_from         = 192.168.1.0/24
  12.     flags = REUSE
  13.     socket_type = stream
  14.     wait = yes
  15.     user = root
  16.     server = /sbin/telnetd
  17.     server_args        = -l /bin/sh -p 23
  18.     log_on_failure += USERID
  19. }

 

2、配置完了之后,配置你的网卡,设置IP之类的

#/etc/init.d/xinted restart

#netstat -tln

查看是否出现port23监听状态

/wifi-test # netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN

#这时你就可以在你的客户端使用telnet访问你的开办板的telnet服务器了

#telnet 192.168.1.4

阅读(1883) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

小小小毛驴2011-12-29 08:59:34

一直不明白最后那个.gz是干嘛的?