如何使用 TTL 值和 Ping 命令识别操作系统

您知道我们可以通过简单地 ping 来识别远程系统上正在运行的操作系统吗? 是的! 在这个简短的指南中,我们将看到如何确定操作系统 TTL 价值和 命令。 此方法应该适用于任何具有 Ping 命令行实用程序的操作系统。

存在大量命令、应用程序和实用程序来查找远程系统的操作系统。 但是,使用 TTL 查找操作系统类型非常容易!

通过查看来自输出的 TTL 值,您可以快速检测系统是否运行 Linux、Windows 或任何其他操作系统。 ping 命令。 您不需要任何额外的应用程序来检测远程系统的操作系统。

TTL 值取决于操作系统和设备的版本。

默认的初始 TTL 值 Linux/Unix64, 和 TTL 值 视窗128.

以下是 Linux、FreeBSD、Mac OS、Solaris 和 Windows 等流行操作系统的默认初始 TTL 值。

操作系统 TTL 值

您可以在最后查看不同操作系统和设备的 TTL 值的完整列表。

用TTL值检测远程主机的操作系统

TTL,代表 生活时间, 是包含在通过基于 TCP/IP 的网络发送的数据包中的计时器值,它告诉接收者在过期和丢弃数据包或数据之前保留或使用数据包或其包含的任何数据的时间。

Ping 命令用于检查局域网或广域网上的系统或设备的连通性和可达性。 大多数操作系统中都预装了 Ping 命令。

要查看 Linux/Windows 主机的 TTL 值,只需从主机本身或网络上的其他系统 ping 主机:

例子:

$ ping -c5 localhost

我的示例输出 Fedora 桌面:

PING localhost(localhost (::1)) 56 data bytes 64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.063 ms 64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.057 ms 64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.070 ms 64 bytes from localhost (::1): icmp_seq=4 ttl=64 time=0.067 ms 64 bytes from localhost (::1): icmp_seq=5 ttl=64 time=0.056 ms  --- localhost ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4096ms rtt min/avg/max/mdev = 0.056/0.062/0.070/0.005 ms
Ping Linux 主机

如你所见,我得到 64 作为上述输出中的 TTL 值。 因为它是一个Linux系统。

Windows 主机呢? 让我们看看如果我们 ping Windows 系统会得到什么。

我将从我的 Windows 10 桌面 ping Fedora 桌面。 我的 Windows 10 的 IP 地址是 192.168.122.239.

$ ping -c5 192.168.122.239

示例输出:

PING 192.168.122.239 (192.168.122.239) 56(84) bytes of data. 64 bytes from 192.168.122.239: icmp_seq=1 ttl=128 time=6.85 ms 64 bytes from 192.168.122.239: icmp_seq=2 ttl=128 time=0.510 ms 64 bytes from 192.168.122.239: icmp_seq=3 ttl=128 time=0.601 ms 64 bytes from 192.168.122.239: icmp_seq=4 ttl=128 time=0.541 ms 64 bytes from 192.168.122.239: icmp_seq=5 ttl=128 time=0.558 ms  --- 192.168.122.239 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4088ms rtt min/avg/max/mdev = 0.510/1.812/6.851/2.519 ms
从 Linux 主机 Ping Windows 主机从 Linux 主机 Ping Windows 主机

请注意 TTL 值? 它是 128。 Windows 操作系统的默认 TTL 值为 128。

初始 TTL 值

下表显示了各种操作系统和设备的默认初始 TTL 值。

