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