百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

干货 | Web开发必备技能:网络不通,3指令精准定位故障点

qiyuwang 2024-11-18 16:16 11 浏览 0 评论

引言

做Web开发必不可少与网络连接打交道,就是运维也整天都是301,302,401,403,404,500,502,503。见的多了,你都会烂熟于胸。让我们采用自上而下的方法,来测试Internet连接并对其进行故障排除。

下面的每个步骤,都可能为你提供有关互联网连接可能存在的问题的关键点。

Step 1

如何测试互联网连接,第一种也是最基本的方法,是打开浏览器,浏览目标网址

如果没有可用的图形界面,可以尝试使用 curl 获取目标网址的内容。例如:

$ curl -I https://www.example.com
HTTP/1.1 200 OK

如果可以在浏览器上看到网站,或者在使用 curl 命令时收到 200 OK,那就可以确认连接访问是成功的。

如果不成功,那中间环节就多的去了。操作系统可能有问题,路由可能有问题,Web服务器可能有问题,防火墙可能有问题,等等等等。

Step 2

如果第一步不能解决问题,那么是时候在网络传输的底层,检查互联网的连接了。

请执行以下 ping 命令,该命令会使用外部服务器的 IP 地址向其发送网络数据包。

在本例中,让我们尝试 ping Google 的 DNS 服务器:

$ ping -c 2 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=10.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=10.2 ms

--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1006ms
rtt min/avg/max/mdev = 10.157/10.291/10.425/0.134 ms

上述命令正常的情况,必须是 0% 的数据包丢失。


Step 3

如果无法 ping 通,则说明你已断开与互联网的连接,或者你的网络接口的网关设置不正确。

首先检索网关 IP 地址,并尝试使用 ping 命令查看是否可以访问该地址。

例如,首先使用 ip 命令获取默认网关 IP 地址:

$ ip r
default via 192.168.1.1 dev enp0s3 proto dhcp metric 100

接下来,尝试 ping 此 IP 地址:

$ ping -c 1 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.77 ms

--- 192.168.1.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.765/2.765/2.765/0.000 ms

如果可以到达网关,但无法 ping 通服务器,那么很可能断网了。

如果您无法 ping 通网关,要么是默认网关设置不正确,要么是网关阻止了 ping 请求ICMP包。

Step 4

下一步是检查 DNS 服务器网络配置:

$ systemd-resolve --status | grep Current
      Current Scopes: DNS
  Current DNS Server: 192.168.1.1

我们的系统设置为使用IP地址为 192.168.1.1 的 DNS 服务器主机。确保你可以访问到该 DNS 服务器。

同样,使用 ping 指令:

$ ping -c 2 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.535 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.570 ms

--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 0.535/0.552/0.570/0.017 ms

同样,上述命令的输出需要保证 0% 的数据包丢失率。

如果无法连接到 DNS,这可能意味着它没有响应 ping 的 ICPM 包,DNS 在防火墙后面,或者服务器已关闭。

在这种情况下,请使用备用 DNS 服务器更新 /etc/resolv.conf 文件 。

Step 5

通过尝试使用 dig 命令解析DNS名称,来测试DNS服务器:

$ dig @192.168.1.1 example.com
; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.1.1 linuxconfig.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10032
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com.               IN      A
;; ANSWER SECTION:
example.com.        187     IN      A       104.103.102.1
example.com.        187     IN      A       104.103.102.1
;; Query time: 4 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu May 07 11:01:41 AEST 2020
;; MSG SIZE  rcvd: 76

Step 6

通过尝试解析 DNS 主机名来确认系统范围的设置。

$ resolvectl query example.com
example: 104.103.102.1                   -- link: enp0s3
         104.103.102.1                   -- link: enp0s3

-- Information acquired via protocol DNS in 2.7ms.
-- Data is authenticated: no


写在最后

通过本篇,我们基本厘清了路由,网关,DNS 服务器,网络响应等知识。

Web 开发是一门综合的技术,理解的越细致,也越容易定位故障。

Happy coding :-)


我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

相关推荐

程序员都用什么电脑?适合编程笔记本电脑推荐

适合程序员的笔记本电脑首先应该满足小巧轻便这个需求,然后才是性能因素,一个标准的程序员必定能够随时随地改BUG,所以可以优先考虑苹果MacBookPro,由于其MacOS就是Linux内核,做开...

Linux(debian)内核编译(二)虚拟网卡实例

2.10.虚拟网卡TUN/TAP...

老毛子要上天 冬天竟然拿矿机当暖气

2017-12-2814:10:55作者:李鑫我们都知道矿机在实际工作当中会产生出大量的热能,近日俄罗斯就有人用Comino挖矿电脑来充当暖气的效果,这台电脑不需要特别安装,也没有多余的接口,同样...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

Ubuntu 16.04 LTS现已正式支持IBM LinuxONE与z Systems

4月22号的时候,Canonical很高兴地宣布了Ubuntu16.04LTS(XenialXerus)已正式支持IBMzSystems和LinuxONE大型机的消息。该长期支持版本经历了六...

号称最强大深度学习笔电,雷蛇推出Lambda Tensorbook笔记本电脑

IT之家4月13日消息,深度学习公司Lambda与雷蛇合作,发布了新的LambdaTensorbook笔记本电脑,号称是世界上为深度学习设计的最强大的笔记本电脑,可以使用Linux...

电脑连 WiFi 全攻略!3 步搞定 + 疑难解答

电脑搜不到WiFi?输对密码却连不上?看视频卡、打游戏延迟高?别慌!不管你用Win/Mac还是Linux,这篇保姆级教程从连接步骤到故障排查全覆盖,10分钟让你告别“网络黑洞”!一、基础连...

linux 网卡bond模式

如何进行Linux网络绑定网络绑定简介在Debian10Buster(DHCP)上配置有线和无线网络绑定...

在 Ubuntu Server 上配置静态 IP 地址

Ubuntu17.10之前版本编辑/etc/network/interfaces文件重启网络服务或重启服务器来应用新的配置...

爬虫搞崩网站后,程序员自制“Zip炸弹”反击,6刀服务器成功扛住4.6万请求

...

Linux网络运维脚本实战示例:配置下发

在Linux网络运维场景中,自动化配置下发是提高效率的关键。一个示例展示如何编写一个Shell脚本,用于远程批量部署网络配置到多台服务器。本示例将使用SSH无密码登录和Ansible自动化工具来简化和...

KVM 虚拟机网络连接异常的排查方法

#KVM虚拟机网络连接异常的排查方法当KVM虚拟机出现网络连接问题时,可以按照以下系统化的方法进行排查和解决:##一、基础网络检查###1.检查虚拟机网络状态```bash#在虚拟机内部检...

技术宅教你linux开发板直连电脑ubuntu

1:我使用的是笔记本,台式机类似。原理:和开发板挂载到路由器或者交换机不一样。我们通过笔记本电脑直连,是将笔记本的物理网卡作为一个桥梁,把开发板和虚拟机ubuntu连接在一起。连接好以后可以使用NFS...

Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新

IT之家4月18日消息,科技媒体linuxiac昨日(4月17日)发布博文,报道称代号为PluckyPuffin的Ubuntu25.04发行版正式上线,搭载最新Linu...

【故障解决】麒麟系统右下角网络图标取消显示叹号

原文链接:【故障解决】麒麟系统右下角网络图标取消显示叹号...

取消回复欢迎 发表评论: