欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-21 19:07:40
...

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

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

简单解释(可以是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

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

#重新加载
systemctl  daemon-reload
#开机自启rinetd
systemctl enable rinetd.service   

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

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