linux下简单好用的工具rinetd,实现端口映射/转发/重定向
引用>
linux下做地址NAT有很多种方法。比如haproxy, nginx的4层代理,linux自带的iptables等都能实现.haproxy, nginx就不说了,配置相对简单,iptables配置复杂,概念也比较多DNAT, SNAT, PREROUTING, POSTROUTING等等。其实,linux下有一个叫rinetd的工具,安装简单,配置也不复杂。1。下载安装
<代码> [root@centos-01 ~] # wget - no-check-certificate http://www.boutell.com/rinetd/http/rinetd.tar.gz//使用“不检查证书”加入no-check-certificate即可成功安装 (root@centos-01 ~) #焦油zxvf rinetd.tar.gz (root@centos-01 ~) # cd rinetd,,sed - rinetd.c s/65536/65535/g # mkdir/usr/man root@centos-01 ~ (root@centos-01 ~) #做,,制作安装 cc -DLINUX - g - c - o rinetd。o rinetd.c rinetd。c: 176:6:警告:与内建函数“日志”类型冲突(默认启用) 空白日志(int, int谈心,int结果); ^ cc -DLINUX - g - c - o匹配。o match.c gcc rinetd。o匹配。o - o rinetd (root@centos-01 ~) #安装- m 700 rinetd/usr/sbin #安装- m 644 rinetd root@centos-01 ~。8/usr/man/man8 代码>2。编辑配置文件
<代码> root@centos-01 ~ # vim/etc/rinetd.conf 0.0.0.0 8080 172.19.94.3 8080 0.0.0.0 60022 192.168.0.103 60022 0.0.0.0 80 192.168.0.10 80 日志文件/var/log/rinetd.log 说明(0.0.0.0表示本机绑定所有可用地址) 8080年将所有发往本机端口的请求转发到172.19.94.3的8080端口 60022年将所有发往本机端口的请求转发到192.168.0.103的60022端口 将所有发往本机的80端口请求转发到192.168.0.10的80端口代码>命令格式是:
引用>
bindaddress bindport connectaddress connectport
绑定的地址绑定的端口连接的地址连接的端口
或
[源地址][源端口][目的地址](目的港)
源地址源端口目的地址目的端口3。启动与关闭程序
<代码> root@centos-01 ~ # rinetd - c/etc/rinetd.conf (root@centos-01 ~) # pkill rinetd 代码>4。校验
<代码> [root@centos-01 ~] # netstat -tanulp | grep rinetd tcp 0 0 0.0.0.0:8080 0.0.0.0: * 27683/rinetd听 tcp 0 0 0.0.0.0:60022 0.0.0.0: * 27683/rinetd听 tcp 0 0 0.0.0.0:80 0.0.0.0: * 27683/rinetd听代码>需要注意:
引用>
1. rinetd.conf中绑定的本机端口必须没有被其它程序占用
2。运行rinetd的系统防火墙应该打开绑定的本机端口因为我们的跳板机都是转发的数据库等其他的端口,运行了一段时间后发现rinetd服务就挂了,没办法就执行写个脚本检查pid号,如果挂了就重启。
<代码> [root@centos-01 ~] # vim/数据/脚本/rinetd_check.sh # !/bin/bash # rinetd pid检查 pid=' p ef | grep [r] inetd的 如果[$ ?- ne 0] 然后 rinetd - c/etc/rinetd.conf 回声中断启动时间:“‘日期’ 其他的 回声rinetd pid运行…… 回声日期是:“日期” fi #加入定时任务(每两个小时监测一次) root@centos-01 ~ # crontab - l 0 */2 * * */rinetd_check sh/数据/脚本。sh在祝辞//日志/rinetd数据。日志2祝辞,1 代码>linux端口映射转发工具rinetd