LINUX 下 rinetd服务实现端口映射转发
1、下载wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
版本号rinetd 0.62
2、安装
tar zxvf rinetd.tar.gz
cd rinetd
3、运行make #可能会出现错误,需如下修改:
vi rinetd.c
输入/bindPort >= 65536 查询
输入/connectPort >= 65536查询
将查询到的65536修改为65535 不然在make的时候会提示超出系统最大定义端口
4、手动建目录/usr/man/man8
5、make install
成功后会提示文件路径install -m 700 rinetd /usr/sbin,即程序放在此位置
6、建立配置文件
/etc/rinetd.conf
内容格式:源IP 源端口 要跳转的IP 要跳转的端口
7、启动程序:rinetd 或者 rinetd -c /etc/rinetd.conf
8、查看是否启动成功:netstat -tanulp|grep rinetd
9、加入开机启动:
vi /etc/rc.d/rc.local
加入/usr/sbin/rinetd
或者自己写个 系统服务
vi /etc/init.d/rinetd
拷贝下面的内容进去
************
#!/bin/bash
# rinetd Startup script
# chkconfig: 2345 55 25
# description: rinetd
rinetd=/usr/sbin/rinetd
rinetd_config=/etc/rinetd.conf
RETVAL=0
prog=”rinetd”
# Source function library.
. /etc/rc.d/init.d/functions
# Start rinetd daemons functions.
start() {
pid=`pidof $prog`
if [ -z $pid ] ; then
echo -n $”Starting $prog: “
daemon $rinetd -c ${rinetd_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/run/rinetd.lock
return $RETVAL
else
echo “$prog already running….”
echo “pid is $pid”
exit 1
fi
}
# Stop rinetd daemons functions.
stop() {
echo -n $”Stopping $prog: “
killproc $rinetd
RETVAL=$?
echo
[ $RETVAL = 0 ]
}
# reload rinetd service functions.
# See how we were called.
case “$1” in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $”Usage: $prog {start|stop|restart|status|help}”
exit 1
esac
exit $RETVAL
************
保存
chmod +x /etc/init.d/rinetd
chkconfig –level 2345 rinetd on
10、其他注意:
不支持FTP的跳转
要停掉程序:pkill rinetd
最活跃的读者