Linux---计算机网络常见面试题

一、HTTP和HTTPS有什么区别?

端口不同:

HTTP:80 HTTPS:443

安全程度:

HTTP:明文传输,抓包能直接看到账号、密码,容易被窃听、篡改。

HTTPS:HTTP + TLS/SSL 加密,传输数据加密,第三方无法窃听、篡改。

证书:

HTTP:不需要证书。

HTTPS:需要 CA 签发的数字证书,用来验证服务器身份,防止伪装网站。

性能:

HTTPS 建立连接需要额外握手流程,相比 HTTP,会有少量性能开销。

工作层次:

HTTP 工作在应用层

HTTPS = HTTP(应用层)+ TLS(会话 / 表示层)

HTTPS 就是加密版的 HTTP,解决明文传输的安全漏洞。

✅面试拓展常问:

Q:HTTPS 能防什么?不能防什么?

能防:中间人窃听、数据篡改、钓鱼伪装服务器

不能防:页面本身的恶意代码、用户误点钓鱼链接

二、TCP和UDP的区别是什么?应用场景呢?

对比维度 TCP(传输控制协议) UDP(用户数据报协议)
连接特性 面向连接,通信前先三次握手建立连接 无连接,直接发数据包,不用建立连接
可靠性 可靠传输;确认应答、重传、防丢包、数据有序 不可靠传输;无确认机制,可能丢包、乱序
控制机制 拥塞控制、流量控制 没有任何控制机制
头部开销 头部 20 字节,较大 头部仅 8 字节,开销极小
适用思路 宁可慢,不能丢 宁可少量丢包,追求低延迟

应用场景

TCP 适用(不能丢失数据) 网页 HTTP/HTTPS、SSH 远程连接、FTP 文件下载、数据库连接、邮件 SMTP/POP3

UDP 适用(允许少量丢包,追求实时性) DNS 查询、直播、语音通话、网络游戏、视频会议、TFTP

TCP 面向连接、可靠有序,适合文件传输、网页访问;

UDP 无连接、开销小、实时性高,适合音视频、游戏、DNS。

✅面试拓展常问:

为什么直播不用 TCP?

如果网络卡顿,TCP 会不断重传丢失数据包,造成画面延迟越来越高;UDP 丢少量包直接丢弃,保证画面实时流畅。

三、设备上线后部分网站可访问、部分不可访问,如何排查?

关键结论:基础网络连通正常,排除整机完全断网、网卡故障。故障大概率和DNS、路由、MTU、防火墙策略、域名 / IP 封禁、代理相关。

复制代码
1、优先排查【DNS 解析问题】(最高发!)
现象:打不开的网站域名解析失败、解析出错误 IP
nslookup 域名
dig 域名
如果解析失败 → DNS 服务器故障 / 配置错误,更换公共 DNS(114.114.114.114、8.8.8.8)
如果解析 IP 不对 → DNS 被劫持
测试小技巧:直接用目标网站 IP 访问
IP 能打开、域名打不开 = 确定是 DNS 问题

2、连通性测试(区分能不能到达目标服务器)
ping 目标IP
telnet 目标IP 目标端口(80/443)
ping 不通、端口不通:路由 / 防火墙拦截问题
ping 通、端口不通:对端服务器防火墙拦截,或者运营商封禁端口

3. 检查路由
能访问的网站路由可达,无法访问的网段缺少回程路由 / 静态路由错误
查看路由表:route -n / ip route
跨运营商场景经常出现路由不通。

4. 防火墙 / ACL 策略(非常常见)
本机防火墙、网关防火墙、运营商防火墙做了访问控制:
放行一部分 IP,拦截另一部分网段 / 端口(443、80 等)

5. MTU 值不匹配(容易遗忘的坑)
数据包过大无法分片,大包丢包,小数据包正常。
部分网站数据包小可以正常访问,大型网页请求大包直接失败。
解决:调整接口 MTU(常见 1500、1480、1492)

6. 代理、NAT 问题
设备开启 NAT,会话数限制、端口耗尽;
代理配置异常,只转发部分流量。

7. 运营商链路限制
部分网站服务器在境外,运营商封禁跨境流量;
或者运营商骨干网部分网段故障。

四、计算机网络7层是啥

  1. 应用层 →6. 表示层 →5. 会话层 →4. 传输层 →3. 网络层 →2. 数据链路层 →1. 物理层

五、查看80端口占用命令

lsof -i :80

