前段时间在腾讯云购买了一台轻量应用服务器,在给自己的项目和mongoDB开放端口的时候发现并未生效,访问还是会被防火墙阻拦。

 图中可以看见服务器开放了27017端口,即mongoDB端口,但是当远程连接该服务器上的mongoDB时会被防火墙阻拦,导致连接失败。

如何解决该问题?

首先我们要先在Linux终端下使用指令查看该端口是否的确开放了。

firewall-cmd --zone=public --list-ports //该指令用于查看服务器中防火墙开放的端口

 为了保证,使用该指令查看的防火墙开放的端口的数据是最新的数据,我们在这条指令之前重新加载一下防火墙配置规则

firewall-cmd --reload //一般情况下,每当改变了防火墙配置之后都需要在最后执行一次该指令,这样新的配置才会立即生效

 现在可以查看最新的开放端口数据了

果然,在腾讯云控制台开放的27017 端口并没有真正的在服务器中起到效果。

现在我们要做的就是通过指令自己手动配置打开该端口

输入以下指令

firewall-cmd --zone=public --add-port=27017/tcp --permanent
//记得重新加载配置规则,即在该指令后面在执行firewall-cmd --reload

再查看端口是否开启

 在返回的端口列表中看到了27017/tcp,说明mongoDB所使用的端口已经开启了,这个时候远程连接就不会被防火墙阻拦了。

总结一下

遇到这个在腾讯云控制台配置防火墙不生效的问题不知道是不是我个人操作的原因,如果是的话还请知道的大佬指点一下,然后以上是我对这个问题自己摸索的一个解决办法:通过Linux终端手动配置防火墙。

有关于防火墙的配置指令和方法我还另外写了一篇更加详细的博客,仅供参考

Linux下的防火墙https://blog.csdn.net/GeorgeZrx/article/details/120663853


补充:腾讯云控制台下添加配置防火墙并非无效而是腾讯云的云服务器本身具有这个特点:存在Linux服务器上一层防火墙和控制台这边配置的额外一层防火墙,有两层,只有当两层防火墙都做了相关配置开放某一端口时,访问该端口才不会被防火墙阻拦

更多推荐