Linux安裝rinetd實現TCP/UDP端口轉發(rinetd使用教程)

rinetd可較haproxy可實現UDP/TCP轉發,haproxy僅能轉發TCP。(以下為Centos7環境)
一、安裝rinetd
Github鏈接:https://github.com/samhocevar/rinetd
安裝依賴,編譯工具
gcc是GCC中的GUN C Compiler(C 編譯器)
g++是GCC中的GUN C++ Compiler(C++編譯器)
以CentOS為例,安裝後是沒有C語言和C++編譯環境的,需要手動安裝
#安裝依賴
yum -y install gcc gcc-c++ make automake
#下載rinetd,無法鏈接可看文章:https://xiaosb.com/2022/06/01/linux-shell-proxy/
#或先下載後上傳
wget https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
#解壓
tar -zxvf rinetd-0.73.tar.gz
#進入目錄
cd rinetd-0.73
#編譯安裝
./bootstrap
./configure
make && make install
二、轉發配置文件
rinetd配置文件的格式如下:

0.0.0.0:源IP
2018:源端口
192.168.1.2:目標IP
2019:目標端口

TCP轉發文件編寫格式
#新建rinetd配置文件
vi /etc/rinetd.conf
#填寫如下內容,意為監聽本地2022端口並轉發至192.168.1.2的2023端口
0.0.0.0 2022 192.168.1.2 2023
#以配置文件啟動rinetd
rinetd -c /etc/rinetd.conf
UDP轉發文件編寫格式
127.0.0.1 8000/udp 192.168.1.2 8000/udp
意為監聽本地8000UDP端口,並轉發至192.168.1.2的8000端口
三、創建systemd服務
#創建rinetd服務
vi /etc/systemd/system/rinetd.service
#寫入以下內容
[Unit]
Description=rinetd
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/sbin/rinetd -c /etc/rinetd.conf

[Install]
WantedBy=multi-user.target
systemctl daemon-reload重載daemon使其生效,以下為rinetd服務管理命令
#啟動rinetd
systemctl start rinetd
#設置開機啟動
systemctl enable rinetd
#停止rinetd
systemctl stop rinetd
#重啟
systemctl restart rinetd
rinetd支持轉發到域名,rinetd會提前解析域名,並將解析出的IP緩存到內存中,域名解析IP發生瞭變化必須重啟rinetd才會生效更改,域名IP經常發生變化的情況下需要自己寫個shell重啟rinetd。
需要UDP且需要攜帶原始IP地址(haproxy的proxy參數),可考慮混用。可用於轉發Windows remote desk。


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/50475/