CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

一、實驗背景

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

四、關於rinetd 的配置文件的配置

rpm安裝的配置文件默認路徑是/etc/rinetd.conf,本實驗中我們將編譯安裝的配置文件 /usr/local/rinetd/etc/rinetd.conf

CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

注意:源端口轉發到目標端口時,源端口要是空閒端口,否則會報端口已被佔用
關於配置文件的更多其他配置,見參考文檔

五、端口轉發測試

實驗:將rinted服務器(192.168.1.103)的6033端口轉到Backend服務器(192.168.1.107)的3306
在Backend服務器(192.168.1.107)

# systemctl  status mysqld
# ss  -tan | grep 3306

CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

# 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

CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

# echo  >  /dev/tcp/192.168.1.103/6033
# echo  >  /dev/tcp/192.168.1.107/3306

CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

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

CentOS7.x上輕量級TCP轉發工具rinetd的安裝配置

六、參考

1.Linux下使用 Rinetd 來實現端口轉發
https://www.hi-linux.com/posts/29683.html

2.RINETD(8) Unix System Manager's Manual
https://www.boutell.com/rinetd

3.生產環境中謹慎使用rinetd
https://blog.csdn.net/woshiaotian/article/details/78133195

4.Linux安裝rinetd實現TCP端口轉發
https://www.xiaoz.me/archives/10175

5.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

6.Port-Forwarding With rinetd
https://www.howtoforge.com/port-forwarding-with-rinetd-on-debian-etch

7.Comprehensive Guide to Port Redirection using Rinetd
https://www.hackingarticles.in/comprehensive-guide-to-port-redirection-using-rinetd

轉載於https://www.jianshu.com/p/2605d247b944

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章