端口转发,实现本地连接无外网的RDS

2019-02-20  本文已影响0人  Rainy丶Wang

公司为了数据安全考虑,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; #内网数据库端口
}
}
.....
上一篇下一篇

猜你喜欢

热点阅读