PROC_NET(5) فایلهای پیکربندی PROC_NET(5)

/proc/net - اطلاعات و آمار لایه شبکه در لینوکس

دایرکتوری /proc/net شامل فایلها و زیرشاخههای حاوی اطلاعات، جداول مسیریابی، سوکتها و آمار لایه شبکه سیستم است که ابزارهایی مانند netstat و ip از آن بهره میبرند.

/proc/pid/net/ (از لینوکس 2.6.25)
توضیحات مربوط به /proc/net را در زیر مشاهده کنید.
/proc/net/
این دایرکتوری شامل فایل‌ها و زیرشاخه‌های گوناگونی است که حاوی اطلاعات لایه شبکه هستند. این پرونده‌ها ساختارهای اسکی (ASCII) دارند و بنابراین با دستور cat(1) نیز قابل خواندن می‌باشند. با این حال، مجموعه ابزارهای استاندارد netstat(8) یا ip(8) دسترسی بسیار تمیزتر و منسجم‌تری به این پرونده‌ها فراهم می‌کنند.
با پیدایش فضاهای نام شبکه (network namespaces)، اطلاعات گوناگون پشته شبکه مجازی‌سازی شده‌اند (نگاه کنید به network_namespaces(7)). بنابراین از لینوکس 2.6.25 به بعد، مسیر /proc/net یک پیوند نمادین (symlink) به دایرکتوری /proc/self/net است که شامل همان پرونده‌ها و دایرکتوری‌های فهرست‌شده در زیر می‌باشد. با این وجود، این پرونده‌ها و دایرکتوری‌ها اکنون اطلاعات مربوط به فضای نام شبکه‌ای را بازتاب می‌دهند که فرایند جاری عضو آن است.
/proc/net/arp
این پرونده حاوی یک رونوشت متنی اسکی از جدول ARP هسته است که برای تفکیک آدرس‌ها به کار می‌رود. این جدول هر دو نوع ورودی‌های یاد گرفته‌شده پویا و ورودی‌های از پیش برنامه‌ریزی‌شده ثابت ARP را نمایش می‌دهد. قالب آن به شرح زیر است:

IP address     HW type   Flags     HW address          Mask   Device
192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0

در اینجا "IP address" آدرس IPv4 رایانه و "HW type" نوع سخت‌افزاری آدرس برگرفته از سند RFC 826 است. فلگ‌ها بیانگر پرچم‌های داخلی ساختار ARP (تعریف‌شده در /usr/include/linux/if_arp.h) هستند و "HW address" در صورت شناسایی، نگاشت لایه پیوند داده (آدرس MAC) برای آن آدرس IP است.
/proc/net/dev
این شبه‌پرونده حاوی اطلاعات وضعیت کارت‌ها و رابط‌های شبکه سیستم است. این فایل تعداد بسته‌های ارسالی و دریافتی، تعداد خطاها، بسته‌های دور ریخته‌شده (drop)، سرریز صفوف (fifo)، برخوردها (collisions) و سایر آمارهای پایه را گزارش می‌دهد. ابزارهایی مانند ifconfig(8) و ip(8) از این داده‌ها برای گزارش وضعیت رابط‌ها بهره می‌برند. قالب این پرونده به صورت زیر است:
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
  eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
  ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
  tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0
/proc/net/dev_mcast
نگهدارنده اطلاعات فیلترهای چندپخشی (multicast) لایه ۲ برای هر رابط شبکه است. تعریف‌شده در /usr/src/linux/net/core/dev_mcast.c:

indx interface_name  dmi_u dmi_g dmi_address
2    eth0            1     0     01005e000001
3    eth1            1     0     01005e000001
4    eth2            1     0     01005e000001

