欢迎,来自IP地址为:216.73.217.123 的朋友
为了 应付面试,我们可能已经背熟了诸如”什么是 DNS?”或”什么是子网?”之类的网络基础定义。但真正的面试往往会更进一步,通过故障排查类问题来考查应试者在实际系统中解决问题的能力。这正是本文所列问题旨在帮助大家的内容。
大多数人在参加网络技术面试时,往往只准备了定义背诵,但这通常是不够的。面试官经常会跳出”什么是 DNS?”这类问题,转而提出更具实战性的问题,例如:”用户反馈网站无法访问,但你能 ping 通服务器的 IP 地址。接下来你会检查什么?”前者考察的是记忆力,而后者则展示了排查实际故障的能力。
这里整理了 20 个针对 Linux 系统管理员和技术支持岗位的常见网络面试题。这些问题的解答采用了简洁自然的表达方式,就像在面试中实际回答时那样。
1. 什么是计算机网络
计算机网络本质上就是一组相互连接的设备,这些设备可以相互通信并共享数据。这些设备可以是计算机、服务器、电话、打印机,甚至是虚拟机。
通信使用诸如 TCP/IP 之类的标准协议,这些协议定义了数据的发送和接收方式。数据不是以一个大块的形式发送,而是被分割成小的数据包,通过网络传输,然后在目的地重新组装。
一个很好的实际例子是公司网络,员工可以通过同一个网络访问共享文件、打印机和互联网服务。
2. OSI 模型和 TCP/IP 模型的差异
OSI 模型是一个包含 7 个层的概念模型,主要用于理解网络通信的工作原理和排查故障。TCP/IP 模型只有 4 个层,是互联网实际使用的模型。
两者最大的区别在于,OSI 模型将通信划分为更多层,而 TCP/IP 模型则合并了部分层。
例如,OSI 模型中的会话层、表示层和应用层在 TCP/IP 模型中被合并为一个应用层。
在面试中,OSI 模型尤其有用,因为它有助于确定问题发生的位置。例如:
- 第1层(物理层):网线未连接、网卡损坏或链路指示灯不亮
- 第2层(数据链路层):MAC 地址、交换机、VLAN 和 ARP 问题
- 第3层(网络层):IP 地址、路由、路由器和 ICMP
- 第4层(传输层):TCP、UDP、端口号和连接
- 第7层(应用层):提供 HTTP、DNS、SSH 和 SMTP 等服务
因此,可以认为 OSI 模型更像是故障排除指南,而 TCP/IP 模型才是实际网络日常使用的。
3. 什么是 DNS 以及DNS 请求后会发生什么
DNS(Domain Name System)就像互联网的电话簿。它将域名(例如 google.com)转换为计算机用于通信的 IP 地址。
当用户在浏览器中输入网站地址时,计算机首先会检查本地缓存中是否已有该 IP 地址。如果没有,它会将请求发送到 DNS 解析器。
解析器会联系其他 DNS 服务器,直到找到该域名的权威服务器,检索正确的 IP 地址,并将结果缓存一段时间(由 TTL(生存时间)定义),然后将其返回给计算机。之后,浏览器使用该 IP 地址连接到网站。
一些常见的 DNS 记录类型包括:
- A 记录 – 将域名映射到 IPv4 地址
- AAAA 记录 – 将域名映射到 IPv6 地址
- CNAME 记录 – 创建别名,将一个域名指向另一个域名
- MX 记录 – 指定负责接收电子邮件的邮件服务器
- TXT – 存储文本信息,通常用于 SPF、DKIM 和域名验证
- NS – 标识域名的权威名称服务器
- PTR – 将 IP 地址映射回域名,用于反向 DNS 查询
如果需要在 Linux 系统上排查 DNS 问题,可以使用 dig、nslookup 或 host 等命令来验证域名是否解析正确并检查其 DNS 记录。
4. 什么是 IPv4 和 IPv6 以及引入 IPv6的原因
IPv4 和 IPv6 是用于标识网络设备的两种互联网协议版本。
IPv4 使用 32 位地址,书写格式为由点分隔的四个数字(例如 192.168.1.10)。它提供了约 43 亿个唯一地址,但随着联网设备数量的激增,这些地址资源已基本耗尽。
为了解决这一问题,IPv6 应运而生。它采用 128 位地址,以十六进制书写并由冒号分隔(例如 2001:db8::1)。这提供了海量的唯一地址,足以支撑互联网在可预见未来的持续增长。
除了提供更大的地址空间外,IPv6 还提高了路由效率,支持自动地址配置,并且在设计时充分考虑了现代网络的需求。
如今,IPv4 和 IPv6 均被广泛使用。许多网络采用”双栈”模式运行,这意味着在从 IPv4 向 IPv6 过渡的过程中,它们能够同时支持这两种协议。
5. 什么是子网掩码?”/24″代表什么
子网掩码将 IP 地址分为两部分:网络部分和主机部分。网络部分相同的设备可以直接通信,而发往其他网络的数据流量则必须通过路由器转发。
“/24″这种表示法被称为 CIDR 表示法。它意味着前 24 位用于标识网络,这等同于子网掩码 255.255.255.0。剩下的 8 位用于主机地址,总共提供 256 个地址,其中 254 个可供设备使用。
面试中常问到的几种子网规模包括:
- /30 – 2 个可用主机地址
- /29 – 6 个可用主机地址
- /26 – 62 个可用主机地址
- /24 – 254 个可用主机地址
当看到”/24″时,就应该立刻知道它等同于 255.255.255.0,并且该子网最多支持 254 台设备。
6. 什么是私有 IP 地址以及什么是 NAT
私有 IP 地址(Private IP addresses)是指在家庭或办公室等局域网内部使用的 IP 地址。由于它们无法在公共互联网上进行路由,因此不同的网络可以重复使用相同的私有地址段。
常用三个私有 IPv4 地址段如下:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
有时,主机可能还会使用类似 169.254.x.x 格式的地址,这属于链路本地地址(link-local address)。当设备无法从 DHCP 服务器获取 IP 地址时,通常会自动分配此类地址。
为了让使用私有 IP 地址的设备能够访问互联网,路由器会采用 NAT(网络地址转换)技术。在将流量发送到互联网之前,NAT 会将私有源 IP 地址替换为路由器的公网 IP 地址。
当响应数据返回时,路由器会利用其转换表将流量转发给局域网内的正确设备。在大多数家庭和办公网络中,许多设备通过一种称为 PAT(端口地址转换)的 NAT 形式,共享同一个公网 IP 地址。
7. TCP 与 UDP 的区别
TCP 和 UDP 都是传输层协议,但它们的工作方式不同。
TCP 是面向连接且可靠的。在发送数据之前,它会先建立连接,确保数据包按正确顺序到达,对丢失的数据包进行重传,并进行错误校验。正因具备这些特性,它常用于对通信可靠性要求较高的场景。
UDP 是无连接的。它在发送数据时无需建立连接,也不等待接收确认,因此速度快得多,但不保证数据包的送达或顺序。
一些常见的例子包括:
- TCP:HTTP、HTTPS、SSH、FTP、SMTP 以及数据库连接
- UDP:DNS、DHCP、SNMP、VoIP、在线游戏以及实时视频流
加载网页就是一个很好的例子。传统的 HTTP 和 HTTPS 使用 TCP,因为所有数据都必须准确无误地送达。然而,HTTP/3 使用了 QUIC 协议;QUIC 运行在 UDP 之上,同时又能提供可靠的通信,从而加快了连接速度并降低了延迟。
8. 解释 TCP 三次握手
TCP 三次握手是建立可靠连接的过程,握手成功之后才会进行数据交换。
它分为三个步骤:
- 客户端向服务器发送 SYN 数据包以请求建立连接
- 服务器回复 SYN-ACK 数据包,确认客户端的请求并发送自己的同步请求
- 客户端回复 ACK 数据包,确认服务器的响应
完成这三个步骤后,连接即建立,客户端和服务器之间即可可靠地传输数据。该顺序易于记忆:SYN → SYN-ACK → ACK。
9. 什么是 DHCP 以及它是如何工作
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,会自动为设备分配网络设置,因此用户无需手动配置。
当设备加入网络时,它会遵循一个称为 DORA 的四步流程:
- 发现 (Discover) – 客户端广播请求以查找 DHCP 服务器
- 提供 (Offer) – DHCP 服务器提供一个可用的 IP 地址
- 请求 (Request) – 客户端请求使用该 IP 地址
- 确认 (Acknowledge) – 服务器确认分配并发送网络配置
除了 IP 地址之外,DHCP 还会提供子网掩码、默认网关、DNS 服务器地址和租约时间。如果 DHCP 服务器不可用,许多操作系统会将自身分配一个 169.254.x.x 的地址,这通常表示设备无法连接到 DHCP 服务器。
10. 集线器、交换机和路由器之间的区别
集线器(Hub)、交换机(Switch)和路由器(Router)都能连接设备,但它们工作在不同的网络层级,且用途各异。
集线器工作在物理层(第1层)。它只是将接收到的数据转发给所有连接的设备,而不考虑数据的实际目的地;正因如此,集线器效率低下,如今已很少使用。
交换机工作在数据链路层(第2层)。它能学习并记录每个连接设备的MAC地址,仅将数据转发给正确的目标设备,这使得通信速度和效率远高于集线器。
路由器工作在网络层(第3层)。它负责连接不同的网络,并根据IP地址转发数据包。家用路由器通常还具备NAT(网络地址转换)功能,允许私有网络中的多台设备共享同一个公网IP地址。
简而言之,集线器向所有设备广播数据,交换机将数据发送给目标设备,而路由器则负责连接不同的网络。
11. 默认网关和路由表作用
默认网关是设备用于访问其本地网络以外的网络时所使用的路由器。如果目标地址不在本地子网内,数据包会被发送到默认网关,由网关将其转发至下一个网络。
例如,如果用户的计算机位于 192.168.1.0/24 网络中,且我想要访问 8.8.8.8,由于该地址不在其本地网络内,数据包会被发送到默认网关。
在 Linux 系统中,可以使用”ip route”命令查看路由表。路由表显示了系统已知的路由信息以及数据包的转发路径。如果存在多条匹配的路由,Linux 会优先选择最具体的路由;若没有匹配的具体路由,则使用默认路由。
12. 什么是 ARP
ARP(Address Resolution Protocol)地址解析协议,用于在已知设备 IPv4 地址的情况下获取其 MAC 地址。
当一台计算机需要与同一局域网内的另一台设备通信时,它会广播一个 ARP 请求,询问”谁拥有这个 IP 地址?”拥有该 IP 地址的设备会回复自己的 MAC 地址,从而使发送方能够构建以太网帧并发送数据。
为了避免重复发送 ARP 请求,操作系统会将结果存储在 ARP 缓存中;在 Linux 系统上,可以使用”ip neigh”命令查看该缓存。
此外还需注意,ARP 仅适用于 IPv4;IPv6 则使用邻居发现协议(NDP)来替代 ARP。
13. SMTP、POP3 和 IMAP 分别是什么
SMTP、POP3 和 IMAP 都是电子邮件协议,但它们的用途各不相同。
SMTP(简单邮件传输协议)用于发送电子邮件。电子邮件客户端使用 SMTP 向邮件服务器发送邮件,而邮件服务器则使用 SMTP 将邮件转发给其他邮件服务器。
POP3(邮局协议版本 3)用于接收电子邮件,它会将邮件从邮件服务器下载到设备。传统上,邮件下载后会从服务器删除,因此 POP3 更适合在单个设备上使用电子邮件。
IMAP(互联网消息访问协议)也用于接收电子邮件,但它会将邮件保留在邮件服务器上,并在多个设备之间同步。这就是为什么大多数现代电子邮件服务都使用 IMAP 的原因,因为人们可以通过手机、笔记本电脑和平板电脑访问电子邮件。
简而言之,SMTP 用于发送电子邮件,而 POP3 和 IMAP 用于接收电子邮件。主要区别在于 POP3 会下载邮件,而 IMAP 则会在设备之间保持邮件同步。
14. HTTP 和 HTTPS 的区别
HTTP 和 HTTPS 都是用于在浏览器与 Web 服务器之间传输网页的协议。
两者的主要区别在于安全性。HTTP 以明文形式发送数据,因此任何拦截通信的人都可能读取或篡改这些数据。
HTTPS 是受 TLS(传输层安全协议)保护的 HTTP。它会对浏览器与服务器之间的通信进行加密,利用数字证书验证服务器身份,并确保数据在传输过程中不被篡改。
HTTP 通常使用 80 端口,而 HTTPS 使用 443 端口。如今,几乎所有网站都使用 HTTPS,因为它能保护用户数据,并被视为安全网络通信的标准。
15. 解释 PAN、LAN、WLAN、MAN、WAN 和 SAN
这些术语根据规模或用途对网络进行了分类。
- PAN(个人局域网):连接个人身边的设备,例如通过蓝牙将手机连接到无线耳塞
- LAN(局域网):连接小范围内的设备,如家庭、办公室或学校
- WLAN(无线局域网):即使用 Wi-Fi 而非以太网线连接的局域网
- MAN(城域网):连接跨越城市或大型园区的多个局域网
- WAN(广域网):连接跨越广阔地理区域(如不同城市或国家)的网络。互联网是广域网最典型的例子
- SAN(存储区域网):一种专用的高速网络,用于连接服务器与共享存储设备,常见于数据中心
记忆这些术语的简单方法是:PAN 针对个人(Personal),LAN 针对局部区域(Local),WLAN 是无线局域网(Wireless LAN),MAN 覆盖城市(Metropolitan),WAN 覆盖长距离(Wide Area),而 SAN 专为存储(Storage)设计。
16. 交叉线的应用场景
传统上,交叉线(crossover cable)用于直接连接两台同类设备(例如计算机与计算机,或交换机与交换机),这是因为它交换了发送和接收线线序。
然而,在现代网络中,几乎不再需要这种线缆。大多数网络设备都支持 Auto-MDI-X 功能,能够自动检测线缆类型并调整连接方式。这意味着在绝大多数情况下,使用标准的直通以太网线(straight-through Ethernet cable)即可正常工作。
如今,只有在使用不支持 Auto-MDI-X 的旧款 10/100 Mbps 设备时,才需要用到交叉线。
17. 带宽、吞吐量和延迟之间的区别
这三个术语描述了网络性能的不同方面。
带宽是指网络连接所能承载的最大数据量。例如,一条 1 Gbps 的网络链路,其最大带宽为每秒 1 吉比特(Gigabit)。
吞吐量是指实际成功传输的数据量。由于网络拥塞、协议开销和数据包重传等因素,吞吐量通常低于可用带宽。
延迟是指数据从源端传输到目的端并返回所需的时间。通常使用 ping 等工具以毫秒为单位进行测量。
一个常见的面试问题是:增加带宽能否降低延迟?答案是不一定。更快的链路虽然能传输更多数据,但并不能显著缩短数据包在网络中传输所需的时间。
正因如此,即使在极高速的互联网链路上,长距离连接仍可能存在高延迟。
18. 什么是 MAC 地址
MAC(Media Access Control),媒体访问控制地址是分配给网络接口的唯一标识符。它工作在数据链路层(第2层),用于同一局域网内设备之间的通信。
MAC地址长度为48位,通常表示为六组十六进制数,例如 00:1A:2B:3C:4D:5E。
当交换机在局域网内转发数据时,它使用 MAC 地址;而路由器则使用 IP 地址在不同网络之间转发流量。
尽管 MAC 地址由制造商分配,但出于隐私考虑,现代操作系统(特别是在Wi-Fi网络中)可以临时更改或随机化这些地址。
19. 如何衡量网络可靠性
网络可靠性通过网络保持可用状态的持续性以及从故障中恢复的速度来衡量。
一些常见的指标包括:
- 可用性 (Availability) – 网络处于正常运行状态的时间百分比,例如 99.9% 或 99.99% 的正常运行时间
- MTBF (平均故障间隔时间) – 系统在发生故障前正常运行的平均时长
- MTTR (平均修复时间) – 发生故障后恢复服务所需的平均时长
- 丢包率 (Packet Loss) – 传输过程中丢失的数据包百分比。丢包率过高会导致性能下降和连接问题
为了提高网络可靠性,企业通常会采用冗余措施,例如多条网络链路、备用路由器或冗余互联网连接。即使某个组件发生故障,这些措施也有助于确保服务持续可用。
20. 如果有一台服务器无法联网,如何排查问题
在排查无法连接互联网的服务器故障时,通常遵循从网络接口开始、逐层向上排查的步骤。这种方法能精准定位问题所在,而不是盲目猜测。
具体步骤如下:
- 运行”ip link show”,确认网络接口状态为 UP 且链路处于活动状态
- 运行”ip addr show”,验证服务器是否获取了有效的 IP 地址。如果看到”169.254.x.x”这样的地址,通常意味着 DHCP 获取失败
- 运行”ip route show”,确认已配置默认网关;随后 ping 网关以验证本地网络连通性
- 接下来,运行”ping 114.114.114.114″。如果能 ping 通,说明基本的互联网连接是正常的
- 然后,使用”dig baidu.com”或”nslookup baidu.com”测试 DNS 解析。如果能 ping 通”114.114.114.114″ 但 DNS 解析失败,则问题出在 DNS 而非网络连通性上
- 如果出现丢包或连接不稳定的情况,则可以使用”mtr 114.114.114.114″或”traceroute”来排查流量在哪个环节中断
- 最后,如果是排查特定应用程序或服务的问题,使用”ss -tulpn”检查其是否在预期端口上监听,并确认防火墙规则是否拦截了相关流量
关键在于分层排查:从网络接口入手,依次检查 IP 配置、路由、互联网连通性、DNS,最后才是应用程序或服务。这种系统化的方法有助于快速隔离问题,避免不必要的盲目猜测。
掌握命令固然重要,但面试更看重的是是否理解运行这些命令的原因及先后顺序。例如,如果能迅速判断问题是出在网络连通性还是 DNS 解析上,那就说明已经具备了 Linux 管理员的排查思路。
总之
在实际面试中,公司不仅看重能否列举出具体命令,更希望了解分析和解决问题的思路。最出色的回答往往既说明了会执行什么命令,也解释了为何选择执行该命令。
练习用清晰、合乎逻辑的步骤来阐述排查问题的过程,能在技术面试中表现得更加自信。
