rinetd端口转发

rinetd端口转发

参考资料:https://github.com/boutell/rinetd
上一篇:ssh端口转发

端口转发工具rinetd,和ssh端口转发不同。ssh本地端口转发和远程端口转发是单台主机对单台主机,两台主机之间不能直接连接的时候,使用ssh协议、通过vps代理做数据转发。

而rinetd很适合用在这种情况,公网IP只有一个,而内网中有许多主机共用这一个公网IP。我们拥有其中一台内网主机,想要在该主机开放4444端口,并且在公网ip上只开放80端口。当有请求访问公网ip的80端口,那么就转发到该主机4444端口。

这种情况跟ssh端口转发中的动态端口转发有点像,但是不同的是,ssh动态端口转发是确定的,某台外网机器A配置好后,通过内网的某台机器B做代理,访问内网其他的主机C、D、E;而rinetd端口转发是不确定的,不知道哪个主机会连接到公网IP,外网也只能访问配置好的内网主机,不能访问内网其他主机。它们各有各自的用途,要结合情况来选择使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apt-get install rinetd
vi /etc/rinetd.conf

# bindadress bindport connectaddress connectport
206.125.69.81 80 10.1.1.2 80
//访问206.125.69.81:80的连接,重定向至地址10.1.1.2的端口80,该端口通常是防火墙内部的一台机器,没有直接通往外界的路线。

0.0.0.0 8080 外网IP 8080
//该主机上所有连接到8080端口的IP,都将重定向至外网IP的8080端口

allow 206.125.69.*
//运行IP是206.125.69.*的数据包

deny 206.125.69.*
//拒绝IP是206.125.69.*的数据包

---
pkill rinetd ##关闭进程
cat /etc/rinetd.conf
rinetd -c /etc/rinetd.conf ##启动转发