专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

使用 Traceroute 探索网络 | VirtualBox:功能强大的虚拟化软件

ins518 2024-10-25 14:12:29 技术文章 12 ℃ 0 评论

互联网数据包的旅程:使用 traceroute 探索网络

在日常工作和生活中,我们都需要连接互联网。但网络故障时常发生,让我们无法访问网络。如何才能快速定位问题根源呢?

ping 命令可以测试两台机器之间的连通性,但它不能提供太多关于问题原因的信息。

互联网是一个由路由器、交换机和计算机组成的复杂网络。当我们尝试连接到服务器时,数据包在到达目的地之前会经过许多路由器。如果其中一个路由器配置错误或出现故障,数据包可能会被丢弃,导致我们无法到达目的地。 本文将介绍 traceroute 的工作原理,以及它如何帮助我们诊断网络问题。

数据包的生命周期

当你连接到服务器(网站或任何其他服务)时,你的计算机首先会检查目标 IP 地址是否与它在同一个网络中。如果在同一个网络中,它会直接将数据包发送到目的地。否则,它会将数据包发送到默认网关,即连接你网络到互联网的 ISP 路由器。

路由器会检查目标 IP 地址是否在其路由表中。如果在,它会直接将数据包发送到目的地。否则,它会将数据包发送到路径中的下一个路由器。此过程会一直重复,直到数据包到达目的地。

正常情况

$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=58 time=5.368 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=58 time=4.325 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=58 time=4.225 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=58 time=4.479 ms

出现问题时

$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
^C

--- 10.0.0.2 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3031ms

traceroute的作用

traceroute 是一个网络诊断工具,可以显示数据包从源到目的地的路径。它允许我们查看路径中的每个路由器以及每个路由器的响应时间。

$ traceroute 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  10.1.0.5  1.123 ms  0.912 ms  1.145 ms
 2  10.1.0.6  2.145 ms  2.023 ms  2.311 ms
 3  * * *
 4  * * *
 5  * * *

traceroute的工作原理

IP 头部字段

  • 源 IP 地址: 发送数据包的计算机的 IP 地址。
  • 目标 IP 地址: 接收数据包的计算机的 IP 地址。
  • 生存时间 (TTL): 数据包可以经过的最大路由器数量。

TTL 字段

TTL 字段用于防止数据包在网络中无限循环。

当发送数据包时,TTL 字段设置为 64(至少在 Linux 和 macOS 中是这样)。当数据包到达路由器时,路由器会 将 TTL 字段减 1。如果 TTL 字段达到 0,路由器会丢弃数据包,并向源计算机发送“生存时间超时”消息。但如果 TTL 字段大于 0,路由器会将数据包转发到路径中的下一个路由器。

ICMP 协议

ICMP 代表“互联网控制消息协议”。它是一种网络设备用来诊断网络通信问题的协议。

pingtraceroute 等命令使用此协议来测试网络连通性。

ICMP 标准定义了几种消息类型。最常见的有:

  • 回显请求: ping 命令用来测试计算机是否可达。
  • 回显应答: 计算机响应“回显请求”时发送。
  • 生存时间超时消息: 当数据包的 TTL 字段达到 0 时,路由器发送此消息。
  • 目标不可达消息: 当目标计算机不可达时,路由器发送此消息。

traceroute的工作流程

traceroute 发送 TTL 值递增的“回显请求”消息,并侦听“生存时间超时”消息,以确定数据包从源到目的地的路径。

可视化 traceroute

  • Traceroute 发送 TTL 递增的 ICMP 数据包。
  • 每个路由器将 TTL 减 1 并转发数据包,直到 TTL 达到 0。
  • 最后一个路由器或目标计算机发送“TTL 超时”或“回显应答”消息。

Traceroute 是一款功能强大的诊断工具,可以帮助我们了解数据在互联网中传输的路径。它可以提供有关网络拓扑和潜在问题的宝贵见解,并允许我们:

  • 识别数据包被丢弃或延迟的位置
  • 发现异常路由路径
  • 检测配置错误或故障的路由器
  • 估算跳数之间的网络延迟

ping 可以告诉我们目的地是否可达,而 traceroute 可以向我们展示整个旅程,使其成为任何网络管理员或好奇 的用户工具包中的必备工具。

正如我们所见,互联网是一个由互连设备组成的复杂网络,而 traceroute 有助于简化这种复杂性。下次遇到网络问题时,请记住使用 traceroute,它可以帮助你找到问题所在,并节省宝贵的故障排除时间。

来源:
https://sebastianmarines.com/post/journey-of-a-packet-exploring-networks-with-traceroute/


x-cmd 用户可选择以下方式快速启动 traceroute :

# 1. 直接使用
x traceroute

# 2. 全局安装
x env use traceroute

进一步探索:
https://cn.x-cmd.com/pkg/traceroute




VirtualBox:功能强大的虚拟化软件

