Linux下使用Rinetd来实现端口转发

  hehaitao074

简介:

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

方法:

1.从官网下载:http://www.boutell.com/rinetd/

[root@hht rinetdatabase]# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

2.解压下载的文件:

[root@hht rinetdatabase]#tar -xvf rinetd.tar.gz

3.修改rinetd.c 将查询到的65536修改为65535,创建/usr/man目录,在进行安装

[root@hht rinetdatabase]#cd rinetd

[root@hht rinetd]#sed -i 's/65536/65535/g' rinetd.c

[root@hht rinetd]# mkdir /usr/man/

[root@hht rinetd]#make && make install

4.成功安装:

[root@hht rinetd]# make && make install

make: 'rinetd' is up to date

install -m 700 rinetd /usr/sbin

install -m 644 rinetd.8 /usr/man/man8

##安装在 /usr/sbin 目录

5.创建配置文件:

/etc/rinetd.conf

配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]

在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或IP 地址,IP 地址0.0.0.0 将rinetd 绑定到任何可用的本地IP地址上:

例如:0.0.0.0 8080 heht.net 80

实例配置文件(新建):

[root@hht rinetdatabase]# vi /etc/rinetd.conf

allow 192.168.1.*                 //设置允许访问的ip地址信息`

0.0.0.0 8241 172.22.0.72 8883        //设置端口转发`

logfile /var/log/rinetd.log       //设置打印的log`

6.启动、关闭程序:

启动命令:

[root@hht rinetdatabase]#/usr/sbin/rinetd

或者

[root@hht rinetdatabase]#rinetd -c /etc/rinetd.conf

关闭命令:

[root@hht rinetdatabase]# killall rinetd

查看是否启动:

[root@hht rinetdatabase]# netstat -tanulp|grep rinetd

tcp  0  0 0.0.0.0:65534   0.0.0.0:*   LISTEN  20669 /rinetd

7.开机启动:

在/etc/rc.local 文件中,添加/usr/sbin/rinetd 或者 /usr/sbin/rinetd -c /etc/rinetd.conf 启动命令即可。

需要注意
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8241 -j ACCEPT