lsof:list open files,列出系统打开的文件;在 Linux 中网络连接也被当作文件。 -i:只筛选网络相关连接; :80:过滤目标端口为 80,这条命令可以直接查出占用 80 端口的进程 PID 和程序名称。
ss -tulpn | grep :80

ss:替代 netstat 的套接字查看工具; -t TCP、-u UDP、-l监听端口、-p显示进程、-n不解析域名; grep :80 过滤 80 端口。

六、HTTP常见状态码以及含义;HTTP响应头字段

200 成功;3xx 跳转;4xx 用户问题;5xx 服务器问题

状态码 含义 通俗解释
200 OK 请求成功,正常返回数据
301 Moved Permanently 永久重定向,浏览器缓存新地址
302 Found 临时重定向,不缓存
304 Not Modified 资源未修改,使用本地缓存
403 Forbidden 服务器收到请求,但权限不足,禁止访问
404 Not Found 请求的资源不存在
405 Method Not Allowed 请求方式不允许(如 POST 接口只用 GET 访问)
500 Internal Server Error 服务器代码内部异常
502 Bad Gateway 网关错误,Nginx 无法连接后端服务
503 Service Unavailable 服务暂时不可用(超载、停机维护)
响应头字段 作用说明
Content-Type 告知客户端响应数据的类型,如application/jsontext/html
Server 标明服务器软件(Nginx/Apache)
Set-Cookie 服务器下发 Cookie,浏览器后续请求自动携带
Cache-Control 设置缓存策略,控制浏览器缓存行为
Location 搭配 301/302 重定向,提供跳转 URL
Connection keep-alive保持长连接;close关闭连接
ETag 资源唯一标识,用于协商缓存,触发 304
Last-Modified 资源最后修改时间,用于协商缓存
Access-Control-Allow-Origin 跨域配置,允许指定域名访问资源
Date 服务器生成响应的时间

七、如果http返回200是什么意思?403,404呢, 例如出现404和502是因为什么原因

200:请求成功,服务器正常返回数据。

403:服务器收到请求,但访问权限不足,禁止访问。

404:访问的资源不存在(地址写错、资源删除)。

502:网关错误,Nginx 无法连通后端应用程序,后端服务宕机或未启动。

八、介绍下TCP三次握手四次挥手,为什么挥手是4次,三次不行吗

一、三次握手(建立连接)

前提:TCP 是面向连接,通信前必须建好连接。

  1. 第一次握手 :客户端 → 服务端,发送 SYN 客户端请求:我想和你建立连接。

  2. 第二次握手 :服务端 → 客户端,发送 SYN+ACK 两层含义:①收到你的连接请求(ACK);②我也同意建立连接(SYN)。

  3. 第三次握手 :客户端 → 服务端,发送 ACK 客户端确认:收到你的同意,连接正式建立。

核心:SYN 和 ACK 可以合并发送,所以只需要 3 次。
二、四次挥手(断开连接)

TCP 连接是全双工,两端各自独立关闭发送通道。

  1. 第一次挥手 :客户端 → 服务端,FIN 客户端:我不再发送数据了。

  2. 第二次挥手 :服务端 → 客户端,ACK 服务端:收到关闭请求,我知道你不发数据了;但我还有剩余数据可以继续发给你

  3. 第三次挥手 :服务端 → 客户端,FIN 服务端:我的数据全部发送完毕,我也要关闭发送通道。

  4. 第四次挥手 :客户端 → 服务端,ACK 客户端:确认收到,连接彻底关闭。

三、为什么挥手不能合并成 3 次?

建立连接的时候,服务端收到 SYN,立刻就能同步发送 SYN+ACK,两个标志可以合并成一个报文,所以第二次握手是一包。

断开连接不一样: 服务端收到客户端的 FIN 后,不能马上发送 FIN ! 此时服务端可能还存在未传输完成的数据,需要先回复 ACK,等所有数据发送完毕,才能发送 FIN。 👉 ACK 和 FIN 无法合并到同一个数据包,因此必须分成两次报文,最少需要四次挥手。

九、如果说现在我一个主机要访问另一个主机,ip是怎么获取的

  • 若使用域名访问:主机向 DNS 服务器发送解析请求,DNS 查询并返回域名对应的 IP 地址;
  • 若直接 IP 访问,无需获取,直接使用填写的 IP;
  • 获取 IP 后,通过 ARP 协议,由目标 IP 得到 MAC 地址,完成二层通信。

域名访问依靠 DNS 服务器解析得到 IP;直接 IP 访问则无需解析;得到 IP 后通过 ARP 获取 MAC 地址。

十、TCP和UDP有什么不同

