技术解析

Linux 下不能 ping 带 http 的网站吗?
0
2021-06-21 03:47:10
idczone

各位好!我对网络真的不了解,今天用校园网sudo apt-get update发现清华的镜像源https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/dists/trusty/Release无法更新,ping 了一下显示:

[email protected]:~$ ping https://mirrors.tuna.tsinghua.edu.cn/
ping: unknown host https://mirrors.tuna.tsinghua.edu.cn/

但是在浏览器里面是可以访问的.然后我又试了一下ping www.baidu.com能通,ping http://www.baidu.com就不能通,显示 unknown host,请教一下为什么?以及怎么才能在 apt 里更新清华软件源列表?

PS:百度了一下感觉是 dns 的问题,netstat -rn的结果是

[email protected]:~$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         111.186.100.254 0.0.0.0         UG        0 0          0 eth0
111.186.100.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0

怎么设置这个解析呢?


ping 的主机参数不能包含协议

ping 的是域名,不是 url 啊

ping 是 ICMP 协议的,HTTP 是 TCP 协议的,你要 ping HTTP 的话需要 tcp ping。

同学你需要补一下网络模型

两个协议都不在同一层

这位同学,有空发帖,不如谷歌下

这锅要 linux 来背吗?一个连 netstat 都会用的人不会用 ping 我也是无语了。

你 ping 的是主机,域名解析到主机的 IP
ping 走的是 ICMP 协议,不是 HTTP/HTTPS
你的情况估计是从某些浏览器里复制域名,会带上开头的 http(s)://
如果主机的 http/https 服务器用了非标准端口号
ping 的时候端口号也要去掉

ping mirrors.tuna.tsinghua.edu.cn

ping 是 icmp 协议。http 是 7 层的 http 或者说对 4 层 tcp 协议的封装

这边建议发帖前先 STFW 呢,你这标题 Google 一下就有答案了,何必写这么多

这位同学 怕是对 url 构成有什么误解

大家不要随便喷,unknow unknown,很多人也不知道这个知识点呢,何况人家都说了对网络不了解了。

ping 是 ICMP 协议,发的是 ICMP 包,跟 HTTP 协议层无关,是直接发到 ip 上的,也就是说域名也可以。
`ping: unknown host https://mirrors.tuna.tsinghua.edu.cn/` 说是 unknown host 就是因为他尝试去用 dns 查询你给出的 https://mirrors.tuna.tsinghua.edu.cn/ 这个东西,发现查询不了。

而 http://xx.com 则是 http 协议定义的 url, 用的是 http 协议,发送跟接收都是 http 包。

这个问题非常好,虽然简单了点,但是描述清晰,态度端正。
关于为什么不能 ping,你可以参考一下 man ping,这个手册非常详尽,换而言之你需要 ping 本身就是接域名或者 IP 的。不知道哪位误导了你,让你以为 ping 可以带 HTTP 的。
关于更新清华源列表,不仅清华源官网就有指导,中英两界也都有很多教程。
期待你下次的提问

如果你要测试一个网站是否能连通,最好的方法就是 curl
试下 curl "网站地址"
查看 Header 信息可以用 curl -I "网站地址"
如果你要测试 ping 延迟,就把主机名单独拿出来 ping
例如网站地址是 https://mirrors.tuna.tsinghua.edu.cn/ ,主机名就是 mirrors.tuna.tsinghua.edu.cn
你就 ping mirrors.tuna.tsinghua.edu.cn 就好了。

是说 windows 或 mac 下可以咯?

Dns 能解析帶 http/https 頭的域名?還沒見過

了解下域名和 url 组成的知识就很容易理解的。
几年以后你回来看自己问的这个问题一定会想骂自己白痴,哈哈。

很理性了

楼主态度挺好的 想测试 http 或者 https
可以用 tcping 工具 对应的 80 和 443 端口

一时间我都不知道该怎么回答。lz 似乎很懂,又似乎什么都不懂。先搞清楚如下概念吧:ICMP\DNS\HTTP

telnet google.com 443

[添加清华源]( https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/)

ping mirrors.tuna.tsinghua.edu.cn

linux 下测试 http/tcp 可以用[paping]( https://code.google.com/archive/p/paping/)

在 windows 下难道就可以??

在 macOS 下难道就可以?

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服