简单端口映射、转发、重定向工具之Rinetd

一、背景

Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。将 TCP 连接从一个 IP 地址和端口重定向到另一个。它处理文件中/etc/rinetd.conf指定的地址/端口的任意数量的连接。由于 rinetd 使用非阻塞 I/O 作为单个进程运行,因此它能够重定向大量连接而不会对机器造成严重影响。这使得伪装在防火墙内的机器上运行 TCP 服务变得切实可行。rinetd不重定向 FTP,因为 FTP 需要多个套接字。

支持系统:Win/Linux

二、安装部署

2.1 安装过程

1、下载软件

目前的最新版本是0.73

https://github.com/samhocevar/rinetd/releases

2、编译安装

./bootstrap
./configure --prefix=/data/rinetd
make&& make install

3、编辑配置文件

vim /data/rinetd/etc/rinetd.conf
0.0.0.0 33060 192.168.209.128 3306

加入一行,把发往本机所有网卡监听的33060的端口转到192.168.209.128的3306端口,当然也可以根据实际情况修改为只监听某一个本机IP。

4、启动服务

rinetd -c /data/rinetd/etc/rinetd.conf

2.2 配置文件详解

转发规则

简单端口映射、转发、重定向工具之Rinetd
[root@192_168_209_128 etc]# cat rinetd.conf  |grep -A20  bindadress
# bindadress  bindport  connectaddress  connectport  options...
# 0.0.0.0     80        192.168.1.2     80
# ::1         80        192.168.1.2     80
# 0.0.0.0     80        fe80::1         80
# 127.0.0.1   4000      127.0.0.1       3000
# 127.0.0.1   4000/udp  127.0.0.1       22           [timeout=1200]
# 127.0.0.1   8000/udp  192.168.1.2     8000/udp     [src=192.168.1.2,timeout=1200]

0.0.0.0     33060        192.168.209.128     3306

转发规则的格式如下:

bindadress  bindport  connectaddress  connectport  options 例如:

0.0.0.0 23 10.1.1.2 23

对于分配给服务器的所有 IP 地址,会将所有连接重定向到端口 23。也可以指定服务名称而不是端口号。在大多数系统上,服务名称在文件 /etc/services 中有定义。

  • 允许和拒绝规则

配置文件还可以包含允许和拒绝规则。

rinetd支持通过规则进行访问的控制,同时支持通配符匹配。

  • 日志记录 rinetd 能够生成两种格式之一的日志文件:制表符分隔格式和 Web 服务器样式的”通用日志格式”。

默认生成的是制表符分隔格式:

# logging information
logfile /var/log/rinetd.log

如果您想要 Web 服务器样式的日志文件格式,请取消注释以下行

# logcommon

2.3 创建systemd服务

1、创建systemd服务

vim /etc/systemd/system/rinetd.service
[Unit]
Description=Rinetd
After=network.target
 
[Service]
Type=forking
ExecStart=/data/rinetd/sbin/rinetd -c /data/rinetd/etc/rinetd.conf
 
[Install]
WantedBy=multi-user.target
systemctl daemon-reload && systemctl start rinetd

2、设置开机启动

systemctl enable rinetd

使用场景:

不想暴露某个端口,并且在不修改服务配置的情况下使用其他端口也可使用该服务,例如将MySQL的连接默认端口3306只允许本地连接, 转发一个33060给外部连接使用。


原文始发于微信公众号(运维贼船):简单端口映射、转发、重定向工具之Rinetd

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/176709.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!