Rinetd实现端口转发

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

因为centos自带yum源和epel源没有rinetd,所以在使用rinetd前需要配置rinetd的yum源:

[root@jump ~]# cat /etc/yum.repos.d/nux-misc.repo 
[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el6/x86_64/
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

配置好yum源后使用命令yum -y install rinetd安装rinetd,安装完成后编辑rinetd配置文件/etc/rinetd.conf,配置文件格式如下:

[bindaddress] [bindport] [connectaddress] [connectport]
绑定的地址     绑定的端口  连接的地址        连接的端口

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址            源端口         目的地址               目的端口

此处以80端口为例说明:

0.0.0.0 80 www.superc.xyz 80
#将访问本机的80端口转发到www.superc.xyz的80端口,此处域名可以改为主机名或IP地址
172.26.5.253 80 www.superc.xyz 80
#将访问本机172.16.5.253地址的80端口转发到www.superc.xyz的80端口,此处域名可以改为主机名或IP地址(多网卡适用)
allow *.*.*.*
#允许任意IP访问
logfile /var/log/rinetd.log
#日志地址

此时rinetd配置完成,使用如下命令启动rinetd并设置开机自启,启动完成查看运行状态(端口映射时本地的端口必须处于没有被占用状态):

[root@jump ~]# systemctl enable rinetd
rinetd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig rinetd on
[root@jump ~]# systemctl start rinetd
[root@jump ~]# systemctl status rinetd
● rinetd.service - SYSV: rinetd is a TCP redirection server
 Loaded: loaded (/etc/rc.d/init.d/rinetd; bad; vendor preset: disabled)
 Active: active (running) since Tue 2018-01-23 10:16:03 UTC; 8s ago
 Docs: man:systemd-sysv-generator(8)
 Process: 115828 ExecStart=/etc/rc.d/init.d/rinetd start (code=exited, status=0/SUCCESS)
 Memory: 280.0K
 CGroup: /system.slice/rinetd.service
 └─115838 /usr/sbin/rinetd

Jan 23 10:16:03 jump systemd[1]: Starting SYSV: rinetd is a TCP redirection server...
Jan 23 10:16:03 jump rinetd[115828]: Starting rinetd: [ OK ]
Jan 23 10:16:03 jump systemd[1]: Started SYSV: rinetd is a TCP redirection server.

至此rinetd配置完成,访问rinetd所在节点IP的80端口会跳到www.superc.xyz网站。

点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注