【rinetd】CentOS7.x上轻量级TCP转发工具rinetd的安装配置

https://www.jianshu.com/p/2605d247b944

这一个写的更加全面了. 
2019.07.08 22:04:38字数 1271阅读 219

一、实验背景

Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上。

如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一个应用层端口转发程序rinetd,配置起来比iptables也简单很多。

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

虽然这些代码有点古老,版本很多年没有更新了,但很短小、高效,对于解决这种问题来说是非常完美的。

二、实验环境

操作系统: CentOS7.5 Minimal

rinted服务器: 192.168.1.103

Backend服务器: 192.168.1.107

三、安装rinetd

安装rinted方式主要有两种:rpm包安装和源码编译安装

rpm安装方式

网上有人用源码包编译了rpm安装包,联网的情况下我们可以直接配置yum源安装,离线的情况下我们可以将下载的rpm包拷贝到无网的服务器,因为主包没有依赖,安装显得异常简单方便。

配置yum仓库安装

#  vim /etc/yum.repos.d/nux-misc.repo

####################################################

[nux-misc]

name=Nux Misc

baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/

enabled=0

gpgcheck=1

gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

#######################################################

 

# yum  -y install  rinetd  --disablerepo="*"  --enablerepo=nux-misc

 

# wget  http://li.nux.ro/download/nux/misc/el7/x86_64//rinetd-0.62-9.el7.nux.x86_64.rpm

# rpm  -ivh  rinetd-0.62-9.el7.nux.x86_64.rpm

 
 
 

# rpm -ql  rinetd

# cat  /etc/rc.d/init.d/rinetd

# cat /etc/rinetd.conf

# /usr/sbin/rinetd  --help

#  /usr/sbin/rinetd  -v

 
 

# systemctl  status rinetd

 

源码编译安装

#  yum  -y install  gcc make

# wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

# cd rinetd

#  mkdir -p /usr/man/man8

# make && make install

 

# which rinetd

# /usr/sbin/rinetd --help

# /usr/sbin/rinetd -v

 

# man rinetd

# man rinetd  > rinetd.txt

 

四、将源码编译安装注册成系统服务

# mkdir /usr/local/rinetd

# mkdir /usr/local/rinetd/sbin

# mkdir /usr/local/rinetd/etc/

# mkdir /usr/local/rinetd/log

# mv  /usr/sbin/rinetd  /usr/local/rinetd/sbin

#  vim  mkdir /usr/local/rinetd/etc/rinetd.conf

#############################################################

# example configuration file for rinetd

# to forward connections to port 80 on 10.10.10.2 to port 80 on 192.168.0.2

#  10.10.10.2 80 192.168.0.2 80

# to forward connections to port 80 on all addresses to port 80 on 192.168.0.2

# 0.0.0.0 80 192.168.0.2 80

# access controls can be set with allow and deny rules

# allow and deny before the first forwarding rule are global

# allow and deny after a specific rule apply to it only

# this rule allows hosts from 172.16.32.0/24 netblock

# allow 172.16.32.*

# this rule denies the host 192.168.32.12

# deny 192.168.32.12

# rinetd supports logging - to enable, uncomment the following

# logfile /var/log/rinetd.log

# by default, logs are in a tab-delimited format. Web common-log format

# is available by uncommenting the following

# logcommon

#############################################################

 

编写Unit文件

#  vim  /etc/systemd/system/rinetd.service

##########################################################

[Unit]

Description=Rinetd Daemon

After=network.service

Wants=network.service

[Service]

Type=forking

PIDFile=/var/run/rinetd.pid

ExecStart=/usr/local/rinetd/sbin/rinetd -c /usr/local/rinetd/etc/rinetd.conf

Restart=on-failure

[Install]

WantedBy=multi-user.target

###############################################################

 

#  systemctl  daemon-reload

# systemctl  start    rinetd.service

# systemctl  enable  rinetd.service

# systemctl  status  rinetd.service

 

rinetd  用于网络端口转发,运行用户只能是root

五、关于rinetd 的配置文件的配置

rpm安装的配置文件默认路径是/etc/rinetd.conf,本实验中我们将编译安装的配置文件  /usr/local/rinetd/etc/rinetd.conf

 

注意:源端口转发到目标端口时,源端口要是空闲端口,否则会报端口已被占用

关于配置文件的更多其他配置,见参考文档

六、端口转发测试

实验:将rinted服务器(192.168.1.103)的6033端口转到Backend服务器(192.168.1.107)的3306

在Backend服务器(192.168.1.107)

# systemctl  status mysqld

# ss  -tan | grep 3306

 

# firewall-cmd --zone=public--add-port=3306/tcp --permanent

# firewall-cmd --reload

在rinted服务器(192.168.1.103)

# firewall-cmd --zone=public--add-port=6033/tcp --permanent

# firewall-cmd --reload

# vim  /usr/local/rinetd/etc/rinetd.conf

#############################################

192.168.1.103 6033  192.168.1.107 3306

allow 192.168.1.*

logfile /usr/local/rinetd/log/rinetd.log

#############################################

# systemctl  restart  rinetd.service

# systemctl  status  rinetd.service

 

# echo  >  /dev/tcp/192.168.1.103/6033

# echo  >  /dev/tcp/192.168.1.107/3306

 
 

# tail  /usr/local/rinetd/log/rinetd.log

 