对比项 TCP UDP
连接特性 面向连接,通信前三次握手建立连接 无连接,直接发送数据报
传输可靠性 可靠传输,有确认、重传、流量控制、拥塞控制,不丢包、不乱序 不可靠传输,无确认机制,可能丢包、乱序
头部开销 头部 20 字节,开销大 头部仅 8 字节,开销小
有序性 数据按顺序到达 不保证顺序
适用思想 优先保证数据完整,牺牲部分实时性 优先低延迟,允许少量丢包

应用场景

✅ TCP:网页、文件传输、SSH 远程登录、数据库连接(不能丢数据)

✅ UDP:DNS、直播、语音通话、网络游戏、视频会议(追求实时性)

十一、ping百度丢包率高怎么办

  • 先 ping 网关

    • 网关也丢包:内网问题。检查网线、交换机、无线干扰、网卡故障、本机后台大量下载占带宽。
    • 网关正常、ping 外网丢包:问题出在运营商外网链路。
  • 区分是所有外网都丢包,还是只丢百度 测试 ping 8.8.8.8 等其他公网地址。 只有百度丢包:目标服务器链路问题;全部外网丢包:本地上行 / 运营商线路故障。

  • 检查本机资源 是否后台下载、视频、进程跑满带宽,造成网络拥堵。

  • 排查 MTU MTU 设置过大,大包分片失败引发隐性丢包,适当调小 MTU 测试。

  • 无线网络额外排查 WiFi 距离远、信道干扰,优先换成网线测试,排除无线干扰。

  • 测试 DNS 更换公共 DNS,排除 DNS 层面引发的访问异常(注意:ping 域名丢包和 ping IP 丢包分开看)

  • 服务器场景补充 查看防火墙策略、服务器 CPU / 带宽负载是否跑满。

✅考场极简简答版本

  1. ping 网关区分故障在内网还是外网;
  2. 检测本机带宽是否被占满,无线环境更换网线排除干扰;
  3. 测试多个外部 IP,判断是否单一目标服务器故障;
  4. 调整网卡 MTU 值,解决数据包分片丢包;
  5. 外网持续丢包,联系运营商排查骨干链路

十二、主机通过域名怎么访问网页的过程

  • DNS 域名解析,将域名解析为服务器 IP 地址;
  • 客户端与服务器通过三次握手建立 TCP 连接;
  • HTTPS 站点完成 TLS 握手建立加密通道;
  • 浏览器发送 HTTP 请求;
  • Web 服务器处理请求,返回网页资源;
  • 浏览器接收数据,渲染展示页面;
  • 四次挥手释放 TCP 连接

十三、网站无法访问有什么原因

  1. 检查 DNS 解析 使用ping 域名、nslookup 测试。无法解析 → 定位 DNS / 域名问题。
  2. 连通性测试 ping 服务器IP,IP 不通:服务器宕机或者链路拦截;IP 正常继续下一步。
  3. 端口连通测试 使用 telnet/curl 测试 80 (HTTP)、443 (HTTPS) 端口。端口不通:防火墙 / 安全组拦截、Web 服务未启动。
  4. 访问观察 HTTP 状态码 4xx:客户端 / 资源路径问题;5xx:服务器后端程序异常。
  5. 服务器内部排查 查看 Web 服务运行状态、服务器负载、程序日志、SSL 证书有效性。
相关推荐
维核科技1 小时前
多卡集群频繁裂卡、通信报错?NVLink故障排查与运维优化方案
运维·服务器维修·gpu维修·算力卡维修·gpu故障·算力卡故障·服务器故障
10mAh2 小时前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
Promise微笑2 小时前
红外热像仪选型:3~5μm中波与8~14μm长波探测机理解析
运维
承渊政道2 小时前
飞牛NAS部署Immich:搭建家庭相册并实现远程访问
运维·服务器·docker·内网穿透·cpolar·nas·immich
楷哥爱开发2 小时前
如何在 Windows、macOS 和 Linux 上安装 scikit-learn (sklearn)
linux·windows·macos
十年磨一剑~2 小时前
CAAM不落盘存储密钥方式处理
linux·ubuntu
zhangrelay2 小时前
ROS 2 Lyrical 第2章 ROS 2系统架构与核心概念
linux·笔记·学习·ubuntu·ros2
橘色的喵2 小时前
EventPool 32-bit 带标签 CAS 池:RT-Thread 单核 + Linux 双平台无锁
linux·运维·服务器
buhuizhiyuci3 小时前
【Linux 网络篇】数据的 “循环系统“:协议认识与网络传输的流程
linux·运维·服务器·网络·vscode