技术解析
Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。
-----摘自百度百科
在内网里面我们可以使用iptables转发,但是在公网上面用Rinetd是不二的选择.
Rinetd不能像http里的$http_x_forwarded_for那样可以传递前端真实IP,在目标国外服务器上只能显示转发服务端的IP,如果是web服务可以用nginx来做反向代理。
Rinetd不能转发ftp,常规的3389 80 3306 1433这些端口服务都支持,在迁移数据中不能立即更换IP的时候在公网上转发数据大大的节省了很多不必要的麻烦。
#gcc make编译环境请提前安装好 mkdir -p /usr/man/man8
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar.gz
cd rinetd
make
make install
源IP | 转发端口 | 接收端IP | 接收端口 |
0.0.0.0 | 80 | 9.9.9.9 | 80 |
1.1.1.1 | 22 | 8.8.8.8 | 2222 |
192.168.1.33 | 80 | 7.7.7.7 | 8080 |
启动服务:
rinetd -c /etc/rinetd.conf
在配置文件内的出口端口一定要保证开放,否则国外服务器无法转发数据
如果要要关闭服务可以用pkill rinetd命令来处理