/proc/net/igmp
پروتکل مدیریت گروه اینترنت (Internet Group Management Protocol). شامل اطلاعات اشتراک و عضویت کارت‌های شبکه در گروه‌های چندپخشی است. تعریف‌شده در /usr/src/linux/net/core/igmp.c.
/proc/net/ip_tables_names
نام تمام جدول‌های فایروال فعال iptables(8) در هسته لینوکس را فهرست می‌کند (نظیر filter, nat, mangle, raw و security). این فایل به ابزارهای مدیریتی شبکه امکان می‌دهد تا به سرعت جدول‌های فعال در فیلتر بسته هسته را شناسایی کنند.
/proc/net/netstat
شامل آمارهای پیشرفته و تفصیلی پروتکل‌های شبکه در سطح هسته است که معمولاً توسط ابزارهایی مانند netstat(8) و nstat(8) نمایش داده می‌شوند. داده‌ها در قالب جفت‌خط‌های برچسب و مقادیر عددی برای بخش‌های TcpExt (شامل آمارهای کوکی‌های SYN، انقضای زمان پاسخ، بسته‌های تاخیری ACK و بازفرست‌ها)، IpExt (شامل خطاهای بسته‌ها، بسته‌های چندپخشی، و هم‌پوشانی‌های قطعات IP) و MPTcpExt (آمارهای پروتکل چندمسیره TCP) سازمان‌دهی شده‌اند.
/proc/net/rarp
این پرونده از ساختاری مشابه پرونده arp استفاده می‌کند و شامل پایگاه‌داده نگاشت معکوس آدرس‌ها جهت ارائه خدمات جستجوی آدرس معکوس توسط rarp(8) است. چنانچه پشتیبانی RARP در هسته پیکربندی نشده باشد، این پرونده وجود نخواهد داشت.
/proc/net/raw
شامل رونوشتی از جدول سوکت‌های خام (RAW) در سیستم است. بیشتر اطلاعات آن برای اشکال‌زدایی کاربرد دارد. مقدار "sl" شماره خانه جدول هش هسته برای سوکت است و "local_address" جفت آدرس محلی و شماره پروتکل می‌باشد. مقدار "St" وضعیت داخلی سوکت را نشان می‌دهد. مقادیر "tx_queue" و "rx_queue" اندازه صفوف داده‌های خروجی و ورودی بر مبنای مصرف حافظه هسته هستند. فیلدهای "tr"، "tm->when" و "rexmits" در سوکت‌های خام استفاده نمی‌شوند. فیلد "uid" شناسه کاربری مؤثر (UID) ایجادکننده سوکت را نگهداری می‌کند.
/proc/net/route
این پرونده حاوی جدول مسیریابی IPv4 هسته به شکل متنی اسکی است (مشابه آنچه ابزارهایی مانند route(8) یا ip route نمایش می‌دهند). قالب آن به شکل زیر است:
Iface   Destination Gateway  Flags RefCnt Use Metric Mask     MTU Window IRTT
enp3s0  00000000    011DEA54 0003  0      0   100    00000000 0   0      0
در این جدول، فیلد Iface نام کارت شبکه، Destination آدرس شبکه مقصد در مبنای ۱۶، Gateway آدرس پیش‌فرض درگاه در مبنای ۱۶، Flags پرچم‌های مسیر (مانند فعال بودن یا وجود Gateway)، Metric اولویت مسیر، و Mask نقاب شبکه مقصد را مشخص می‌کنند.
/proc/net/snmp
این پرونده حاوی داده‌های متنی اسکی مورد نیاز برای پایگاه‌های اطلاعات مدیریتی (MIB) مربوط به پروتکل‌های IP، ICMP، TCP و UDP جهت استفاده کارگزاران پروتکل مدیریت ساده شبکه (SNMP) است.
/proc/net/tcp
شامل رونوشتی از جدول سوکت‌های پروتکل TCP است و اطلاعات بسیار ارزشمندی برای اشکال‌زدایی و تحلیل ارتباطات ارائه می‌دهد. مقدار "sl" شماره خانه جدول هش هسته، "local_address" جفت آدرس محلی و درگاه (پورت) در مبنای ۱۶، و "rem_address" جفت آدرس دوردست و درگاه مقصد (در صورت اتصال) است. عبارت "St" وضعیت داخلی سوکت را بیان می‌کند (مانند 01 برای ESTABLISHED و 0A برای LISTEN). مقادیر "tx_queue" و "rx_queue" حجم داده‌های در انتظار ارسال و دریافت را بر حسب بایت نشان می‌دهند. فیلدهای "tr"، "tm->when" و "rexmits" حاوی جزئیات تایمرهای داخلی هسته و ارسال‌های مجدد بسته هستند. فیلد "uid" شناسه کاربری ایجادکننده سوکت را در بر دارد.
/proc/net/udp
شامل رونوشتی از جدول سوکت‌های پروتکل UDP است. بیشتر اطلاعات این فایل برای تحلیل و اشکال‌زدایی وضعیت پورت‌های باز UDP مفید است. قالب آن به شرح زیر است:
sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm->when uid
 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
