Linux公网的端口转发方法

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命令来处理

添加新评论 »