分类: LINUX
2010-07-21 23:52:20
工具主页:
Redirects TCP connections from one IP address and port to another. rinetd is a single-process server which handles any number of connections to the address/port pairs specified in the file /etc/rinetd.conf.
1. 解压 : tar xzf rinetd.tar.gz
2. 建立文档目录 : mkdir -p /usr/man/man8
3. 安装程序 make install (默认安装到/usr/sbin/rinetd)
4. 创建配置文件 : touch /etc/rinetd.conf
配置文件
使非本地服务看上去像是来自本地端口正如我们在“iptables 的提示和诀窍”中所看到的那样,使用iptables 很容易将TCP 和UDP 端口从防火墙转发到内部主机上。但是如果您需要将流量从专用地址转发到甚至不在您当前网络上的机器上,又该怎么办呢?可尝试另一个应用层端口转发程序,如rinetd。这些代码有点古老,但很短小、高效,对于解决这种问题来说是非常完美的。解压缩该档案文件并简单地运行make命令,您将看到一个rinetd二进制数,允许您将TCP 端口转发到您期望的内容。不幸的是,rinetd不支持UDP 端口。
配置文件极为简单:
[Source Address] [Source Port] [Destination Address] [Destination Port]
在每一单独的行中指定每个要转发的端口。源地址和目的地址都可以是主机名或IP 地址,IP 地址0.0.0.0 将rinetd 绑定到任何可用的本地IP地址上:
0.0.0.0 80 some.othersite.gov 80
216.218.203.211 25 123.45.67.89 25
0.0.0.0 5353 my.shellserver.us 22
将该文件保存到/etc/rinetd.conf,并将rinetd复制到容易找到的位置(例如/usr/local/sbin/)。然后简单地运行rinetd 开始启动该命令。
第一个示例将所有去往任意本地地址的Web 流量转发到some.othersite.gov 上。注意,这只有在本地端口80 上未绑定其他进程(如Apache)时才有效。
下一步将去往2 1 6 . 2 1 8 . 2 0 3 . 2 1 1 的入站S M T P 流量转发到位于123.45.67.89 的邮件服务器上(但其他本地IP 地址上未绑定任何SMTP代理)。最后的示例将端口5353 上的流量转发到myshellserver.us 的ssh网络服务器上。这些设置在没有NAT或任何特殊核心配置的情况下都能有效工作。简单地运行rinetd,rinetd将在后台运行并启动对指定端口的监听。当你的服务器要重新编号或物理位置变化而改变IP地址时你就能切实感受到这个工具的好处了,因为服务看上去就像保留在原始IP 地址(即便它们实际上完全是来自其他网络)上。如果仅仅是绑定大于1024的端口,那么rinetd就不需要以root账户来运行。这种小工具很值得放在身边,以便随时调用TCP 端口间接寻址。