常见网路问题(四):为什麽还是上不了网?DNS Server 设定错误,DNS 的简介及小工具 ping

承接常见网路问题系列
常见网路问题(一):为什麽明明连上了 Wi-Fi,却还是上不了网?
常见网路问题(二):为什麽明明连上了 Wi-Fi,却还是上不了网?
常见网路问题(三):为什麽明明连上了 Wi-Fi,却还是上不了网?PPPoE、DHCP 及 Static 的设定
如果以上问题都还是无法解决,我们接着聊聊其它可能性。

你受否有过无法浏览网页的时候,一些需要上网的服务却能够使用?例如早些年,一些学校内如 PTT 的 telent 服务,你打上 telnet://xx.xx.xx.xx 可以成功获取服务,但用浏览器连个 Google 却怎麽跑也跑不出来。

很有可能,是你的 DNS Server 挂掉,或是设定错误了!那麽,什麽是 DNS 呢?

状况二:DNS Server 设定错误

你受否有过无法浏览网页的时候,一些需要上网的服务却能够使用?例如早些年,一些学校内如 PTT 的 telent 服务,你打上 telnet://xx.xx.xx.xx 可以成功使用,但用浏览器连个 Google 去怎麽跑也跑不出来。

很有可能,是你的 DNS Server 挂掉,或是设定错误了!那麽,什麽是 DNS 呢?

什麽是 DNS?

DNS,是 Domain Name System 的缩写,中文翻译成网域名称系统。而网域,就是你常在网址列 https:// 後打的那串文字,例如 google.comgov.taipei 等等。

那麽 DNS 究竟作用为何呢?其实很简单,就是将你输入的网域名称翻译成 IP 位置,或是翻译回来。

例如 Google 的某个服务器 IP 位置(参见:理解网际网路协定(一):何谓 IP Address)为 216.58.200.46,当我们透过浏览器打上 https://www.google.com 时,实际上我们的电脑会先询问 DNS Server,刚刚打的 google.com 要对应到哪个 IP 位置。

DNS 的基本运作方式
*DNS 的基本运作方式

和 DNS Server 拿到 IP 位置後,再和这个 IP 的所在地询问,最後拿到网页的内容。

如何知道是 DNS 出了问题?

平常这一切都看起来很美好,但有时候错误就是会突然给你一个惊喜!可能是 DNS Server 在维修,也可能是真的就坏了,我就遇过大停电之後突然就上不了网,後来才发现是 ISP 的 DNS Server 出了问题。

要找出是否是 DNS 出错,可以试试浏览网页时直接打上 IP 位置,例如我们知道 216.58.200.46 是 Google 网页服务器的某个 IP 位置,就直接打上 https://216.58.200.46 看看,虽然这样打可能会被浏览器警告应该直接输入域名(和安全性:域名的 HTTPS 凭证有关),但是看到了警告其实也就代表了你的网路是正常的,错的可能是 DNS。

但一般人也很少直接记下这麽复杂的 IP 位置,如果要记的话,可以记下 Google 的 DNS Server 位置:8.8.8.8。虽然在浏览器打下这个 IP 位置不会出现任何结果,因为这不是个网页服务器,不过你可以试试看 ping 这个工具。

Ping

什麽是 ping?如果你有玩过一些实时的网路游戏,应该就会听过 ping。这是一种常见的网路工具,专门来测试你和目标服务器间的连线速度和品质好不好。

ping
*ping

这张图片显示的就是我们和 8.8.8.8 这个 Server 间的连线品质,我总共送了 4 次封包,每次往返之间大约 10 毫秒。如果我们在玩即时战略的游戏,这就意味着我们做了一个动作,大约 10 毫秒的时间就知道对方知道了我们的动作,有点饶舌,但意思就是速度还算不错,可以接受。

若是你玩过第一人称射击游戏:CS(战栗时空),里面的功能就是列出每位玩家和主机间的 ping 值为何,通常 ping 超过 100 (ms),游戏体验就会变很差了。

那麽这个工具要如何使用呢?

在 Windows 和 Mac 都有内建这个小程序,只要打开 Terminal 并且打上 ping 8.8.8.8 即可。後面接的 8.8.8.8 指的是目标 Server 的 IP 位置,你可以试试看其它位置,例如中华电信的 DNS Server 168.95.1.1

如果成功和服务器连线并交换封包,就会如上面的图片所示,告诉你一来一往花了多久时间。

反之,如果失败的话,就不会有这些资讯。

ping,无法找到目标 Server
*ping,无法找到目标 Server

移难排解,手动设定 DNS

如果你使用 ping 测试一些公开的 Server 是可以成功的,却无法用浏览器打上有域名的网址浏览网页,那很有可能就是 DNS 的问题了。

这时你可以尝试换一个 DNS Server 试试。这是由於每个 DNS Server 所存的对应表都会有一些出入,除了域名对应的网址会时常更新之外,你的区域网路下或 ISP 的 DNS Server 都会暂存一些域名对应表,导致有不一致的情况,通常要好几小时才会逐渐更新。

你可以先点开网路设定看看预设是否为「自动抓取 DNS Server」,如果是的话就改成手动,输入 Google 的 8.8.8.8, 8.8.4.4 或是中华电信的 168.95.1.1 试试看,总之就是更换成你觉得比较稳定的 DNS 服务器。

最後重新打开浏览器输入网址,通常这个问题就能解决了。

参考资料

  1. Wiki - DNS
  2. Wiki - ping

<<:  Day28 Policy-based authorization

>>:  Day 14 | 魔术方块AR游戏开发Part3 - 面的旋转(上)

Render Element(Day3)

建立 React 应用程序最小的单位是 element。 —— React 文件 这句话好像可以有...

Day 10 - Design System x 实作 — Icon 元件

今天就要来实作 Icon 啦!事不宜迟直接开始! 想先看 Code 或是 Demo 的由此去: G...

[Day05] TS:如何把物件型别的所有属性值取出变成 union type?试试 Indexed Access Types

昨天我们知道可以使用 keyof 的方式取出物件属性 key,那麽如果我们是想要取出物件型别中属性值...

关於除错这件事

发达的工具会剥夺人的能力,能力被剥夺後经验会开始狭隘,狭隘的经验则会让思维开始产生死角,有死角的思维...

props

昨天介绍了component,也知道要使用component要先注册才能使用,而今天我们要介绍的是p...