linux rinetd 端口转发部署

linux下简单好用的工具rinetd,实现端口映射/转发/重定向

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

官网地址:http://www.boutell.com/rinetd

软件下载:wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

软件安装:

1
2
3
4
5
#解压安装
tar zxvf rinetd.tar.gz
cd rinetd
make
make install
执行过程中如果出现下面的错误

1
install: cannot create regular file `/usr/man/man8’: No such file or directory
需要手动创建一下文件夹,重新编译安装即可

1
mkdir -p /usr/man/man8
然后开始配置文件.

1
2
3
4
#vim /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080
0.0.0.0 9090 192.168.0.103 3389
1.2.3.4 80 192.168.0.10 80
说明一下(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机8080端口的请求转发到172.19.94.3的8080端口
将所有发往本机9090端口的请求转发到192.168.0.103的3389端口
将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口

命令格式是:

1
2
3
4
5
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
启动程序:

1
2
3
pkill rinetd #关闭进程
rinetd -c /etc/rinetd.conf ##启动转发
#把这条命令加到/etc/rc.local里面就可以开机自动运行
查看状态:

1
netstat -antup
需要注意:

1
2
3
4
5
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT
 因为我们的跳板机都是转发的数据库和redis的端口,运行了一段时间后每天早上来rinetd服务就挂了,没办法就执行写个脚本检查pid号,如果挂了就重启。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

#rinetd pid check

pid=ps -ef |grep rinetd |grep -v grep

if [ $? -ne 0 ]
then
rinetd -c /etc/rinetd.conf
echo “Start executive time:”date
else

echo rinetd pid is running…
echo date is :date
fi

crontab -l
1 */2 * * * /usr/local/src/pid-check.sh >> /tmp/rinetd.log 2>&1

#每两个小时监测一次.

上一篇:00032-layui 树形下拉选择 xmSelect(二):数据懒加载


下一篇:Linux系统编程——进程入门