Centos7安裝輕量級TCP轉發工具rinetd註冊爲服務的正確姿勢 並設置開機自啓 實踐筆記 自用

CentOS-7-x86_64-Minimal-1708

rinetd 0.62

注意rinetd只支持TCP不支持UDP轉發,需要udp的可以不用往下看了

1.下載官方rinetd源碼編譯安裝(boutell.com 已不再是rinetd的官網,作者已把代碼開源到Github上)

我這邊以當前0.62版本爲例

rinetd官網

若下載很慢,使用下面我提供的官方原版軟件

源地址失效的話用百度雲盤鏈接下載
鏈接: rinetd.tar.gz官方原版 提取碼:31k7

2.源碼編譯安裝

#安裝依賴
yum install gcc gcc-c++ make git -y
#克隆源碼
git clone https://github.com/boutell/rinetd.git
#進入rinetd源碼目錄
cd rinetd
#創建手冊目錄
mkdir -p /usr/man/man8
#編譯安裝
make && make install
[root@localhost rinetd]# mkdir -p /usr/man/man8
[root@localhost rinetd]# make && make install
cc -DLINUX -g   -c -o rinetd.o rinetd.c
rinetd.c:176:6: 警告:與內建函數‘log’類型衝突 [默認啓用]
 void log(int i, int coSe, int result);
      ^
cc -DLINUX -g   -c -o match.o match.c
cc rinetd.o match.o -o rinetd
install -m 700 rinetd /usr/sbin
install -m 644 rinetd.8 /usr/man/man8
[root@localhost rinetd]#
[root@localhost rinetd]# /usr/sbin/rinetd -v
rinetd 0.62
#導出手冊
man rinetd  > rinetd.txt

3.註冊成系統服務

#創建rinetd相關文件夾
mkdir /usr/local/rinetd /usr/local/rinetd/sbin /usr/local/rinetd/etc/ /usr/local/rinetd/log
#移動可執行文件
mv  /usr/sbin/rinetd  /usr/local/rinetd/sbin
#編輯配置文件 
vim /usr/local/rinetd/etc/rinetd.conf
#配置文件內容
#vim /usr/local/rinetd/etc/rinetd.conf
#
0.0.0.0 3306 192.168.0.110 3306
#0.0.0.0 3306 3a9f2f27648e4c85a9c5d2e7fba12ae0in01.internal.cn-north-4.mysql.rds.myhuaweicloud.com 3306
0.0.0.0 6379 redis-47c5c0d-dcs-ps4e.dcs.huaweicloud.com 6379
logfile /usr/local/rinetd/log/rinetd.log

在這裏插入圖片描述

簡單解釋(可以是ip也可以是域名,也可以是外網ip[一般不轉發到外網])

0.0.0.0 3306 192.168.0.110 3306 
0.0.0.0            --- 源IP
3306               --- 源端口
192.168.0.110      --- 目標IP
3306               --- 目標端口
上面配置的意思是將本機3306端口轉發到192.168.0.1103306端口

注意還需要在自己服務器防火牆放行對應的源端口,否則無法正常使用。

4.編寫服務文件

vim  /lib/systemd/system/rinetd.service

服務文件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
#開機自啓rinetd
systemctl enable rinetd.service   

在這裏插入圖片描述

5.rinetd常見命令

systemctl enable rinetd.service    //開機自啓rinetd

systemctl disable rinetd.service    //禁用開機自啓rinetd

systemctl start rinetd.service    //啓動rinetd

systemctl stop rinetd.service    //關閉rinetd   

systemctl restart rinetd.service   //重啓rinetd 

systemctl status rinetd.service   //查看狀態rinetd 

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