| services(5) | File Formats Manual | services(5) |
نام (NAME)
services - فهرست سرویسهای شبکه اینترنت و پورتهای متناظر
توضیحات (DESCRIPTION)
services یک فایل متنی ساده (ASCII) است که نگاشتی میان نامهای متنی و کاربرپسند سرویسهای اینترنتی و شماره پورتهای اختصاصیافته و انواع پروتکل متناظر آنها فراهم میکند. هر برنامه شبکه باید برای به دست آوردن شماره پورت (و پروتکل) سرویس خود به این فایل مراجعه کند. توابع کتابخانه C شامل getservent(3)، getservbyname(3)، getservbyport(3)، setservent(3) و endservent(3) از جستجو و پرسوجوی این فایل توسط برنامهها پشتیبانی میکنند.
شماره پورتها توسط سازمان IANA (سازمان تخصیصدهنده شمارههای اینترنتی) تعیین و واگذار میشوند؛ و سیاست فعلی آنها این است که در زمان تخصیص یک شماره پورت، هر دو پروتکل TCP و UDP را به آن اختصاص دهند. از این رو، اکثر مدخلها دارای دو ردیف خواهند بود، حتی برای سرویسهایی که فقط از پروتکل TCP استفاده میکنند.
شماره پورتهای کمتر از ۱۰۲۴ (اصطلاحاً پورتهای «شمارهپایین») فقط توسط کاربر ارشد (ریشه یا root) قابل اتصال و رزرو هستند (ببینید bind(2)، tcp(7) و udp(7)). این سازوکار باعث میشود کلاینتهایی که به پورتهای شمارهپایین متصل میشوند مطمئن باشند سرویسی که روی آن پورت در حال اجراست، پیادهسازی رسمی و استاندارد آن سرویس است، نه یک سرویس مخرب یا جعلی که توسط یکی از کاربران عادی ماشین اجرا شده باشد. پورتهای شناختهشده (Well-known ports) که توسط IANA مشخص شدهاند، معمولاً در همین محدوده اختصاصی کاربر ریشه قرار دارند.
وجود یک مدخل برای یک سرویس در فایل services لزوماً به این معنی نیست که آن سرویس در حال حاضر روی سیستم اجرا میشود. برای پیکربندی سرویسهای اینترنتی ارائهشده، به inetd.conf(5) مراجعه کنید. توجه داشته باشید که همه سرویسهای شبکه توسط inetd(8) راهاندازی نمیشوند و بنابراین در inetd.conf(5) ظاهر نخواهند شد. بهویژه، کارگزارهای اخبار (NNTP) و ایمیل (SMTP) معمولاً از طریق اسکریپتهای راهاندازی و بوت سیستم آغاز به کار میکنند.
مکان فایل services توسط _PATH_SERVICES در <netdb.h> مشخص میشود. این مسیر معمولاً روی /etc/services تنظیم شده است.
هر خط یک سرویس را توصیف میکند و ساختاری به شکل زیر دارد:
- service-name port/protocol [aliases ...]
- که در آن:
- service-name
- نام خوانا و شناختهشده سرویس است که جستجو بر اساس آن انجام میشود. این نام به بزرگ و کوچک بودن حروف حساس است (case-sensitive). اغلب، برنامه کلاینت همنام با service-name نامگذاری میشود.
- port
- شماره پورت (در مبنای دهدهی) مورد استفاده برای این سرویس است.
- protocol
- نوع پروتکل مورد استفاده است. این فیلد باید با مدخلی در فایل protocols(5) همخوانی داشته باشد. مقادیر معمول آن شامل tcp و udp است.
- aliases
- فهرستی اختیاری از نامهای مستعار دیگر برای این سرویس است که با فاصله (space) یا تب (tab) از هم جدا میشوند. این نامها نیز به بزرگ و کوچک بودن حروف حساس هستند.
برای جداسازی فیلدها میتوان از فاصله (space) یا نویسه تب (tab) استفاده کرد.
توضیحات (کامنتها) با علامت هش (#) شروع شده و تا انتهای خط ادامه مییابند. خطوط خالی نادیده گرفته میشوند.
نام سرویس (service-name) باید از ستون اول فایل آغاز شود، زیرا فاصلههای ابتدای خط حذف نمیشوند. service-name میتواند شامل هر کاراکتر قابل چاپی به جز فاصله و تب باشد. با این حال، برای به حداقل رساندن مشکلات سازگاری باید از کاراکترهای استاندارد و محتاطانه استفاده شود. به عنوان مثال، استفاده از a-z، 0-9 و خط پیوند (-) گزینهای منطقی و ایمن به نظر میرسد.
خطوطی که با این قالب سازگار نیستند نباید در فایل وجود داشته باشند. (در حال حاضر، این خطوط بدون اعلام خطا توسط getservent(3)، getservbyname(3) و getservbyport(3) نادیده گرفته میشوند؛ با این حال، نباید به این رفتار تکیه کرد.)
این فایل ممکن است در سراسر یک شبکه با استفاده از یک سرویس نامگذاری شبکهای مانند NIS/Yellow Pages یا Hesiod/BIND توزیع شود.
یک نمونه از فایل services میتواند به شکل زیر باشد:
netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp # 22 - unassigned telnet 23/tcp
فایلها (FILES)
- /etc/services
- فهرست سرویسهای شبکه اینترنت
- <netdb.h>
- محل تعریف _PATH_SERVICES
همچنین ببینید (SEE ALSO)
listen(2), endservent(3), getservbyname(3), getservbyport(3), getservent(3), setservent(3), inetd.conf(5), protocols(5), inetd(8)
استاندارد RFC شمارههای اختصاصیافته (Assigned Numbers RFC)، آخرین ویرایش RFC 1700 (یا STD0002).
| 2024-05-02 | Linux man-pages 6.9.1 |