Centos7安装轻量级TCP转发工具rinetd注册为服务的正确姿势 并设置开机自启 实践笔记 自用
时间:2022-07-24
本文章向大家介绍Centos7安装轻量级TCP转发工具rinetd注册为服务的正确姿势 并设置开机自启 实践笔记 自用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Centos7安装轻量级TCP转发工具rinetd注册为服务的正确姿势 并设置开机自启 实践笔记 自用
- CentOS-7-x86_64-Minimal-1708
- rinetd 0.62
- 1.下载官方rinetd源码编译安装(boutell.com 已不再是rinetd的官网,作者已把代码开源到Github上)
- 2.源码编译安装
- 3.注册成系统服务
- 4.编写服务文件
- 5.rinetd常见命令
CentOS-7-x86_64-Minimal-1708
rinetd 0.62
注意rinetd只支持TCP不支持UDP转发,需要udp的可以不用往下看了
1.下载官方rinetd源码编译安装(boutell.com 已不再是rinetd的官网,作者已把代码开源到Github上)
我这边以当前0.62版本为例
若下载很慢,使用下面我提供的官方原版软件
源地址失效的话用百度云盘链接下载 链接: 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
- 甜品店切蛋糕问题(动态规划,Go语言实现)
- SQL—复制表结构及其数据
- python连接SQL报错:1366, "Incorrect string value: '\xF0\x9F\x98\x81'
- PCIE的简单配置(r8笔记第82天)
- 7个深度神经网络可视化工具,不可错过!
- Pwnhub之奇妙的巨蟒 Writeup
- WINDOW 安装mysql5.7数据库,并设置密码及相关报错
- go channel 通信通道
- SQl 语句(常见) 新建,删除,修改表,新增字段,修改默认值
- SQL处理表结构的基本方法整理(创建表,关联表,复制表)
- Go web之旅(路由篇)
- Golang插入排序
- Golang写的并行排序算法
- Go中调用dll示例
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法