ECS 8080端口连接拒绝问题排查

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 如果遇到ECS部署的web服务无法访问,可以参考这个case进行排查

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

用户ECS网络设置

_

  • 上图是用户ECS的网络示意图:

    1. ecs处于vpc网络下
    2. ecs加入了一个安全组,该安全组出入方向均开放8080端口
    3. ecs有两个网卡,一个私网主网卡(有虚线的网卡),一个私网normal网卡
    4. ecs绑定了一个EIP(弹性公网IP)实现与公网互通

问题现象

  • 8080端口无法连接

排查过程

  • 首先确认安全组规则中,的确开放了入和出的8080端口,说明安全组配置没有问题:
    vpc_8080

vpc_8080

  **注意:经典网络不允许在安全组规则中设置 0.0.0.0/0 的地址段,vpc网络由于网络之间是隔离的,所以这样设置问题不大。**
  • 安全组设置没有问题,那重点怀疑用户的8080监听服务没有启动,用户反馈说本地curl 8080服务能够正确返回,说明服务已经启动. 要求用户反馈8080在监听的截图如下:
    A63EA360BB33B0B4CC58265AF4B06BD4
  • 从上图能够看出用户的web服务被绑定在127.0.0.1的8080端口上了,而这会导致公网无法访问该web服务,解释如下:

    1. 127.0.0.1是一个回送(loopback)地址,指本地机,一般用来测试使用
    2. 127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制,这也是跟localhost重要区别之一,localhost是不走网卡的,因此防火墙设置对localhost是无效的。
    3. 正常的网络包都是从ip层进入链路层,然后发送到网络上,而发向127.0.0.1的包,直接在IP层短路了,也就是发到IP层的包直接被IP层接收了,不再向下发送。这也就决定了web应用绑定在127.0.0.1上是不可能被公网访问到的。
  • 为了印证发向127.0.0.1无法被传输到网络上,可以使用netstat -r命令来看一下本机路由表的设置:
    AC299718E580B0C5D7E9EC55C21BA801

稍微解释一下上面的表格:

  - 第一列:Destination,目标网段或者主机
  - 第二列:Gateway,网关地址,”*” 表示目标是本主机所属的网络,不需要路由
  - 第三列:Flags,标记。一些可能的标记如下:
    - U :路由是活动的
    - H : 目标是一个主机
    - G :路由指向网关
   - R :恢复动态路由产生的表项
    - D :由路由的后台程序动态地安装
    - M :由路由的后台程序修改
    - ! :拒绝路由

  - 第四列:Ref,路由项引用次数
  - 第五列:Use,此路由项被路由软件查找的次数
  - 第六列:Iface,该路由表项对应的输出接口

从截图可以看出,目标是127的数据包,网关地址仍然是127,这就印证了127是回送(loopback)地址。

  • 解决方案:

    1. 修改web容器配置,把web应用绑定在ecs主网卡上。ECS bind EIP,实际上相当于EIP与ECS私有主网卡建立了映射关系,因此通过EIP:8080来访问web服务,最终就会*请求到私网主网卡:8080上。
    2. 更好的做法是把web服务绑定在0.0.0.0这个特殊IP上,关于0.0.0.0,这个IP并不是真实存在的,我们ping不通它,它只是一个符号,代表当前设备的IP。绑定在0.0.0.0上后无论是通过127.0.0.1还是本机ip去访问web服务,都是可以的。

总结

  • 127.0.0.1是一个回送(loopback)地址,只能用于本机测试,web应用绑定在127.0.0.1上是不可能被公网访问到的。
  • 把web应用绑定在ECS私网主网卡上就可以实现用EIP从公网来访问web服务,因为EIP与ECS私有主网卡建立了映射关系。
  • 0.0.0.0是个特殊的IP,绑定在0.0.0.0上后无论是通过127.0.0.1还是本机ip去访问web服务,都是可以的。
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
18 0
|
2天前
|
运维 数据安全/隐私保护
Finalshell 私钥连接服务器
Finalshell 私钥连接服务器
8 0
|
9天前
|
Ubuntu 网络安全 数据安全/隐私保护
使用SSH隧道将Ubuntu云服务器Jupyter Notebook端口映射到本地
这样,你就成功地将Ubuntu云服务器上的Jupyter Notebook端口映射到本地,使你能够通过本地浏览器访问并使用Jupyter Notebook。
30 1
|
11天前
|
监控 安全 BI
如果服务器端口被扫会发生哪些故障?
在数字化时代,服务器作为支撑各种业务运行的核心基础设施,其安全性至关重要。然而,当服务器的端口被恶意扫描时,可能会引发一系列故障,给企业和个人带来不可估量的损失。那么,服务器端口被扫会发生哪些故障呢?
24 3
|
13天前
|
监控 Linux 网络安全
Linux服务器如何查询连接服务器的IP
【4月更文挑战第17天】Linux服务器如何查询连接服务器的IP
14 1
|
15天前
|
iOS开发 MacOS
macos排查并禁用系统占用的8021端口
macos排查并禁用系统占用的8021端口
17 0
|
18天前
|
消息中间件 数据安全/隐私保护
MQTT微消息队列服务器连接报错:Error: Connection refused: Not authorized
使用MQTTX工具进行测试时,通过AccessKey创建了Client ID的用户名和密码。配置了公网接入点及端口1883,但尝试连接时出现错误。已附上工具截图:![](https://ucc.alicdn.com/pic/developer-ecology/3byii5uar64gg_36327474e991439da422f38c450ef153.png)。确认过用户名、密码和Client ID无误,问题仍未解决,期待回复!
|
19天前
|
安全 网络协议 网络安全
云服务器常见端口有哪些?(常见云服务器端口含义)
云服务器常用端口在网络通信中起着至关重要的作用。打个比方,我们将云服务器想象为一座拥有众多建筑物和场所的繁华城市。每个建筑物代表在云服务器上运行的特定应用程序或服务,例如网站、电子邮件服务器或数据库。现在,将端口视为这些建筑物的入口。为了确保城市的顺利运转和安全,您需要有一个规范的系统来管理这些入口。
27 13
|
19天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
21天前
|
安全 网络安全
代理服务器拒绝连接怎么办
代理服务器拒绝连接怎么办

相关产品

  • 云服务器 ECS
  • http://www.vxiaotou.com