یکی از خطاهای رایج در مدیریت سرویس DNS روی سرورهای لینوکسی، خطای rndc: connect failed: 127.0.0.1#953: connection refused است. این خطا معمولاً هنگام اجرای دستورات مدیریتی RNDC (Remote Name Daemon Control) ظاهر می‌شود و به معنی عدم برقراری ارتباط بین ابزار RNDC و سرویس اصلی BIND (Named) است.
به بیان ساده‌تر، زمانی که سرویس DNS در حال اجرا نباشد یا پیکربندی آن نادرست باشد، ابزار RNDC نمی‌تواند به پورت 953 در آدرس محلی 127.0.0.1 متصل شود. هدف این مقاله از بلاگ وب‌داده، ارائه‌ی یک راهنمای گام‌به‌گام برای رفع کامل این خطاست، به‌گونه‌ای که حتی کاربران مبتدی هم بتوانند با اطمینان مشکل را برطرف کنند.
💡 و اما در این مقاله به بررسی موارد زیر خواهیم پرداخت:
  • بررسی وضعیت سرویس Named و اطمینان از اجرای آن
  • بررسی تنظیمات کلیدهای RNDC و همسان‌سازی با Named
  • بررسی سطح دسترسی و مالکیت فایل‌های پیکربندی
  • تحلیل وضعیت فایروال و SELinux
  • ارائه مثال واقعی از خطا و نحوه رفع آن

خطای rndc connect failed چیست و در چه شرایطی رخ می‌دهد؟

این خطا معمولاً زمانی ظاهر می‌شود که کاربر با سطح دسترسی root یا کاربر مدیریتی در محیط ترمینال لینوکس دستوراتی مانند rndc reload یا rndc status را اجرا می‌کند. در این شرایط، اگر سرویس Named (BIND DNS Server) غیرفعال باشد یا پیکربندی بین RNDC و Named ناهماهنگ باشد، پیغام connection refused در محیط SSH یا کنترل‌پنل‌هایی مانند cPanel و DirectAdmin نمایش داده می‌شود.
خطای rndc

بررسی اولیه سرویس Named (Service Status Check)

اولین و مهم‌ترین مرحله در رفع خطای rndc connect failed بررسی وضعیت سرویس Named است. در بسیاری از مواقع، دلیل بروز این خطا ساده است: سرویس DNS در حال اجرا نیست یا کرش کرده است.

دستورات بررسی وضعیت سرویس Service Status Check:

systemctl status named
یا در توزیع‌های قدیمی‌تر:
service named status
اگر سرویس فعال نبود، آن را با دستور زیر راه‌اندازی کنید:
systemctl start named
در صورتی که سرویس به هر دلیل اجرا نمی‌شود، می‌توانید لاگ‌های سیستم را برای یافتن علت بررسی کنید:
journalctl -xe | grep named
cat /var/log/messages | grep named
📌 نکته تخصصی: طبق آمار Red Hat در سال 2024، بیش از 60٪ موارد خطای Connection Refused مربوط به عدم اجرای سرویس BIND بوده است.

بررسی و تنظیم کلیدهای RNDC

اگر سرویس در حال اجراست ولی همچنان خطای connection refused مشاهده می‌شود، احتمالاً مشکل از کلید امنیتی RNDC است. Named و RNDC برای ارتباط از یک کلید مشترک استفاده می‌کنند که معمولاً در فایل /etc/rndc.key یا /etc/rndc.conf ذخیره شده است.

بررسی فایل‌های تنظیمات:

  1. فایل /etc/rndc.key را باز کنید و محتوای بخش key را بررسی کنید.
  2. سپس در فایل /etc/named.conf مطمئن شوید که در بخش controls، همان نام کلید و مسیر فایل ذکر شده باشد.
📝 نمونه:
key "rndc-key" {
    algorithm hmac-sha256;
    secret "xxxxxxxxxxxxxxxx";
};

controls {
    inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };
};
اگر نام کلید یا مقدار secret متفاوت بود، آن را اصلاح کنید یا یک کلید جدید تولید کنید:
rndc-confgen -a
systemctl restart named
⚠️ هشدار: گاهی مدیران سرور کلید جدید تولید می‌کنند اما فایل قبلی را جایگزین نمی‌کنند. مطمئن شوید نسخه جدید فایل /etc/rndc.key در مالکیت root:named و با دسترسی مناسب ذخیره شده باشد.

بررسی مجوزها و مالکیت فایل‌ها

گاهی خطای rndc به دلیل مجوزهای اشتباه فایل‌های پیکربندی ایجاد می‌شود. Named باید بتواند فایل کلید را بخواند.
دستورات اصلاح مجوزها:
chown root:named /etc/rndc.key
chmod 640 /etc/rndc.key
برای اطمینان از عدم وجود خطای دسترسی:
ls -l /etc/rndc.key
اگر کاربر named مجوز خواندن نداشت، آن را اصلاح کنید.

بررسی وضعیت فایروال و SELinux

در موارد نادر، فایروال یا SELinux ممکن است مانع اتصال محلی RNDC به Named شود. برای اطمینان:

