虽然Linux本身自带的iptables可以实现端口转发功能,但其配置相对复杂。
将TCP连接从一个IP地址和端口重定向到另一个IP地址和端口。rinetd是一个单进程服务器,处理与文件中指定的地址/端口对的任意数量的连接/etc/rinetd.conf
。由于rinetd使用非阻塞I / O作为单个进程运行,因此它能够重定向大量连接,而不会严重影响计算机。rinetd 不会重定向FTP,因为FTP需要多个套接字。
socket 的原意是“插座”,在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
当访问某IP的某个端口,会自动转发到指定的IP和端口
官网> https://boutell.com/rinetd/
实战环境
# 准备环境--三台机器
rinetd-server----192.168.246.188
web-1----192.168.246.158
web-2----192.168.246.159
#所有机器关闭防火墙和selinux
一、部署rinetd服务
1.安装编译环境
[root@rinetd-server ~]# yum install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake -y
2.进入安装目录
[root@rinetd-server ~]# cd /usr/local/
3.获取源码包
[root@rinetd-server local]# wget https://boutell.com/rinetd/http/rinetd.tar.gz
4.解压
[root@rinetd-server local]# tar xzf rinetd.tar.gz
[root@rinetd-server local]# cd rinetd
5.创建要给必要的文件路径
[root@rinetd-server rinetd]# mkdir -p /usr/man/man8
6.安装
[root@rinetd-server rinetd]# make && make install
二、编写转发规则配置文件
1.创建端口转发的配置文件
[root@rinetd-server ~]# vim /etc/rinetd.conf
#配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]
0.0.0.0 80 192.168.246.158 80
#访问本机的80端口转发到192.168.246.158的80端口
2.# 启动服务
[root@rinetd-server rinetd]# rinetd -c /etc/rinetd.conf
[root@rinetd-server rinetd]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1223/rinetd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 898/sshd
tcp6 0 0 :::22 :::* LISTEN 898/sshd
三、配置测试web-1
[root@web-1 ~]# yum install -y nginx
[root@web-1 ~]# echo this is web-1-192.168.246.158 >> /usr/share/nginx/html/index.html
[root@web-1 ~]# systemctl start nginx