
به اشتراک بگذارید
یکی از خطاهای رایج در مدیریت سرویس 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 نمایش داده میشود.
بررسی اولیه سرویس 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 ذخیره شده است.بررسی فایلهای تنظیمات:
- فایل
/etc/rndc.keyرا باز کنید و محتوای بخشkeyرا بررسی کنید. - سپس در فایل
/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 (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 هماهنگ نباشد.