七、参考

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

https://www.hi-linux.com/posts/29683.html

RINETD(8) Unix System Manager's Manual

https://www.boutell.com/rinetd

生产环境中谨慎使用rinetd

https://blog.csdn.net/woshiaotian/article/details/78133195

Linux安装rinetd实现TCP端口转发

https://www.xiaoz.me/archives/10175

rinetd-0.62-9.el7.nux.x86_64.rpm

https://centos.pkgs.org/7/nux-misc-x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm.html

Port-Forwarding With rinetd

https://www.howtoforge.com/port-forwarding-with-rinetd-on-debian-etch

Comprehensive Guide to Port Redirection using Rinetd

https://www.hackingarticles.in/comprehensive-guide-to-port-redirection-using-rinetd

[转帖]【rinetd】CentOS7.x上轻量级TCP转发工具rinetd的安装配置的更多相关文章

  1. CentOS7.x上轻量级TCP转发工具rinetd的安装配置

    一.实验背景 Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上. 如果需要将流量从专用地址转发到不在您当前网络上的机器上 ...

  2. 全平台正向tcp端口转发工具rinetd的使用

    Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂. 下载 ...

  3. 代理端口转发工具rinetd

    转载: https://my.oschina.net/wuweixiang/blog/2983280 rinetd 前言 iptables 的功能当然强大,但理解与设置却有点抽象,便通过google认 ...

  4. 端口转发工具rinetd的安装与配置

    端口映射和转发在实际应用中非常常见,比如一个局域网只有一台服务器可以被互联网访问到,那么如果想通过互联网访问局域网中其他的服务,最常用的方式就是在这一台机器上开放端口,然后转发至局域网中其他主机的端口 ...

  5. linux下简单好用的端口映射转发工具rinetd 转

    linux下简单好用的工具rinetd,实现端口映射/转发/重定向 官网地址http://www.boutell.com/rinetd 软件下载 wget http://www.boutell.com ...

  6. linux下简单好用的端口映射转发工具rinetd

    linux下简单好用的工具rinetd,实现端口映射/转发/重定向官网地址http://www.boutell.com/rinetd 软件下载wget http://www.boutell.com/r ...

  7. rinetd 一个linux下的端口转发工具

    inux下使用iptables实现端口转发,配置较为复杂,使用rinetd工具可以实现快速配置和修改端口转发. 例:本机ip:1.1.1.1 需要实现访问本机的8080端口,自动转发到2.2.2.2 ...

  8. Linux端口转发工具rinetd

    介绍:Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址 ...

  9. windows上SVN服务器以及客户端TortoiseSVN的安装配置

    (1)svn的安装 1. 下载软件:Setup-Subversion-1.7.5.msi,安装就很容易了,一路NEXT 2. 把SVN的bin文件夹路径添加到环境变量中 把svn安装目录下的bin路径 ...

随机推荐

  1. 教你玩转Linux系统目录结构

    Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的.Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POS ...

  2. android studio学习---标签页分离,满足查同一个文件的不同部分

    分离一个标签窗口:右键标签页,打开上下文菜单,选择Split Vertically or Split Horizontall改变分离窗口的摆放方式:右键标签页,打开上下文菜单,选择 Change Sp ...

  3. REDELK的安装和使用

    0x00 前言简介 红队的SIEM有两个主要目标: 通过创建一个集中管理中心,收集和丰富来自多个 teamservers的所有相关操作日志,增强了红队人员的可用性和概述.这对于在操作中进行历史搜索以及 ...

  4. JavaWeb 过滤敏感词汇

    提交的表单数据,常常要检查有没有敏感词汇,如果有,需要给出提示,或者替换为*. 检查.替换敏感词汇有3种常用的方式 (1)在Servlet中操作. (2)在Filter中先检查.如果要替换敏感词汇,r ...

  5. Django rest framework ---- 权限

    Django rest framework ---- 权限 添加权限 api/utils文件夹下新建premission.py文件,代码如下: message是当没有权限时,提示的信息 # FileN ...

  6. Nginx 核心配置-location的匹配案例实战篇

    Nginx 核心配置-location的匹配案例实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.location语法规则介绍 在没有使用正则表达式的时候,nginx会先在 ...

  7. 【Tomcat】Web应用的目录结构

    创建时间:6.14 Web应用的目录结构 .xml文件不用自己写,抄头抄尾就可以 (别人的) (抄头抄尾) *注意:WEB-INF目录是受保护的,外界不能直接访问 如果访问WEB-INF目录下的htm ...

  8. springmvc多环境配置-profiles

    1 pom.xml 添加 profiles 标签 <profiles> <!--pro 线上环境--> <profile> <id>hdapp_pro& ...

  9. 混合高斯模型(Gaussian mixture model, GMM)

    1. 前言 这就是为什么我要学习一下二维高斯分布的原因: 总感觉数学知识不够用呐,顺带把混合高斯模型也回顾一下. 2. 单高斯模型(Gaussian single model, GSM) 2.1 一维 ...

  10. 第06节-开源蓝牙协议BTStack框架分析

    本篇博客根据韦东山的视频,整理所得. 本篇博客讲解BTStack的框架,首先来看一下硬件的结构: 蓝牙模块接在电脑上,或是接在开发板上.不论接在哪,我们都需要编写程序来控制这个蓝牙模块. . 我们需要 ...