能ping通,http请求不通

简介: 昨天发生了一件很乌龙的事情,也不是很高深的原理,但是还是很好玩~故事背景:一个哥们(非技术)说他手头有一台某某云的主机,不知道怎么用,跑过来问我,说让我给他搭个能跑php的环境,我原以为那很简单,lnmp下载完了自己自动安装就好了,没想太多,于是经过漫长的等待,lnmp成功安装好了,并做了一个简单的nginx配置,看看能不能通过ip直接访问。

昨天发生了一件很乌龙的事情,也不是很高深的原理,但是还是很好玩~


故事背景:

一个哥们(非技术)说他手头有一台某某云的主机,不知道怎么用,跑过来问我,说让我给他搭个能跑php的环境,我原以为那很简单,lnmp下载完了自己自动安装就好了,没想太多,于是经过漫长的等待,lnmp成功安装好了,并做了一个简单的nginx配置,看看能不能通过ip直接访问。


然鹅:

通过云服务商提供的弹性ip直接访问不管怎么访问都是访问不同,并且能看出http握手并不成功

fa462ab9e7f7326ca62f65af76a322fe3c3f73b8

这个是怎么回事呢,然后通过ping工具ping这个ip是通的,但用telnet去测试这个ip的80端口时发现仍然无法成功握手,难道是80端口没有开启,或者防火墙?

ecf9695e6bff91ab1d3b5c8ea448c6bac0c895d3

结果发现80是开启的,关闭防火墙之后,仍然无法访问...那这下只有一个地方:安全组(可能还有其他地方,大佬们可以科普下)没设置,可是当我添加完规则之后,发现结果仍然是一样的,无法访问,这下,我就真没辙了,我不知道我的操作有什么问题,即便是nginx有问题,那也会报nginx的错误,这个连握手都没成功,我作为一个不是专业运维的开放实在是没辙了40.gif,只剩最后一招:提工单了,于是提交了工单,写了具体的情况,不到五分钟后,客服人员打电话来了:

      “您好,您的云服务器还没有备案,所以80,8080,443这些端口时没法使用的”

      “嗯嗯好的,谢谢(Orz我去年买了个表)”

于是,这场闹剧,最终以乌龙的方式结尾,让人哭笑不得,不过既然运营人员说了,我就要猜一下:是所有http请求都无法到达服务器还是只是这几个特定的端口无法使用呢?我灵机一动既然如此,那我就不用你的80端口,我在安全组里开了一个4396的端口(7就完事了),然后在服务器上安装了docker,安装过程中还有点小问题,上一篇文章中做了说明,拉取了nginx镜像,把运行的容器的80映射到本机4396上,打开浏览器一访问,结果:6353f5721ab46fac0bba823482c17455ecd8c90e

这就说明云服务商只是限制了常用的网络端口,并没有限制所有请求,不过好玩归好玩,我朝要求备案诸位就老老实实备案好了~~

目录
相关文章
|
22天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
31 14
|
22天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
24 8
|
2天前
|
API Apache Android开发
对于Android的http请求的容错管理
对于Android的http请求的容错管理
|
3天前
|
JSON 数据格式 Python
Python 的 requests 库是一个强大的 HTTP 客户端库,用于发送各种类型的 HTTP 请求
`requests` 库是 Python 中用于HTTP请求的强大工具。要开始使用,需通过 `pip install requests` 进行安装。发送GET请求可使用 `requests.get(url)`,而POST请求则需结合 `json.dumps(data)` 以JSON格式发送数据。PUT和DELETE请求类似,分别调用 `requests.put()` 和 `requests.delete()`。
13 2
|
4天前
|
API
http代理ip请求并发数是什么?有什么用?
HTTP代理IP请求并发数指单个客户端对API或代理IP同时发起的请求数量,分为API链接请求并发和IP最大连接数。并发是瞬时同时请求,不同提供商限制不同。高并发请求的代理IP服务商能更好地应对程序压力。选择时应考虑这一因素。
|
4天前
|
Go
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
|
5天前
|
API UED Python
使用Python进行异步HTTP请求的实践指南
使用Python进行异步HTTP请求的实践指南
19 4
|
12天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的HTTP请求的重要性和详细过程
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。
|
13天前
|
JSON 编解码 Go
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第25天】Go语言`net/http`包提供HTTP客户端和服务器功能,简化高性能网络应用开发。本文探讨如何发起HTTP请求,常见问题及解决策略。示例展示GET和POST请求的实现。注意响应体关闭、错误处理、内容类型设置、超时管理和并发控制。最佳实践包括重用`http.Client`,使用`context.Context`,处理JSON以及记录错误日志。通过实践这些技巧,提升HTTP编程技能。
25 1
|
14天前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。