Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具。Rinetd是单一过程的服务器,它处理任何数量的连接到在配置文件etc/rinetd中指定的地址/端口对。尽管rinetd使用非闭锁I/O运行作为一个单一过程,它可能重定向很多连接而不对这台机器增加额外的负担。
公司开发人员需要使用Navicat连接阿里云RDS数据库,官方只有网页的操作界面,用着不习惯。
之前的想法是在ECS主机安装×××,客户端进行拨号,来连接阿里云RDS数据库,后来发现总是无法打开表,非常慢,他们建议使用rinted,后来进过测试,可以打开表,而且速度很快。
wget?http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar?-zxvf?rinetd.tar.gz?-C?/usr/src
cd?/usr/src/rinetd
sed?-i?'s/65536/65535/g'?rinetd.c?(修改端口范围,否则会报错)
mkdir?/usr/man
make?&&?make?install
cat?>>/etc/rinetd.conf?<<end
#?allow?192.168.2.*
#?deny?192.168.1.*
#?bindadress?bindport?connectaddress?connectport
0.0.0.0?3306?a.rds.aliyuncs.com?3306
#logfile?/var/log/rinetd.log
end
添加开机自启动
echo?rinetd?>>/etc/rc.local
rinetd
rinetd启动后,就已经可以通过云服务器的3306端口连接到处于内网模式的xxx rds数据库了 除了这个场景,其它的内网端口转发也都可以(由于FTP协议相对特殊,无法实现转发) 配置文件中可以对某个IP或者IP段进行允许/拒绝,藉此提高内网端口的安全性;
如果二者冲突,测试的结果来看是拒绝优先。
上面配置只是配置一个RDS,如果有多个,需要添加端口号
vi?/etc/rinetd.conf
内容如下:
#?allow?192.168.2.*
#?deny?192.168.1.*
#?bindadress?bindport?connectaddress?connectport
0.0.0.0?3306?a.rds.aliyuncs.com?3306
0.0.0.0?3307?b.rds.aliyuncs.com?3306
0.0.0.0?3308?c.rds.aliyuncs.com?3306
#logfile?/var/log/rinetd.log
pkill?rinetd
rinetd
使用mysql客户端进行测试。注意连接第2台和第3台的时候,更改下端口号。
这样任何IP地址都可以连接了,这样不安全,最好做下防火墙,针对外网卡,只允许公司的网络访问。