بررسی وضعیت پورت 953 در سرویس Named:

پورت 953 همان مسیری است که ارتباط بین سرویس Named و ابزار RNDC برقرار می‌شود. در صورت بروز خطای rndc connect failed، بررسی این پورت اهمیت بالایی دارد؛ چراکه اگر سرویس BIND در این پورت گوش ندهد، دستورهای مدیریتی RNDC با خطای connection refused مواجه می‌شوند.
netstat -tulnp | grep 953
اگر خروجی خالی بود، یعنی سرویس Named روی پورت 953 گوش نمی‌دهد.

بررسی فایروال:

firewall-cmd --list-all | grep 953
iptables -L -n | grep 953
در صورت نیاز، پورت 953 را مجاز کنید:
firewall-cmd --permanent --add-port=953/tcp
firewall-cmd --reload

بررسی SELinux:

sestatus
اگر در حالت enforcing است، موقتاً غیرفعال کنید و تست کنید:
setenforce 0
rndc connect failed

مثال واقعی از خطای rndc connect failed (Case Study)

یکی از مدیران سیستم در سال 2025 در یک سرور CentOS 7 گزارش داد که پس از بروزرسانی خودکار، خطای rndc: connect failed دریافت می‌کند. بررسی‌ها نشان داد که پس از آپدیت، فایل /etc/rndc.key به‌صورت خودکار بازنویسی شده اما بخش controls در /etc/named.conf همچنان به کلید قدیمی ارجاع می‌داد. پس از همسان‌سازی نام و مسیر کلید و ریستارت سرویس، مشکل به‌طور کامل رفع شد.

جدول مقایسه دلایل خطای rndc connect failed و راه‌حل‌ها

این جدول به مدیران سرور کمک می‌کند تا درک دقیقی از منشأ خطای rndc connect failed داشته باشند. در این بخش می‌بینید که چگونه هر دلیل فنی می‌تواند منجر به بروز مشکل اتصال شود و راه‌حل مناسب برای هر مورد چیست. با بررسی این موارد می‌توان سریع‌تر خطا را در محیط‌های مختلف لینوکسی برطرف کرد.
علت خطاتوضیحراه‌حل پیشنهادی
سرویس Named خاموش استمعمول‌ترین علت خطااجرای systemctl start named
کلید RNDC ناهماهنگ استعدم تطابق key بین فایل‌هااجرای rndc-confgen -a و همسان‌سازی پیکربندی
مجوز فایل اشتباه استسرویس قادر به خواندن کلید نیستاجرای chown root:named /etc/rndc.key
پورت 953 مسدود استفایروال اتصال را قطع کردهافزودن rule به firewalld
SELinux مانع ارتباط استحالت enforcing محدودکننده استغیرفعالسازی موقت SELinux

⚙️ توصیه‌های کلیدی برای مدیران سرور در رفع خطای خطای rndc

  • همیشه پس از تغییر در فایل‌های پیکربندی، سرویس را ریستارت کنید: systemctl restart named
  • وضعیت ارتباط RNDC را تست کنید: rndc status
  • در محیط‌های تولید، از فایل‌های پشتیبان /etc/named.conf و /etc/rndc.key نسخه بکاپ داشته باشید.
  • اگر از سیستم‌های مبتنی بر cPanel یا DirectAdmin استفاده می‌کنید، مسیر فایل‌ها ممکن است متفاوت باشد (مانند /etc/named.conf.local).

نتیجه‌گیری:خطای اتصال رد شد

خطای rndc: connect failed: 127.0.0.1#953: connection refused یکی از متداول‌ترین مشکلات DNS در لینوکس است که در بیشتر مواقع به دلیل خاموش بودن سرویس Named یا کلیدهای ناهماهنگ RNDC رخ می‌دهد. با رعایت مراحل گفته‌شده در این مقاله، می‌توانید به‌صورت سیستماتیک علت را شناسایی کرده و آن را رفع کنید.
مدیران سرور باید همواره پس از هر به‌روزرسانی یا تغییر پیکربندی DNS، هماهنگی فایل‌های RNDC و Named را بررسی کنند تا از بروز اختلال در عملکرد سرویس‌ها جلوگیری شود.

سوالات متداول از rndc connect failed

1- چرا خطای rndc connect failed حتی بعد از ریستارت سرویس ادامه دارد؟

زیرا احتمال دارد کلید RNDC در فایل named.conf با فایل rndc.key هماهنگ نباشد.

نرسی مزداب
نرسی مزداب

من نویسنده و تولیدکننده محتوای تخصصی در حوزه هاستینگ هستم که با تمرکز بر کپی‌رایتینگ و ارائه آموزش‌های کاربردی، به ارتقای دانش و مهارت کاربران کمک می‌کنم. سال‌هاست که در زمینه هاستینگ و شبکه فعالیت می‌کنم و همواره تلاش دارم با به‌روزرسانی اطلاعات خود، بهترین و مفیدترین مطالب را برای مخاطبان ارائه دهم.

مقاله‌ها: 129
پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *