在 Linux 系统中,尤其是 Ubuntu,我们常常需要了解当前系统的网络连接、路由表、接口状态等信息。而 /proc/net 目录正是一个强大的工具,它属于 proc 文件系统 的一部分,能够实时反映内核中的网络状态。
本文将带你从零开始,手把手教你如何使用 /proc/net 查看和分析 Linux 网络信息,即使是刚接触 Linux 的小白也能轻松上手!

/proc 是 Linux 内核提供的一个虚拟文件系统,它不占用磁盘空间,而是动态生成于内存中。其中 /proc/net 子目录专门用于展示当前系统的网络相关数据。
当你运行以下命令时,就能看到它的内容:
ls /proc/net典型输出可能包括:
arp:ARP 缓存表dev:网络接口统计信息route:内核路由表tcp、udp:当前 TCP/UDP 连接netstat:网络协议统计unix:Unix 域套接字这个文件显示每个网络接口接收(Receive)和发送(Transmit)的数据包数量、字节数等。
cat /proc/net/devInter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 1234567 12345 0 0 0 0 0 0 1234567 12345 0 0 0 0 0 0 eth0: 98765432 87654 0 0 0 0 0 0 12345678 23456 0 0 0 0 0 0第一列是接口名(如 lo 是回环接口,eth0 或 ens33 是物理网卡),后面是收发统计。
该文件以十六进制格式列出所有 TCP 连接,包括本地地址、远程地址、连接状态等。
head -n 3 /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12345 1 0000000000000000 100 0 0 10 0 1: 0100007F:1F90 0100007F:CE92 01 00000000:00000000 00:00000000 00000000 1000 0 23456 1 0000000000000000 20 4 25 10 -1注意:地址是十六进制且字节序相反。例如 0100007F 实际是 127.0.0.1(7F=127, 00=0, 00=0, 01=1)。端口 0277 十六进制转十进制为 631。
虽然可读性差,但它是 ss 和 netstat 等工具的数据来源。
cat /proc/net/routeIface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTTeth0 00000000 0100A8C0 0003 0 0 100 00000000 0 0 0eth0 0000A8C0 00000000 0001 0 0 100 00FFFFFF 0 0 0同样使用十六进制表示 IP。例如 0100A8C0 转换为点分十进制是 192.168.0.1(C0=192, A8=168, 00=0, 01=1)。
相比 ifconfig、netstat 等传统命令,直接读取 /proc/net 有以下优势:
你可以用简单的 Shell 脚本监控网络流量变化:
#!/bin/bash# 监控 eth0 接口的接收字节数RX=$(awk '/eth0:/ {print $2}' /proc/net/dev)echo "当前 eth0 接收字节数: $RX"通过本文,你已经掌握了如何利用 Ubuntu /proc/net 来查看和分析 Linux 网络信息。无论是排查网络故障、监控流量,还是学习内核网络机制,/proc/net 都是一个不可或缺的工具。
记住,proc 文件系统 是 Linux 的“窗口”,而 /proc/net 正是你观察网络世界的望远镜。善用它,你将对系统有更深入的理解!
关键词回顾:Ubuntu /proc/net、Linux网络信息、proc文件系统、网络状态查看。
本文由主机测评网于2025-12-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126064.html