向晚时光

Rinetd端口转发:手动部署及踩坑小记

笔记 ·

前段时间搞了几只国内的NAT鸡做中转,价格美丽但配置太垃。所以选择了用既能吃到BBR加速又轻量的rinetd作为端口转发。

起初直接apt install rinetd -y安装,后来发现其版本太旧了,并不支持UDP的转发,作罢。到其Github下载源码包手动编译。编译过程很简单官方仓库也有说明,但有个小坑遂记录一下。

项目仓库:

https://github.com/samhocevar/rinetd

编译流程

安装一些用到的依赖:

apt install gcc make automake dos2unix -y

下载包到本地并解压:

wget https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
tar -zvxf rinetd-0.73.tar.gz

进入解压出来的文件夹:

cd rinetd-0.73

创建配置文件:

./bootstrap

就0.73这一版本而言,这一步肯定会报错:-bash: ./bootstrap: /bin/sh^M: bad interpreter: No such file or directory,这就是我前文提到的坑点。使用dos2unix将其转换格式:

dos2unix bootstrap
//执行完会提示:dos2unix: converting file bootstrap to Unix format...

dos2unix转换完后重新执行./bootstrap

完成后,创建构建文件:

./configure

开始安装:

make && make install

安装很快几秒的事情,检查一下版本号:

rinetd -v

若为最新的0.73则安装完成。

返回上层目录删除一下安装文件(强迫症):

cd ../
rm -rf rinetd*

转发配置

端口转发的配置文件在/usr/local/etc/rinetd.conf

转发规则的写法也很好理解,配置文件插入新行,依次填入:

本机监听地址 本地监听端口 转发目的地地址 转发目的地端口

举个栗子:将本机的8080端口的TCP/UDP流量都转发到另一台IP为1.1.1.1鸡鸡的2333端口,如图。


配置Systemd

没啥好说的,配置一下systemd方便开机自启和管理:

vim /etc/systemd/system/rinetd.service

输入:

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

保存退出后:

systemctl daemon-reload

一些常用的管理命令:

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

# note, rinetd