VirtualBox 是一款功能强大且应用广泛的虚拟化软件,无论是个人用户还是企业用户都能从中受益。本文将带您深入了解 VirtualBox,探索其强大的功能和广泛的应用场景,助您更好地利用这款软件提升效率、拓展可能。

一、什么是 Oracle VirtualBox?

  • Oracle VirtualBox 是一款免费开源的虚拟化软件,由 Oracle 公司开发,允许用户在单个物理机器上同时运行多个操作系统。
  • 最初由 InnoTek Systemberatung GmbH 开发,后被 Oracle 收购。
  • 支持多种操作系统和虚拟磁盘格式,包括 VDI、VMDK 和 VHD。
  • 是 VMWare、Hyper-V 等闭源虚拟化平台的最佳开源替代方案。

二、VirtualBox 的历史

  • 21 世纪初由 InnoTek Systemberatung GmbH 创建,旨在为 x86 硬件提供通用的全虚拟化解决方案。
  • 2008 年被 Sun Microsystems 收购,2010 年 Sun Microsystems 被 Oracle 收购。
  • Oracle 继续开发和维护 VirtualBox,并保持其免费开源状态。

三、VirtualBox 的功能

  1. 跨平台兼容性: 可以在 Windows、macOS、Linux 和 Oracle Solaris 等多种主机操作系统上运行。
  2. 多操作系统支持: 允许在单个物理计算机上的虚拟机 (VM) 中同时运行多个客户操作系统。
  3. 硬件虚拟化: 为客户操作系统模拟各种硬件设备,包括硬盘控制器、网络卡、声卡、串口、USB 控制器等。
  4. 资源管理: 可以为每个虚拟机分配虚拟 CPU 和内存。
  5. 快照: 允许保存虚拟机在特定时间点的状态,并可以随时恢复到该状态。
  6. 虚拟硬盘: 允许创建和管理各种格式的虚拟硬盘映像,包括 VDI、VMDK、VHD 和 HDD。
  7. 网络: 提供多种网络模式,包括 NAT、桥接网络、内部网络和仅主机网络。
  8. 远程桌面: 允许使用远程桌面协议 (RDP) 远程访问正在运行的虚拟机。
  9. 客户机增强功能: 提供增强性能和功能的软件包,例如无缝窗口、共享文件夹、改进的图形性能等。
  10. 开放虚拟化格式 (OVF) 支持: 支持使用行业标准 OVF 格式导入和导出虚拟机。
  11. 虚拟机组: 允许将虚拟机组织成组以进行集体管理和控制。
  12. 用户界面: 提供图形用户界面 (GUI) 和命令行界面 (CLI)。
  13. 软件开发工具包 (SDK): 允许与其他软件系统集成。
  14. 其他功能: 包括完全 ACPI 支持、多屏幕分辨率支持、内置 iSCSI 支持、PXE 网络引导支持等。

四、VirtualBox 的用户界面

  • 简单易用,即使是新手用户也能轻松创建和管理虚拟机。
  • 主要功能包括:
  • 快照管理:创建、删除和恢复快照。
  • 克隆虚拟机:创建现有虚拟机的完整或链接克隆。
  • 配置和操作:调整虚拟机设置并执行启动、停止等操作。

五、VirtualBox 的用例

  1. 开发和测试: 创建隔离环境以测试软件在不同操作系统上的兼容性。
  2. 个人和家庭使用: 在单个机器上运行多个操作系统,例如测试新软件或玩游戏。
  3. 教育用途: 教授学生有关操作系统、网络和软件开发的知识。
  4. 企业解决方案: 用于服务器虚拟化和资源优化,例如在单个物理机器上运行多个服务器应用程序。
  5. 备份和灾难恢复: 使用虚拟机快照创建系统还原点,并在发生故障或数据丢失时快速恢复到以前的状态。

六、VirtualBox 中的有用术语

  • 主机操作系统 (Host OS): 安装和运行 VirtualBox 的物理计算机的操作系统。
  • 客户操作系统 (Guest OS): 在 VirtualBox 创建的虚拟机中运行的操作系统。
  • 虚拟机 (VM): VirtualBox 在主机操作系统中创建的模拟计算机系统。
  • 虚拟化: 允许在单个物理计算机上创建和运行虚拟机的技术。
  • 虚拟机管理程序 (Hypervisor): 负责创建和管理虚拟机的软件。
  • 客户机增强功能 (Guest Additions): 增强虚拟机性能和功能的软件包。
  • 开放虚拟化格式 (OVF): 用于打包和分发虚拟机的行业标准格式。
  • 快照 (Snapshot): 捕获虚拟机在特定时间点的状态。
  • 虚拟硬盘 (Virtual Hard Disk): 存储虚拟机硬盘内容的文件。

来源:
https://ostechnix.com/what-is-oracle-virtualbox/


更多内容请查阅 :
x-cmd blog (daily) | [240928] 互联网数据包的旅程:使用 Traceroute 探索网络 | VirtualBox:功能强大的虚拟化软件

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表