Centos7安装轻量级TCP转发工具rinetd注册为服务的正确姿势 并设置开机自启 实践笔记 自用

时间:2022-07-24
本文章向大家介绍Centos7安装轻量级TCP转发工具rinetd注册为服务的正确姿势 并设置开机自启 实践笔记 自用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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.110的3306端口

注意还需要在自己服务器防火墙放行对应的源端口,否则无法正常使用。

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