linux端口映射转发工具rinetd

  
  

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