NMBD(8) ابزارهای مدیریت سیستم NMBD(8)

nmbd - کارساز نام NetBIOS برای ارائه خدمات نام‌گذاری NetBIOS روی IP به کلاینت‌ها

nmbd [-D|--daemon] [-i|--interactive] [-F|--foreground] [--no-process-group] [-b|--build-options] [-p <port number(s)>] [-P <profiling level>] [-d <debug level>] [--debug-stdout] [--configfile=<configuration file>] [--option=<name>=<value>] [-l|--log-basename <log directory>] [--leak-report] [--leak-report-full] [-V|--version]

این برنامه بخشی از مجموعه samba(7) است.

دستور nmbd کارسازی است که درخواست‌های سرویس نام NetBIOS روی IP را درک کرده و می‌تواند به آن‌ها پاسخ دهد، مانند درخواست‌هایی که توسط کلاینت‌های SMB/CIFS نظیر Windows 95/98/ME، Windows NT، Windows 2000، Windows XP و کلاینت‌های LanManager ایجاد می‌شوند. این کارساز همچنین در پروتکل‌های مرور (browsing protocols) که نمای «Network Neighborhood» ویندوز را تشکیل می‌دهند، مشارکت می‌کند.

کلاینت‌های SMB/CIFS هنگام راه‌اندازی ممکن است بخواهند یک کارساز SMB/CIFS را پیدا کنند؛ یعنی می‌خواهند بدانند یک میزبان مشخص از چه شماره IP استفاده می‌کند.

در میان خدمات دیگر، nmbd به چنین درخواست‌هایی گوش فرا می‌دهد و اگر نام NetBIOS خود آن مشخص شده باشد، با شماره IP میزبانی که روی آن در حال اجرا است پاسخ می‌دهد. «نام NetBIOS خود آن» به‌طور پیش‌فرض همان نام اصلی DNS میزبانی است که روی آن اجرا می‌شود، اما این مقدار را می‌توان با پارامتر netbios name در /etc/samba/smb.conf بازنویسی کرد. بنابراین nmbd به پرس‌وجوهای پخشی (broadcast queries) برای نام(های) خود پاسخ خواهد داد. نام‌های دیگری که nmbd باید به آن‌ها پاسخ دهد را می‌توان از طریق پارامترها در فایل پیکربندی smb.conf(5) تعیین کرد.

دستور nmbd همچنین می‌تواند به‌عنوان یک کارساز WINS (کارساز نام اینترنتی ویندوز / Windows Internet Name Server) استفاده شود. این در اصل بدان معناست که به‌عنوان کارساز پایگاه‌داده WINS عمل کرده، از درخواست‌های ثبت نام که دریافت می‌کند یک پایگاه‌داده می‌سازد و به پرس‌وجوهای کلاینت‌ها برای این نام‌ها پاسخ می‌دهد.

علاوه بر این، nmbd می‌تواند به‌عنوان یک پروکسی WINS عمل کند و پرس‌وجوهای پخشی کلاینت‌هایی را که چگونگی برقراری ارتباط با پروتکل WINS را نمی‌دانند، به یک کارساز WINS بازپخش نماید.

-D|--daemon

در صورت تعیین، این پارامتر سبب می‌شود nmbd به‌صورت یک دیمن عمل کند. یعنی از ترمینال جدا شده و در پس‌زمینه اجرا می‌شود و درخواست‌ها را روی پورت مناسب دریافت می‌کند. به‌طور پیش‌فرض، nmbd اگر از خط فرمان شل اجرا شود، به‌صورت یک دیمن عمل خواهد کرد. همچنین nmbd می‌تواند از متا-دیمن inetd نیز اجرا شود، هرچند این کار توصیه نمی‌شود.

-F|--foreground

در صورت تعیین، این پارامتر موجب می‌شود فرایند اصلی nmbd دیمن نشود؛ یعنی double-fork انجام نداده و از ترمینال جدا نشود. فرایندهای فرزند همچنان طبق معمول برای پاسخ به هر درخواست اتصال ایجاد می‌شوند، اما فرایند اصلی خارج نمی‌شود. این حالت عملیاتی برای اجرای nmbd تحت ناظران فرایند مانند supervise و svscan از بسته daemontools متعلق به Daniel J. Bernstein، یا ناظر فرایند AIX مناسب است.

-i|--interactive

اگر این پارامتر مشخص شود، سبب می‌شود کارساز به‌صورت «تعاملی» اجرا شود و نه به‌صورت دیمن، حتی اگر در خط فرمان شل اجرا شده باشد. تنظیم این پارامتر حالت ضمنی دیمن هنگام اجرا از خط فرمان را لغو می‌کند. همچنین nmbd پیام‌ها را در خروجی استاندارد ثبت می‌کند، درست مانند حالتی که پارامتر -S داده شده باشد.

