Rinetd 是为在一个 Unix 和 Linux 操作系统中为重定向传输控制协议 (TCP) 连接的一个工具. Rinetd 是单一过程的服务器, 它处理任何数量的连接到在配置文件 / etc/rinetd 中指定的地址 / 端口对.
使用 iptables 很容易将 TCP 和 UDP 端口从防火墙转发到内部主机上. 但是如果您需要将流量从专用地址转发到甚至不在您当前网络上的机器上, 又该怎么办呢? 可以用 rinetd;
下载, 如果 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz 下载不了. 直接把地址贴到网页下载 http://www.boutell.com/rinetd/http/rinetd.tar.gz http://www.boutell.com/rinetd/http/rinetd.tar.gz下载不了。直接把地址贴到网页下载http://www.boutell.com/rinetd/http/rinetd.tar.gz
下载好解压
tar -xvf rinetd.tar.gz
进入解压目录 make && make install; 再执行 echo $? 看下有没有报错;
添加配置文件
- [root@jw rinetd]# vim /etc/rinetd.conf
- [root@jw rinetd]# cat !$
- cat /etc/rinetd.conf
- 0.0.0.0 6379 111.111.111.111 6379
- ## 说明一下(0.0.0.0 表示本机绑定所有可用地址)
- ### 将所有发往本机 6379 端口的请求转发到 111.111.111.111 的 6379 端口, 即 redis
logfile /var/log/rinetd.log -- 日志目录
[root@jw rinetd]#
配置文件绑定格式
命令格式是
bindaddress bindport connectaddress connectport
绑定的地址 绑定的端口 连接的地址 连接的端口
- [root@jw rinetd]# rinetd
- [root@jw rinetd]# echo $?
- 0
- [root@jw rinetd]# netstat -antup
- Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 3096/rinetd
- tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1025/rpcbind
- tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1092/sshd
- tcp 0 52 192.168.3.2:22 192.168.3.100:1529 ESTABLISHED 1120/sshd
- tcp 0 0 :::111 :::* LISTEN 1025/rpcbind
- tcp 0 0 :::22 :::* LISTEN 1092/sshd
- udp 0 0 0.0.0.0:111 0.0.0.0:* 1025/rpcbind
- udp 0 0 0.0.0.0:776 0.0.0.0:* 1025/rpcbind
- udp 0 0 0.0.0.0:68 0.0.0.0:* 955/dhclient
udp 0 0 :::111 :::* 1025/rpcbind
udp 0 0 :::776 :::* 1025/rpcbind
[root@jw rinetd]#
执行 rinetd 命令, 可以看到已经启动了 6379 端口了.
停止 rinetd 命令
pkill rinetd
rinetd -c /etc/rinetd.conf ## 启动转发
echo rinetd>>/etc/rc.local## 添加到开机启动
如果你在阿里云买了一台 redis, 需要公网访问, 可以参考使用 rinetd
以下链接: https://help.aliyun.com/document_detail/43850.html
来源: http://www.bubuko.com/infodetail-2571602.html