使用rinetd做端口转发

最近项目上遇到一个需要代理做多个端口转发的需求,考虑到需求只是做tcp的网络转发没有业务需求用nginx比较繁琐,就使用了rinetd,整理记录一下。

一、安装rinetd软件
1、wget http://www.boutell.com/rinetd/http/rinetd.tar.gz #下载安装文件;
2、tar zvxf rinetd.tar.gz #解压下载到的文件;
3、cd rinetd/ #进入到解压目录;
4、sed -i ‘s/65536/65535/g‘ rinetd.c #将rinetd.c文件中65536修改为65535;
5、mkdir /usr/man #创建目录;
6、make&&make install #编译安装;
7、编译安装完成后就可以使用rinetd命令了。

二、修改配置文件配置端口映射的规则
1、修改配置文件,需要在/etc目录下创建rinetd.conf文件,并在文件中填写端口映射的规则:
配置文件映射规则格式如下
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口

2、配置规则举例,比如将10.10.10.10的80端口映射为20.20.20.20的90端口则规则为:
10.10.10.10 80 20.20.20.20 90

3、创建配置文件并填写规则:
vim /etc/rinetd.conf #然后输入如下规则,保存退出即可;
10.10.10.10 80 20.20.20.20 90

三、启动rinetd服务:
rinetd -c /etc/rinetd.conf

四、配置开机启动
1、简单方法:
把“rinetd -c /etc/rinetd.conf”这条命令加到/etc/rc.local里面就可以开机自动运行

2、配置服务脚本:
vim /etc/init.d/rinetdServer #然后输如以下内容;

#!/bin/bash
# The next lines are for chkconfig on RedHat systems.
# chkconfig: 2345 86 10
# description: Starts and stops xxx Server 

# The next lines are for chkconfig on SuSE systems.
# /etc/init.d/rinetdServer
#
### BEGIN INIT INFO
# Provides:xxxx
# Short-Description: Starts and stops rinetd Server
# Description: Starts and stops rinetd Server
### END INIT INFO

rinetd_pid=`ps -ef | grep rinetd.conf | grep -v grep | awk ‘{print $2}‘`
proc_count=`ps -ef | grep rinetd.conf | grep -v grep | wc -l`
proc_run="rinetd server is running......"
proc_stop="rinetd server is stopped!"
rinetd_conf=/etc/rinetd.conf

case $1 in
   start)
        rinetd -c $rinetd_conf
           ;;
    stop)
        kill -9 $rinetd_pid
           ;;
   restart)
          kill -9 $rinetd_pid
      rinetd -c $rinetd_conf
            ;;
     status)
           [ $proc_count -eq 1 ] && echo $proc_run || echo $proc_stop
             ;;
          *) echo "$0 {start|stop|restart|status}"
             exit 4
             ;;
esac

五、增加脚本与进程检查
1、vim /opt/shell/rinetdCheck  #添加如下代码,保存;

#!/bin/bash

source /etc/profile

proc_count=`ps -ef | grep rinetd.conf | grep -v grep | wc -l`
start_file=/etc/init.d/rinetdServer

[ $proc_count -ne 1 ] && $start_file start

2、crontab -e配置计划任务每5分钟运行一次脚本
/5 * /opt/shell/rinetdCheck >/dev/null 2>&1

原文地址:http://blog.51cto.com/rongshu/2308789

时间: 2024-11-10 09:59:54

使用rinetd做端口转发的相关文章

linux下用rinetd做端口转发

原文转自:http://blog.chinaunix.net/uid-345389-id-2131648.html 经常遇到端口转发的情况,用iptable是经常的,不过每次都需要查手册.看到菜包子的文章,感觉还不错,测试感觉很好用. 端口转发映射的程序叫rinetd,并没有发现版本之说,只有一个下载地址.直接manke编译安装即可. [[email protected] tmp]# tar xvfz rinetd.tar.gz rinetd/rinetd/getopt.hrinetd/rine

CentOS下用rinetd做端口转发

windows下的端口转发一般用的是自带的nat和porttunnel.portmap linux下端口转发映射的程序叫rinetd,启动方法rinetd -c /etc/rinetd.conf  ,pkill rinetd  关闭进程 工具主页:http://www.boutell.com/rinetd/ 软件下载,解压安装 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz tar zxvf rinetd.tar.gz make mak

使用iptables做端口转发

#!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprob

nginx + apache 做端口(转发)

nginx + apache 做端口转发 最近公司需要搭建一个内容管理系统,用的框架是dedecms,没有多考虑,首选的就是apache,因为公司的服务器是centos,所以一通折腾之后安装好了apache,php,以及各种模块及依赖库.      在安装好之后启动apache,发现无法启动,说是80端口被占用,经过netstat -anp | grep 80 之后发现是ngnix占用了该端口.因为这台服务器一直在使用nginx + unicorn 来跑rails项目,所以这个nginx是万万不

通过rinetd实现端口转发来访问内网的服务

一.   问题描述 通过外网来访问内网的服务 二.   环境要求 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 三.   操作方法 做端口映射的方案有很多,Linux下的ssh tunnel和windows下的portmap等等,这里分享一个更稳定和简单的小工具rinetd 四.   下载安装 $ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz $ tar -xvf rinetd.tar.gz $

liunx 公网跳转到内网(做端口转发)使用xshell工具

1.使用xshell连接到公网(ip:port)用户名密码 2.在此处添加转移规则 3.右键点击添加(选择socks4/5协议 端口 填写你需要转发的端口) 3.连接到内网 跟之前一样(ip:port)不过,这里需要代理 4.添加代理端口 上传文件可使用(xftp)也可以根据RZ命令 原文地址:https://www.cnblogs.com/aizj/p/9210709.html

利用iptables做端口转发

#!/bin/bash #sh forward_port.sh add/del port #sh forward_port.sh add 80 if [ -z $1 ];then echo "参数1为空" elif [ -z $2 ];then echo "参数2为空" fi mode=$1 pro='tcp' #src_host='47.97.205.48' src_host='47.97.205.48' src_port=$2 Dst_Host='183.129

Linux端口转发的几种常用方法

0x00 背景 端口转发是一个常用的功能,不管是在服务器运维还是在渗透领域,都需要用到.在近期遇到一个问题就是一个服务的端口不能进行配置,但是由于出口硬件防火墙的原因,为了不修改硬件防火墙的策略,所以只能在本地做端口转发.因此尝试和寻找了以下的几种方法. 0x01 iptables和firewall iptables iptables是我第一个想到的方法,但却是最后一个尝试的,因为我对iptables并不熟悉. 1.打开IP转发功能. linux的IP转发功能是默认关闭的,而且根据很多安全加固策

SSH隧道技术----端口转发,socket代理

本文大部分参考引用加copy:http://blog.chinaunix.net/uid-20761674-id-74962.html 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地址. 公司不让我们上XX网站,限制了网址甚至IP. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤.一看XX内容,链接就中断了. 我爸是