فیلدهای "tr"، "tm->when" و "rexmits" در پروتکل بدون اتصال UDP استفاده نمی‌شوند و معمولاً مقادیر صفر دارند.
/proc/net/unix
سوکت‌های دامنه یونیکس (UNIX domain sockets) موجود در سیستم و وضعیت آن‌ها را فهرست می‌کند. قالب آن به صورت زیر است:
Num RefCount Protocol Flags    Type St Inode Path
 0: 00000002 00000000 00000000 0001 03    42
 1: 00000001 00000000 00010000 0001 01  1948 /dev/printer
فیلدهای این پرونده عبارتند از:
شماره ردیف در جدول سوکت‌های هسته.
تعداد فرایندها یا کاربرانی که این سوکت را باز نگه داشته‌اند.
در حال حاضر همیشه مقدار 0 دارد.
پرچم‌های داخلی هسته که وضعیت سوکت را بازتاب می‌دهند.
نوع سوکت؛ برای سوکت‌های جریانی SOCK_STREAM مقدار 0001، برای سوکت‌های دیتاگرام SOCK_DGRAM مقدار 0002، و برای SOCK_SEQPACKET مقدار 0005 است.
وضعیت داخلی سوکت.
شماره اینود (inode) مرتبط با سوکت در سیستم فایل.
مسیر فایلی که سوکت به آن متصل شده است (در صورت وجود). سوکت‌های موجود در فضای نام انتزاعی (abstract namespace) نیز در این فهرست گنجانده می‌شوند و با مسیری که با نویسه «@» شروع می‌شود به نمایش درمی‌آیند.
/proc/net/netfilter/nfnetlink_queue
این پرونده اطلاعات مربوط به صف‌بندی فضای کاربری netfilter را در صورت استفاده نمایش می‌دهد. هر خط بیانگر یک صف است. صف‌هایی که توسط هیچ برنامه‌ای در فضای کاربری مشترک نشده‌اند نشان داده نمی‌شوند.

 1   4207     0  2 65535     0     0        0  1
(1)   (2)    (3)(4)  (5)    (6)   (7)      (8)

فیلدهای موجود در هر خط عبارتند از:
(1)
شناسه صف (Queue ID). این شناسه مطابق با مقداری است که در گزینه‌های --queue-num یا --queue-balance برای هدف NFQUEUE در دستور iptables(8) تعیین می‌شود. برای اطلاعات بیشتر به iptables-extensions(8) مراجعه کنید.
(2)
شناسه پورت netlink که در این صف مشترک شده است.
(3)
تعداد بسته‌هایی که هم‌اکنون در صف قرار دارند و منتظر پردازش توسط برنامه کاربردی هستند.
(4)
حالت کپی صف؛ مقدار آن یا 1 است (تنها فراداده بسته کپی می‌شود) یا 2 (داده‌های بدنه و محموله بسته نیز به فضای کاربری ارسال می‌شوند).
(5)
محدوده کپی؛ حداکثر چند بایت از داده‌های بسته به فضای کاربری کپی شود.
(6)
بسته‌های دور ریخته‌شده توسط هسته (queue dropped). تعداد بسته‌هایی که توسط هسته دور ریخته شده‌اند به این علت که بسته‌های زیادی در انتظار دریافت پاسخ نهایی accept یا drop از سوی فضای کاربری مانده بودند.
(7)
بسته‌های دور ریخته‌شده در فضای کاربری (queue user dropped). تعداد بسته‌هایی که در زیرسیستم netlink دور ریخته شده‌اند. این اتفاق معمولاً هنگامی رخ می‌دهد که بافر سوکت پر شده باشد؛ یعنی فضای کاربری توانایی خواندن سریع پیام‌ها را نداشته است.
(8)
شماره ترتیب (Sequence number). به هر بسته در صف یک شماره توالی یکنواخت صعودی (۳۲ بیتی) اختصاص می‌یابد. این فیلد شناسه تازه‌ترین بسته واردشده به صف را نشان می‌دهد.
آخرین عدد در انتهای خط فقط به دلایل سازگاری وجود دارد و همواره برابر 1 است.

cat(1), proc(5), network_namespaces(7), ifconfig(8), ip(8), iptables(8), netstat(8), route(8)

مه ۲۰۲۵ man-pages