公司为了数据安全考虑,RDS数据库有时候不会购买外网地址。
当自己电脑想要用工具连接RDS的时候。
方式一:
在一台有外网的阿里云服务器中,搭建rinetd。服务器和数据库在同一区域下,或者在一个内网环境中。
rinetd实现
#cd /usr/local/src
#wget [http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar](http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar) -xvf rinetd.tar.gz&&cd rinetd
#tar -xvf rinetd.tar.gz&&cd rinetd
#sed -i 's/65536/65535/g' rinetd.c # 修改端口范围,否则会报错
#mkdir /usr/man&&make&&make install #需要创建他的数据目录,否则会报错
配文文件:
[root@iZxknzedm2y2dnZ etc]# cat /etc/rinetd.conf
0.0.0.0 3333 172.16.152.235 3433 #源地址 源端口 目标地址 目标端口
logfile /var/log/rinetd.log
启动
rinetd -c /etc/rinetd.conf
需要注意的是iptables放行
RDS添加白名单
安全组对本机端口放行
方式二:
nginx使用stream模块实现tcp代理
wget [https://nginx.org/download/nginx-1.15.3.tar.gz](https://nginx.org/download/nginx-1.15.3.tar.gz) #源码包
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel #依赖包
tar zxf nginx-1.15.3.tar.gz && cd nginx-1.15.3
./configure --prefix=/usr/local/nginx --with-http_v2_module --with-http_ssl_module \
--with-http_sub_module --with-http_stub_status_module
--with-http_gzip_static_module --with-pcre --with-stream
make && make install
vim /usr/local/nginx/conf/nginx.conf
....
stream {
server {
listen 12345; #本机端口
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 127.0.0.1:3306; #内网数据库端口
}
}
.....
网友评论