-H|--hosts <filename>

فایل lmhosts برای NetBIOS. فایل lmhosts فهرستی از نام‌های NetBIOS به نشانی‌های IP است که توسط کارساز nmbd بارگذاری می‌شود و از طریق سازوکار تحلیل نام name resolve order توصیف‌شده در smb.conf(5) برای تحلیل هرگونه پرس‌وجوی نام NetBIOS مورد نیاز کارساز به کار می‌رود. توجه داشته باشید که محتوای این فایل توسط nmbd برای پاسخ به پرس‌وجوهای نام استفاده نمی‌شود. افزودن یک خط به این فایل، تنها بر تحلیل نام NetBIOS از این میزبان تأثیر می‌گذارد.

مسیر پیش‌فرض این فایل در طول فرایند ساخت درون Samba کامپایل می‌شود. پیش‌فرض‌های رایج عبارت‌اند از /usr/local/samba/lib/lmhosts، /usr/samba/lib/lmhosts یا /etc/samba/lmhosts. برای جزئیات بیشتر درباره محتوای این فایل، به صفحه راهنمای lmhosts(5) مراجعه کنید.

-p|--port <UDP port number>

شماره پورت UDP یک عدد صحیح مثبت است. این گزینه شماره پورت پیش‌فرض UDP (که معمولاً 137 است) را تغییر می‌دهد که nmbd روی آن به پرس‌وجوهای نام پاسخ می‌دهد. از این گزینه استفاده نکنید مگر اینکه یک متخصص باشید؛ که در این صورت نیازی به کمک نخواهید داشت!

--no-process-group

گروه فرایند جدیدی برای nmbd ایجاد نمی‌کند.

-d|--debuglevel=level

level یک عدد صحیح بین 0 تا 10 است. مقدار پیش‌فرض در صورت مشخص نشدن این پارامتر 0 است.

هرچه این مقدار بالاتر باشد، جزئیات بیشتری درباره فعالیت‌های کارساز در فایل‌های لاگ ثبت خواهد شد. در سطح 0، تنها خطاهای بحرانی و هشدارهای جدی لاگ می‌شوند. سطح 1 سطحی معقول برای استفاده روزمره است؛ مقدار کمی اطلاعات درباره عملیات انجام‌شده تولید می‌کند.

سطوح بالاتر از 1 مقادیر قابل‌توجهی داده لاگ تولید می‌کنند و فقط باید هنگام بررسی مشکلات استفاده شوند. سطوح بالاتر از 3 فقط برای استفاده توسعه‌دهندگان طراحی شده‌اند و حجم عظیمی از داده لاگ تولید می‌کنند که اکثر آن‌ها بسیار مبهم هستند.

توجه داشته باشید که تعیین این پارامتر در اینجا، پارامتر log level را در فایل /etc/samba/smb.conf بازنویسی می‌کند.

--debug-stdout

این گزینه خروجی اشکال‌زدایی را به STDOUT هدایت می‌کند. به‌طور پیش‌فرض دیمن‌های کارساز در یک فایل لاگ می‌نویسند.

--configfile=CONFIGFILE

فایل مشخص‌شده شامل جزئیات پیکربندی مورد نیاز کارساز است. اطلاعات موجود در این فایل شامل اطلاعات ویژه کارساز مانند فایل printcap مورد استفاده و همچنین شرح تمام خدماتی است که کارساز باید ارائه دهد. برای اطلاعات بیشتر ببینید /etc/samba/smb.conf. نام پیش‌فرض فایل پیکربندی هنگام کامپایل تعیین می‌شود.

--option=<name>=<value>

گزینه smb.conf(5) با نام «<name>» را از خط فرمان به مقدار «<value>» تنظیم می‌کند. این سوییچ پیش‌فرض‌های زمان کامپایل و گزینه‌های خوانده‌شده از فایل پیکربندی را بازنویسی می‌کند. اگر یک نام یا مقدار حاوی فاصله است، تمام عبارت --option=name=value را داخل گیومه قرار دهید.

-l|--log-basename=logdirectory

نام دایرکتوری پایه برای فایل‌های لاگ/اشکال‌زدایی. پسوند ".progname" اضافه خواهد شد (مانند log.smbclient، log.smbd و غیره). فایل لاگ هرگز توسط کلاینت حذف نمی‌شود.

--leak-report

فعال‌سازی گزارش نشت حافظه talloc هنگام خروج.

--leak-report-full

فعال‌سازی گزارش کامل نشت حافظه talloc هنگام خروج.

-V|--version

