阿里云服务器安全组开放指定端口无法访问问题记录

简介: 最近新上线项目,决定启用新的阿里云服务器,服务端项目打包之后部署到服务器,项目正常启动,在阿里云控制台开放指定端口之后接口访问不通,这里记录一下出现的问题的原因以及处理方案.

前言


   最近新上线项目,决定启用新的阿里云服务器,服务端项目打包之后部署到服务器,项目正常启动,在阿里云控制台开放指定端口之后接口访问不通,这里记录一下出现的问题的原因以及处理方案.


问题处理过程


   首先说按照之前的新项目部署流程,服务端代码本地自测完成之后进行打包,部署到阿里云服务器,然后在阿里云控制台上将指定端口开放指定ip(一般测试环境都是对公司公网ip允许访问).

8c1b6d574ce2510ae87a710fc57942bb_8544bb8ecac547b88d84222d96589550.png

   之前都是按照固有思维进行设置,从来没有想过为什么设置之后会生效以及还需要考虑哪些才会生效,这次出现问题算是给"不想不问"的思维逻辑上了一课!

   首先说阿里云上部署的项目想被访问到,从安全组上开放指定端口开放指定端口肯定是必须的,但是安全组设置不是第一步,第一个需要考虑的是防火墙,对于阿里云服务器上部署的服务端应用,访问顺序如下:

d5067f0ee7a0efbf50d8e4f40e789739_94117d12194e4bfeb100b49caa3666b8.png

接口请求最先触达的是防火墙,简单了解一下防火墙的作用.


防火墙主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外.


   所以在服务端项目运行正常的情况下,对于安全组开放指定端口后如果服务端接口访问不通,首先要看下防火墙是否开启,如果防火墙开启之后需要看下防火墙是否对指定端口进行开放.注意这里的开放指定端口与安全组的设置没有关系.关于查看防火墙是否开启要看Linux系统的版本,版本不同使用的命令是不同的,下面简单罗列一下常见版本对应的命令(注意以下命令没有特殊说明均在任意目录下执行):

CentOS 6以下:

查看防火墙开启状态:
service iptables status
开启防火墙
service iptables start
关闭防火墙
service iptables stop


CentOS 7:

查看防火墙开启状态:
systemctl status firewalld
开启防火墙
systemctl start firewalld.service
关闭防火墙
systemctl stop firewalld.service


ubantu:

查看防火墙开启状态:
ufw status
开启防火墙
ufw enable
关闭防火墙
ufw disable


   出现问题的阿里云服务器对应的Linux版本就是CentOS 7,查看了一下防火墙的状态是开启状态.


   其中状态为active表示是开启状态,下面看下防火墙开放的端口有哪些.


查看防火墙允许开放的端口
firewall-cmd --list-ports


   发现没有启动项目端口号,对防火墙开放指定端口操作如下:


防火墙对8091端口进行开放
firewall-cmd --add-port=8091/tcp --permanent


开启之后需要重新加载使配置生效

firewall-cmd --reload


   重新访问接口发现接口访问正常.原来的阿里云服务器上进行部署项目只需要从安全组中开放指定端口是因为所在的阿里云服务器防火墙都是关闭状态.


总结


   对于平常开发中一定要多问一个为什么,有疑问才会考虑原理,任何事情明白原理之后就算遇到类似问题脑海中会第一时间会想到问题可能出现在哪些方面,平常总常说:“出来混总是要还的!”,这句话在我们开发这里也同样适用,感觉有收获或是赞成的欢迎点赞或留言!


相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
网络协议 安全 应用服务中间件
云服务器怎么开启被关闭的端口?手把手教你开启端口
在使用云服务器时,若发现某些服务无法访问,可能是端口被关闭。本文介绍了端口关闭的原因、检查方法及开启步骤。原因包括初始设置限制、防火墙规则和外部网络策略;可通过netstat或ss命令检查端口状态,用ufw、iptables或firewalld调整防火墙规则。最后提供了解决常见问题的建议,确保端口正常开放并可供外网访问。
2623 9
|
SQL 关系型数据库 MySQL
云服务器常用端口作用
了解云服务器常用端口的作用有助于高效管理资源、快速定位问题及更好地使用云服务。常见端口包括:21(FTP,文件传输)、22(SSH,远程连接Linux)、25(SMTP,发送邮件)、80(HTTP,网页服务)、110/143(POP3/IMAP,接收邮件)、443(HTTPS,加密网页)、1433(SQL Server)、3306(MySQL)、3389(RDP,远程访问Windows桌面)和8080(代理服务)。
910 2
|
存储 安全 网络安全
阿里云国际站:阿里云服务器端口配置
悟空云@CloudWuKong阿里云是全球领先的云计算服务提供商,为用户提供弹性计算、数据库、存储、网络安全等一系列云计算服务。在使用阿里云服务器时,合理配置端口非常重要,可以提高服务器安全性和稳定性。
1536 2
|
网络协议 API
检测指定TCP端口开放状态免费API接口教程
此API用于检测指定TCP端口是否开放,支持POST/GET请求。需提供用户ID、KEY、目标主机,可选指定端口(默认80)和地区(默认国内)。返回状态码、信息提示、检测主机、端口及状态(开放或关闭)。示例中ID和KEY为公共测试用,建议使用个人ID和KEY以享受更高调用频率。
559 14
|
网络协议 API
检测指定TCP端口开放状态免费API接口教程
该API用于检测目标主机指定TCP端口是否开放,适用于检测连通状态等场景。支持指定大陆、美国、香港等检测节点。请求地址为 `https://cn.apihz.cn/api/wangzhan/port.php`,支持POST和GET请求方式。请求参数包括 `id`、`key`、`type`、`host` 和 `port`。返回参数包含检测结果和状态码。示例请求:`https://cn.apihz.cn/api/wangzhan/port.php?id=88888888&key=88888888&type=1&host=49.234.56.78&port=80`。
559 3
|
安全 Linux 网络安全
Linux 开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
在 Linux 系统中,端口管理至关重要。本文介绍了如何使用 `netstat`、`lsof` 和 `nmap` 等工具查找开放端口,并通过关闭相关服务、修改防火墙规则或禁用网络接口来关闭这些端口,以提高系统安全性。注意不要随意关闭重要端口,谨慎操作并备份数据。
1189 3
|
11月前
|
网络协议
端口最多只有65535个,为什么服务器能承受百万并发
服务器通过四元组(源IP、源端口、目标IP、目标端口)识别不同TCP连接,每条连接对应独立socket。数据包携带四元组信息,服务端据此查找对应socket进行通信。只要四元组任一元素不同,即视为新连接,可创建独立socket。资源充足时,单进程可支持百万级并发连接,socket与端口非一一对应。
686 10
端口最多只有65535个,为什么服务器能承受百万并发
|
弹性计算 网络协议 安全
【转】如何配置服务器的端口映射?
本文详解端口映射原理及配置方法,涵盖家庭、企业与云环境,包含静态、动态与双向映射类型,并提供常见问题解决方案。
2526 6
|
SQL Apache Windows
Windows服务器80端口被占用的全面解决方案
在服务管理器中启动apache2服务,即可正常使用80端口。若系统中还安装了其他微软产品如sql等,也可尝试停止其服务进行测试,但请注意,SQL通常不会使用80端口,因此一般不会受到影响。以上就是关于80端口被system占用的详细解决方法,希望对你有所帮助。
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题
336 0