linux使用rinetd做端口映射

其实 Linux 下使用 iptables 实现端口转发就足够了,例如:

iptables -t nat -I PREROUTING -p tcp --dport 555 -j DNAT --to-destination 2.2.2.2:3389

iptables -t nat -I POSTROUTING -j MASQUERADE

iptables配置较为复杂,作为小白的我还是选择了使用 rinetd。

虽然 rinetd 有点古老,但很短小、高效,对于解决这种问题来说是非常完美的。

linux使用rinetd做端口映射

Rinetd原理图

官网:http://www.boutell.com/rinetd/

方法

安装 rinetd

可以使用apt-get或者yum安装

root权限执行:

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

tar -xvf rinetd.tar.gz

cd rinetd

sed -i 's/65536/65535/g' rinetd.c //修改rinetd.c,将查询到的65536修改为65535

mkdir /usr/man/

make && make install

安装在 /usr/sbin 目录下

创建配置文件

nano /etc/rinetd.conf

填入配置信息,格式为:

SourceAddress SourcePort DestinationAddress DestinationPort

绑定的地址 绑定的端口 转发的地址 转发的端口

绑定地址的端口(数据)转发地址的端口

在每一单独的行中指定每个要转发的端口。

源地址和目的地址都可以是主机名或 IP 地址,IP 地址为0.0.0.0 则将rinetd 绑定到任何可用的本地IP地址上

示例:

跳板 VPS 的 IP 为1.1.1.1, rinetd已经安装在跳板 VPS 上。服务器的 IP 为2.2.2.2。

0.0.0.0 555 2.2.2.2 3389

可实现 访问跳板 VPS(1.1.1.1)的555端口就等于访问服务器(2.2.2.2)的3389端口。

程序启动,停止,查询,自启动

创建完配置文件后,别忘了启动程序才能生效。

启动命令:/usr/sbin/rinetd

停止命令:killall rinetd

查看是否启动:netstat -tanulp|grep rinetd

开机启动:

在 /etc/rc.local 文件中,添加 /usr/sbin/rinetd 启动命令即可。

还需要在iptables里面开启端口。


分享到:


相關文章: