两台服务器,一台阿里云ECS云服务器(专用网络),另外一台是阿里云数据库MongoDB,处于安全考虑MongoDB是不运行外网链接的,那接下来就看怎么实现公网访问。html
看到上面红色的网络类型描述,有些人可能已经看出问题所在了,小小的提示:问题出如今开放端口上!数据库
专用网络和经典网络的大体区别能够用一句话讲明白:专用网络更安全,须要设置和配置的东西比较多,适合精通网络的高手;经典网络使用更方便,适合更适合小白用户,使用起来更简单方便,不用繁杂的配置;安全
既然没法直接使用公网(俗称的外网都是一个意思),那就使用端口转发的形式,把能够访问的一台服务器的公网ip和端口转到MongoDB的服务器便可,接下来咱们使用rinetd的方式实现端口转发。服务器
rinetd的安装方式有两种,若是是Ubuntu系统,可用apt-get install rinetd -y安装.网络
下面重点介绍源码安装tcp
一、安装rinetd阿里云
分别执行下面命令:spa
1. wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd 2. sed -i 's/65536/65535/g' rinetd.c 3. mkdir /usr/man&&make&&make install
二、配置端口映射code
打开文件/etc/rinetd.conf,配置内容:htm
1 0.0.0.0 3717 MongoDB的连接地址 3717 2 logfile /var/log/rinetd.log
0.0.0.0表示本机的全部ip.
如图:
三、启动/关闭 rinetd
启动:rinetd
关闭:killall rinetd
四、查看运行状况
netstat -tanulp|grep rinetd
tcp 0 0 0.0.0.0:3717 0.0.0.0:* LISTEN 4270/rinetd
如上内容,显示是运行正常的。
通过如上的配置以后,使用公网链接仍是失败了,访问不了!笔者通过数次改配置,反复启动ip,仍是无果,因而感受进坑了!
通过笔者反复排除,使用telnet等手段,分析得出3717的端口是问题的,因而爬文档,发现若是服务器是专用网络的话是须要手动设置开放端口的。
具体操做以下:云服务器ECS => 安全组规则 => 添加安全组规则 => 如方向配置端口范围3717/3717,以下:
通过配置以后,使用MongoDB客户端链接居然成功了,如图:
开森
参考:https://help.aliyun.com/knowledge_detail/39952.html