rinetd 端口转发工具——简单解决多个服务器只有一个公网IP窘境
前言
很多系统设计中,都是一台web、一台应用服务器、一台数据库服务器,但是只有一个公网IP绑定在web服务器上对外提供访问,但是这样会导致部署维护另外两台服务器比较麻烦,这里为解决该类问题,简单介绍一下rinetd端口转发工具。
安装
# 下载安装包 github https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
# 上传到做代理转发的服务器
[root@master ~]# ll -h rinetd-0.73.tar.gz
-rw-r--r-- 1 root root 140K Aug 27 10:14 rinetd-0.73.tar.gz
[root@master ~]# tar -zxvf rinetd-0.73.tar.gz
[root@master ~]# cd rinetd-0.73/
[root@master rinetd-0.73]# ./configure
[root@master rinetd-0.73]# make && make install
# 返回0 代表编译安装成功,如果报错,根据提示下载相关工具即可
[root@master rinetd-0.73]# echo $?
0
配置
# 编辑配置文件, 默认为/etc/rinetd.com
# 规则为 本机网卡IP 本机端口 目标地址IP 目标地址端口,
# 0.0.0.0代表所有网卡,如无特殊需求配置0.0.0.0即可
[root@master ~]# vi /etc/rinetd.conf
# 创建测试案例 为本机IP代理访问123.249.31.8 3001端口
# 一行代表一个端口代理转发,多行代表多个.
[root@master ~]# cat /etc/rinetd.conf
0.0.0.0 2222 123.249.31.8 3001
# 启动服务
[root@master ~]# rinetd
[root@master ~]# ps -ef |grep rinetd
root 76847 1 0 14:51 ? 00:00:00 rinetd
root 76914 85219 0 14:51 pts/0 00:00:00 grep --color=auto rinetd
[root@master ~]# netstat -ntlp |grep rinetd
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 76847/rinetd
测试
我本地的服务器IP为10.192.231.105,通过浏览器可以访问到123.249.31.8 3001该服务器所显示内容
总结
代理转发的工具很多,像iptable、nginx也能实现相关功能, 或者使用NAT也可以,相比较起来rinetd安装配置维护比较简单,但是使用过程中敏感端口、高危端口等还是要做好源地址限制,减少暴露面。