Linux下使用Rinetd搭建一个中转服务器来实现端口转发

玩技站长
玩技站长
管理员, Keymaster
11055
文章
0
粉丝
运维笔记评论669字数 1095阅读3分39秒阅读模式

如何搭建一个中转服务器?Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上。但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一个应用层端口转发程序Rinetd。Rinetd短小、高效,配置起来比iptables也简单很多。

Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。文章源自玩技e族-https://www.playezu.com/158815.html

一:安装方式一

CentOS文章源自玩技e族-https://www.playezu.com/158815.html

官方源中不具有Rinetd,所以需要先安装三方源。文章源自玩技e族-https://www.playezu.com/158815.html

更新环境文章源自玩技e族-https://www.playezu.com/158815.html

yum -y update

配置三方源文章源自玩技e族-https://www.playezu.com/158815.html

32位系统

$ vim /etc/yum.repos.d/nux-misc.repo
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/i386/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

64位系统

$ vim  /etc/yum.repos.d/nux-misc.repo:
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

安装Rinetd文章源自玩技e族-https://www.playezu.com/158815.html

$ yum --enablerepo=nux-misc install rinetd

Ubuntu文章源自玩技e族-https://www.playezu.com/158815.html

$ apt-get install rinetd

编译安装文章源自玩技e族-https://www.playezu.com/158815.html

$ wget https://www.playezu.com/pan/down.php/8678f3dcc5cb3b12898b68666e68bfe2.gz
$ mkdir  -p /usr/man/man8   #默认会把man文件放么/usr/man/man8下面,如果没有这个目录会报目前不存在,但不影响使用. 
$ ./configure
$ make && make install
观察下config文件的路径位置
我的是这里 rinetd.conf '/usr/local/etc'

配置文件路径

配置端口转发的配置文件在/etc/rinetd.conf文章源自玩技e族-https://www.playezu.com/158815.html

配置文件格式

[bindaddress] [bindport] [connectaddress] [connectport]
  绑定的地址    绑定的端口      连接的地址         连接的端口
[Source Address] [Source Port] [Destination Address] [Destination Port]
         源地址               源端口              目的地址                   目的端口
在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或IP地址,IP 地址0.0.0.0将rinetd绑定到任何可用的本地IP地址上。例如:0.0.0.0 8080 www.playezu.com 80

配置文件规则

$ vim /etc/rinetd.conf

0.0.0.0 8080 172.19.94.3 8080

0.0.0.0 2222 192.168.0.103 3389

1.2.3.4 80 192.168.0.10 80

allow *.*.*.*
或者指定ip段
allow 192.168.1.*                 //设置允许访问的ip地址信息

logfile /var/log/rinetd.log

配置文件说明

0.0.0.0表示本机绑定所有可用地址

将所有发往本机8080端口的请求转发到172.19.94.3的8080端口

将所有发往本机2222端口的请求转发到192.168.0.103的3389端口

将所有发往1.2.3.4的80端口请求转发到192.168.0.10的80端口

allow设置允许访问的ip地址信息,*.*.*.*表示所有IP地址

logfil设置打印的log的位置

二 :启动规则

启动:
rinetd -c /etc/rinetd.conf

查看状态:
netstat -antup 

netstat -tanulp | grep rinetd

如果想停止:
pkill rinetd

killall rinetd

# 检查监控的端口是否开启

netstat -tanop | grep 端口号

三:设置开机自动启动转发规则

首先:chmod 755 /etc/rc.d/rc.local   然后编辑:/etc/rc.local
加入:
rinetd -c /etc/rinetd.conf

echo rinetd >> /etc/rc.local
cat /etc/rc.local

特备注意事项:文章源自玩技e族-https://www.playezu.com/158815.html

1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
例如:
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

一:安装方式二

更新

yum -y update

软件下载

wget https://www.playezu.com/pan/down.php/8678f3dcc5cb3b12898b68666e68bfe2.gz

解压

tar zxvf rinetd.tar.gz

打开rinetd目录

cd rinetd      #如果有版本号的话就进入下版本号解压出来的目录

修改端口

sed -i ‘s/65536/65535/g’ rinetd.c  #如果命令不生效就去所在目录所有下这个端口手动改下

创建目录

mkdir  -p /usr/man/man8

安装gcc

yum install -y gcc

编译安装

./configure
make && make install      #编译后注意conf文件所在路径的位置

映射端口

打开/etc/rinetd.conf

0.0.0.0 4444 Baidu.com 4444

启动/重启/关闭命令

关闭:pkill rinetd

重启:rinetd -s reload

启动:rinetd -c /etc/rinetd.conf    #编译后注意conf文件所在路径的位置

查看是否启动

netstat -antup

加入开机启动项

打开/etc/rc.local

在最后插入rinetd -c /etc/rinetd.conf   #编译后注意conf文件所在路径的位置

原创声明:本文章为原创内容,所有文章均由博主亲自撰写,严格遵循原创原则。我们承诺不使用任何人工智能生成的内容,所发布的每一篇文章都经过深思熟虑,旨在为读者提供真实、有价值的观点和信息。我们坚信原创才是知识分享的根本,致力于为广大读者呈现最具真实性和独特性的文章。感谢您的支持与关注,欢迎持续关注我们的原创内容。

 最后更新:2022-6-5
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证