说起端口转发策略,我们的万金油iptables可以说是最好的。但是iptables对于小白而言存在一定的难度。今天介绍一款对小白非常友好的端口转发工具rinetd,最初它仅能转发tcp流量,可以用来加速网站访问,当然也可以用于加速一些特殊的服务流量。
安装
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 目标端口
例如转发网站80和443端口实现加速
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.101的80/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对小白非常友好,转发配置极为简单。
评论