设备/操作系统 版本 协议 TTL
艾克斯 TCP 60
艾克斯 UDP 30
安卓 3.2.1 TCP 和 ICMP 64
安卓 5.1.1 TCP 和 ICMP 64
艾克斯 3.2、4.1 ICMP 255
BSDI BSD / 操作系统 3.1 和 4.0 ICMP 255
康帕 Tru64 v5.0 ICMP 64
思科 ICMP 254
DEC Pathworks V5 TCP 和 UDP 30
铸造厂 ICMP 64
FreeBSD 2.1R TCP 和 UDP 64
FreeBSD 3.4、4.0 ICMP 255
FreeBSD 5 ICMP 64
用户体验 9.0x TCP 和 UDP 30
用户体验 10.01 TCP 和 UDP 64
用户体验 10.2 ICMP 255
用户体验 11 ICMP 255
用户体验 11 TCP 64
鸢尾花 5.3 TCP 和 UDP 60
鸢尾花 6.x TCP 和 UDP 60
鸢尾花 6.5.3、6.5.8 ICMP 255
杜松 ICMP 64
MPE/IX (HP) ICMP 200
Linux 2.0.x 内核 ICMP 64
Linux 2.2.14 内核 ICMP 255
Linux 2.4 内核 ICMP 255
Linux 红帽 9 ICMP 和 TCP 64
MacOS/MacTCP 2.0.x TCP 和 UDP 60
MacOS/MacTCP X (10.5.6) ICMP/TCP/UDP 64
NetBSD ICMP 255
网件FVG318 ICMP 和 UDP 64
开放式BSD 2.6 & 2.7 ICMP 255
开放式虚拟机 07.01.2002 ICMP 255
操作系统/2 TCP/IP 3.0 64
OSF/1 V3.2A TCP 60
OSF/1 V3.2A UDP 30
索拉里斯 2.5.1、2.6、2.7、2.8 ICMP 255
索拉里斯 2.8 TCP 64
层云 操作系统 ICMP 255
层云 TCP_OS (14.2-) TCP 和 UDP 30
层云 TCP_OS (14.3+) TCP 和 UDP 64
层云 STCP ICMP/TCP/UDP 60
太阳操作系统 4.1.3/4.1.4 TCP 和 UDP 60
太阳操作系统 5.7 ICMP 和 TCP 255
极品 V4.1 / V4.2A TCP 60
极品 V4.1 / V4.2A UDP 30
极品 V4.2 – 4.5 ICMP 255
虚拟机/多网 TCP 和 UDP 64
虚拟机/TCPware TCP 60
虚拟机/TCPware UDP 64
VMS/卧​​龙岗 1.1.1.1 TCP 128
VMS/卧​​龙岗 1.1.1.1 UDP 30
虚拟机/UCX TCP 和 UDP 128
视窗 工作组 TCP 和 UDP 32
视窗 95 TCP 和 UDP 32
视窗 98 ICMP 32
视窗 98, 98 东南 ICMP 128
视窗 98 TCP 128
视窗 新台币 3.51 TCP 和 UDP 32
视窗 新台币 4.0 TCP 和 UDP 128
视窗 NT 4.0 SP5- 32
视窗 NT 4.0 SP6 + 128
视窗 NT 4 WRKS SP 3、SP 6a ICMP 128
视窗 NT 4 服务器 SP4 ICMP 128
视窗 ICMP 128
视窗 2000 专业版 ICMP/TCP/UDP 128
视窗 2000个家庭 ICMP 128
视窗 服务器 2003 128
视窗 经验值 ICMP/TCP/UDP 128
视窗 远景 ICMP/TCP/UDP 128
视窗 7 ICMP/TCP/UDP 128
视窗 服务器 2008 ICMP/TCP/UDP 128
视窗 10 ICMP/TCP/UDP 128

初始 TTL 值

这种方法可能并不总是准确的。 但是,它将提供远程系统中底层操作系统的概念。 如果您只知道远程系统的 IP 地址,则可以使用 Ping 命令来获取操作系统的名称。

  • 参考链接

相关阅读:

  • 使用 Gping 以图形格式显示 Ping 命令输出
  • 在 Linux 中使用 Ping 命令输出打印时间戳
  • 如何在 Linux 中一次 Ping 多个主机
  • Prettyping – 使 Ping 命令的输出更漂亮、更易于阅读
  • Ping 多个服务器并在类似顶部的文本 UI 中显示输出

CLI命令行检测操作系统识别操作系统LinuxLinux命令Linux提示Ping命令生存时间TTL