شماره نسخه برنامه را چاپ می‌کند.

-?|--help

خلاصه‌ای از گزینه‌های خط فرمان را چاپ می‌کند.

--usage

پیام کوتاهی درباره نحوه استفاده نمایش می‌دهد.

/etc/inetd.conf

اگر کارساز قرار است توسط متا-دیمن inetd اجرا شود، این فایل باید شامل اطلاعات راه‌اندازی مناسب برای آن متا-دیمن باشد.

/etc/rc

(یا هر اسکریپت مقداردهی اولیه‌ای که سیستم شما استفاده می‌کند).

اگر کارساز به‌صورت دیمن هنگام راه‌اندازی سیستم اجرا می‌شود، این فایل باید شامل توالی راه‌اندازی مناسب برای کارساز باشد.

/etc/services

اگر کارساز از طریق متا-دیمن inetd اجرا می‌شود، این فایل باید شامل نگاشتی از نام سرویس (مانند netbios-ssn) به پورت سرویس (مانند 139) و نوع پروتکل (مانند tcp) باشد.

/usr/local/samba/lib/smb.conf

این مکان پیش‌فرض فایل پیکربندی کارساز smb.conf(5) است. مکان‌های رایج دیگری که سیستم‌ها این فایل را در آن نصب می‌کنند شامل /usr/samba/lib/smb.conf و /etc/samba/smb.conf هستند.

هنگام اجرا به‌عنوان یک کارساز WINS (به پارامتر wins support در صفحه راهنمای smb.conf(5) مراجعه کنید)، nmbd پایگاه‌داده WINS را در فایل wins.dat در دایرکتوری var/locks (پیکربندی‌شده در مسیری که سامبا برای نصب در آن تنظیم شده است) ذخیره خواهد کرد.

اگر nmbd به‌عنوان یک browse master عمل کند (به پارامتر local master در صفحه راهنمای smb.conf(5) مراجعه کنید)، nmbd پایگاه‌داده مرور را در فایل browse.dat در دایرکتوری var/locks (پیکربندی‌شده در مسیری که سامبا برای نصب در آن تنظیم شده است) ذخیره می‌کند.

برای متوقف ساختن یک فرایند nmbd توصیه می‌شود که از SIGKILL (-9) استفاده نشود، مگر به‌عنوان آخرین راه‌حل؛ چرا که ممکن است پایگاه‌داده نام را در وضعیتی ناسازگار باقی بگذارد. روش صحیح برای متوقف ساختن nmbd ارسال سیگنال SIGTERM (-15) به آن و منتظر ماندن برای خاموش شدن خودبه‌خودی آن است.

کارساز nmbd سیگنال SIGHUP را می‌پذیرد که سبب می‌شود فهرست نام‌های خود را در فایل namelist.debug در دایرکتوری /usr/local/samba/var/locks (یا دایرکتوری var/locks پیکربندی‌شده در مسیری که سامبا برای نصب در آن تنظیم شده است) تخلیه (dump) کند. همچنین این امر موجب می‌شود nmbd پایگاه‌داده کارساز خود را در فایل log.nmb تخلیه کند. علاوه بر این، این سیگنال موجب بارگذاری مجدد پیکربندی nmbd می‌شود.

به‌جای ارسال سیگنال SIGHUP، می‌توان درخواستی برای تخلیه فهرست نام‌ها در فایل و بارگذاری مجدد فایل پیکربندی را با استفاده از برنامه smbcontrol(1) ارسال کرد.

سطح لاگ اشکال‌زدایی nmbd را می‌توان با استفاده از smbcontrol(1) افزایش یا کاهش داد (سیگنال‌های SIGUSR[1|2] از نسخه Samba 2.2 دیگر استفاده نمی‌شوند). این امکان برای بررسی مشکلات گذرا در حالی که هنوز در سطح لاگ پایین عادی اجرا می‌شود فراهم شده است.

این صفحه راهنما بخشی از نسخه 4.24.6 مجموعه نرم‌افزاری Samba است.

inetd(8)، smbd(8)، smb.conf(5)، smbclient(1)، testparm(1) و RFCهای اینترنتی rfc1001.txt، rfc1002.txt. علاوه بر این، مشخصات CIFS (سابقاً SMB) به‌صورت پیوندی از صفحه وب زیر در دسترس است: https://www.samba.org/cifs/.

نرم‌افزار اصلی Samba و ابزارهای مرتبط توسط Andrew Tridgell ایجاد شده‌اند. Samba اکنون توسط Samba Team به‌عنوان پروژه‌ای متن‌باز، مشابه روش توسعه هسته لینوکس، توسعه می‌یابد.

08/16/2026 Samba 4.24.6