Linux利用rinetd快速实现TCP端口转发

前言

很多时候我们搭建某些服务后,发现本地连接效果不给力,但是我们有一个国内机器,由于国内机器出去走BGP线路,国内机器连接国外效果好,本地连接国内效果也不错,这样我们就可以搭建一个跳板,从国内去连接国外服务器,常见的转发有Rinetd、Haproxy、iptables、socat,前面2种只能转发TCP,后面TCP/UDP都可以转发,Rinetd工具用来实现快速配置和修改端口转发。其配置简单方便 对新手更友善

当然也可以用来做本地端口转发 譬如OVZ的BBR就有利用Rinetd进行端口转发而实现配置BBR

安装

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar xzvf rinetd.tar.gz
cd rinetd
make
make install

注意:如果执行make install时可能出现错误:缺少目录/usr/man/man8,此时执行 mkdir -p /usr/man/man8 创建目录即可。

创建配置文件:

touch  /etc/rinetd.conf

编辑配置文件

vi /etc/rinetd.conf

写入配置:

按下键盘 “i” 进行编辑

0.0.0.0 8011 10.36.0.11 8088

编辑结束后 按 :wq 保存并退出

其多个转发可以写入多行,一行一个即可。

[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址 源端口 目的地址 目的端口
0.0.0.0表示本机绑定所有可用地址,如果有多个IP可单独绑定。
此配置将所有发往本机8011端口的请求转发到10.36.0.11的8088端口。

启动程序

killall rinetd ##先关闭进程
rinetd -c /etc/rinetd.conf ##启动转发

启动后,可以利用netstat -ntlp 对rinetd端口情况进行查看。

如果需要开机自启,将rinetd -c /etc/rinetd.conf写入/etc/rc.local。

或者执行以下操作:

echo "rinetd -c /etc/rinetd.conf " >>/etc/rc.local
chmod +x /etc/rc.local

本文转自刺客博客

Linux下利用rinetd快速实现TCP端口转发