Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。


实验环境

centos6.5_x64


实验软件

rinetd.tar.gz


软件安装

cp -pv /etc/hosts /etc/hosts.bak

echo 192.168.10.15 centos6  > /etc/hosts

sed -i.bak 's/centos6/rin/g' /etc/sysconfig/network

yum install -y gcc make lsof htop


tar zxvf /root/rinetd.tar.gz

mkdir -pv /usr/man/man8

touch /var/log/rinetd.log

cd /root/rinetd && make && make install


cat /etc/rinetd.conf

0.0.0.0 8080 120.244.154.89 8080

0.0.0.0 443 120.244.154.89 443

0.0.0.0 3006 120.244.154.89 3306 

logfile /var/log/rinetd.log

内网ip 0.0.0.0/192.168.10.0/24  端口 外网ip 端口号


touch /etc/init.d/rinetd && chmod +x /etc/init.d/rinetd  创建启动脚本

cat /etc/init.d/rinetd 

#!/bin/bash


EXEC=/usr/sbin/rinetd

CONF=/etc/rinetd.conf

PID_FILE=/var/run/rinetd.pid

NAME=Rinetd

DESC="Rinetd Server"


case "$1" in

    start)

        if [ -x "$PID_FILE" ]; then

            echo "$NAME is running ..."

            exit 0

        fi


        $EXEC -c $CONF


        echo -e "\e[1;32m$NAME is running\e[0m"

    ;;

    stop)

        if [ -f "$PID_FILE" ]; then

            kill `cat $PID_FILE`


            while [ -x "$PID_FILE" ]

            do

                echo "Waiting for $NAME to shutdown..."  

                sleep 1

            done


            rm -f $PID_FILE

        fi


        echo -e "\e[1;31m$NAME stopped.\e[0m"

    ;;

    restart)

        $0 stop

        $0 start

    ;;

    status)

        if [ -f $PID_FILE ]; then

            echo "$NAME is running ..."

        else

            echo "$NAME stopped."

        fi

    ;;

    *)

        echo $"Usage: $0 {start|stop|restart|status}"

        exit 2

    ;;

esac


exit 0

service rinetd restart && chkconfig --level 35 rinetd on