Linux 下不能 ping 带 http 的网站吗?

2019-06-10 22:25:38 +08:00
 codechaser

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

bob@lms:~$ 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的结果是

bob@lms:~$ 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

怎么设置这个解析呢?

8421 次点击
所在节点    Linux
27 条回复
Danswerme
2019-06-10 22:39:52 +08:00
ping 的主机参数不能包含协议
omph
2019-06-10 22:41:31 +08:00
ping 的是域名,不是 url 啊
ysc3839
2019-06-10 22:41:56 +08:00
ping 是 ICMP 协议的,HTTP 是 TCP 协议的,你要 ping HTTP 的话需要 tcp ping。
dkmilan
2019-06-10 22:52:06 +08:00
同学你需要补一下网络模型
pkookp8
2019-06-10 22:59:21 +08:00
两个协议都不在同一层
lzhnull
2019-06-10 23:01:05 +08:00
这位同学,有空发帖,不如谷歌下
leavic
2019-06-10 23:07:43 +08:00
这锅要 linux 来背吗?一个连 netstat 都会用的人不会用 ping 我也是无语了。
Hardrain
2019-06-10 23:38:50 +08:00
你 ping 的是主机,域名解析到主机的 IP
ping 走的是 ICMP 协议,不是 HTTP/HTTPS

你的情况估计是从某些浏览器里复制域名,会带上开头的 http(s)://
如果主机的 http/https 服务器用了非标准端口号
ping 的时候端口号也要去掉
HeiXiaoBai
2019-06-10 23:53:32 +08:00
opengps
2019-06-11 00:01:39 +08:00
ping 是 icmp 协议。http 是 7 层的 http 或者说对 4 层 tcp 协议的封装
Jirajine
2019-06-11 00:02:21 +08:00
这边建议发帖前先 STFW 呢,你这标题 Google 一下就有答案了,何必写这么多
mango88
2019-06-11 00:12:38 +08:00
这位同学 怕是对 url 构成有什么误解
ChristopherWu
2019-06-11 01:06:01 +08:00
大家不要随便喷,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 包。
CEBBCAT
2019-06-11 01:15:43 +08:00
这个问题非常好,虽然简单了点,但是描述清晰,态度端正。

关于为什么不能 ping,你可以参考一下 man ping,这个手册非常详尽,换而言之你需要 ping 本身就是接域名或者 IP 的。不知道哪位误导了你,让你以为 ping 可以带 HTTP 的。

关于更新清华源列表,不仅清华源官网就有指导,中英两界也都有很多教程。

期待你下次的提问
KasuganoSoras
2019-06-11 04:44:35 +08:00
如果你要测试一个网站是否能连通,最好的方法就是 curl
试下 curl "网站地址"
查看 Header 信息可以用 curl -I "网站地址"
如果你要测试 ping 延迟,就把主机名单独拿出来 ping
例如网站地址是 https://mirrors.tuna.tsinghua.edu.cn/ ,主机名就是 mirrors.tuna.tsinghua.edu.cn
你就 ping mirrors.tuna.tsinghua.edu.cn 就好了。
clino
2019-06-11 08:28:24 +08:00
是说 windows 或 mac 下可以咯?
unknowncheater
2019-06-11 08:35:35 +08:00
Dns 能解析帶 http/https 頭的域名?還沒見過
whwq2012
2019-06-11 08:40:44 +08:00
了解下域名和 url 组成的知识就很容易理解的。
几年以后你回来看自己问的这个问题一定会想骂自己白痴,哈哈。
oneisall8955
2019-06-11 08:41:15 +08:00
@CEBBCAT 很理性了
presoul
2019-06-11 08:54:42 +08:00
楼主态度挺好的 想测试 http 或者 https
可以用 tcping 工具 对应的 80 和 443 端口

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/572628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX