说起端口转发策略,我们的万金油iptables可以说是最好的。但是iptables对于小白而言存在一定的难度。今天介绍一款对小白非常友好的端口转发工具rinetd,最初它仅能转发tcp流量,可以用来加速网站访问,当然也可以用于加速一些特殊的服务流量。

linux使用rinetd进行tcp/udp端口转发,可加速网站

 

安装

1、安装编译依赖
#CentOS系统
yum -y install gcc make
#Debian/Ubuntu系统
apt update
apt install gcc make -y
2、编译安装rinetd
#下载rinetd
wget https://github.com/samhocevar/rinetd/releases/download/v0.70/rinetd-0.70.tar.gz
#解压
tar -zxvf rinetd-0.70.tar.gz
#进入目录
cd rinetd-0.70
#编译安装
./bootstrap
./configure
make && make install

设置转发规则

修改配置文件vim /etc/rinetd.conf

#源IP一般填0.0.0.0
源IP 源端口 目标IP 目标端口

例如转发网站80443端口实现加速

0.0.0.0 80 100.61.126.101 80
0.0.0.0 443 100.61.126.101 443

意思是将本地80/443端口转发到100.61.126.10180/443端口。

 

启动转发rinetd转发服务

1、创建systemd服务

为了方便管理,我们可以为rinetd编写一个systemd服务。

#创建rinetd服务
vi /etc/systemd/system/rinetd.service

复制下面的内容进行保存:

[Unit]
Description=rinetd
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/sbin/rinetd -c /etc/rinetd.conf
 
[Install]
WantedBy=multi-user.target

输入命令:systemctl daemon-reload重载daemon使其生效,然后就可以使用下面的命令来管理rinetd了。

#启动rinetd
systemctl start rinetd
#设置开机启动
systemctl enable rinetd
#停止rinetd
systemctl stop rinetd
#重启
systemctl restart rinetd

rinetd的不足

1、rinetd支持转发到域名,rinetd会提前解析域名,并将解析出的IP缓存到内存中,如果您的域名解析IP发生了变化必须重启rinetd才会生效,所以rinetd并不适合转发到域名IP经常发生变化的情况;

2、rinetd只支持tcp流量的转发,不适合用于对udp有要求的流量,例如加速游戏。

0.70为二次开发版本:https://github.com/samhocevar/rinetd

 

总结

rinetd转发是几种转发方式中最为简单的,不支持反驳。rinetd仅只支持tcp流量转发这个弊端,已经在0.7之后的版本中得到修复,自然使用的是0.62版本,0.70性能未做测试。除了转发域名存在缺陷外,rinetd对小白非常友好,转发配置极为简单。

发表评论

您的电子邮箱地址不会被公开。