1. Rinetd
Rinetd 是为在一个 Unix 和 Linux 操作系统中为重定向传输控制协议(TCP)连接的一个工具。
Rinetd 是单一过程的服务器,它处理任何数量的连接到在配置文件 etc/rinetd 中指定的地址/端口对。
尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。
Rinetd只能代理(重定向)TCP 的链接,不能重定向 UDP 的链接
2. 仓库地址
3. 源码编译安装
wget https://github.com/samhocevar/rinetd/releases/download/v0.73/rinetd-0.73.tar.gz
tar zxvf rinetd-0.73.tar.gz && cd rinetd-0.73
make && make install
logs:
/usr/bin/mkdir -p '/usr/local/etc'
/usr/bin/install -c -m 644 rinetd.conf '/usr/local/etc'
/usr/bin/mkdir -p '/usr/local/share/man/man8'
/usr/bin/install -c -m 644 rinetd.8 '/usr/local/share/man/man8'
4. 配置rinetd.conf
4.1. 格式
[BindAddress]: 绑定地址
[BindPort]: 绑定端口
[ConnectAddress]: 连接地址
[ConnectPort]: 连接端口
或
[Source Address]: 源地址
[Source Port]: 源端口
[Destination Address]: 目的地址
[Destination Port]: 目的端口
4.2. 配置规则
cat /etc/rinetd.conf
0.0.0.0 8080 172.19.94.3 8080 #将所有发往本机8080端口的请求转发到172.19.94.3 8080端口
0.0.0.0 2222 172.19.94.3 3389 #将所有发往本机2222端口的请求转发到172.19.94.3 3389端口
1.2.3.4 80 192.168.0.10 80 #将所有发往1.2.3.4 80端口的请求转发到192.168.0.10 80端口
allow *.*.*.* #设置允许访问的IP地址信息
logfile /var/log/rinetd.log #设置打印log的位置
从0.70版本开始rinetd已经支持UDP转发,写法如下:
127.0.0.1 8000/udp 192.168.1.2 8000/udp
5. 服务启停
/usr/sbin/rinetd -c /etc/rinetd.conf