رفع مشکلات سرویس named: بررسی خطاها و راهکارهای عملی
سرویس named یکی از سرویسهای کلیدی در مدیریت سیستم نام دامنه (DNS) است که وظیفه ترجمه نامهای دامنه به آدرسهای IP را بر عهده دارد. این سرویس در بسیاری از سرورها برای بهبود ارتباطات شبکه و مدیریت دامنهها مورد استفاده قرار میگیرد. با این حال، مانند هر سرویس دیگری، ممکن است گاهی با مشکلاتی مواجه شود که باعث اختلال در عملکرد شبکه یا دامنهها شود. در این مقاله، به بررسی دلایل بروز و رفع مشکلات سرویس named و راهکارهای رفع آنها میپردازیم.
رفع مشکلات سرویس named
در آموزش نصب دایرکت ادمین که پیش تر به آن اشاره کرده بودیم , با وجود ارقام ارز برای پرداخت های لایسنس دایرکت ادمین و … روش نصب و لایسنس دایرکت ادمین کلا تغییراتی داشته است مانند بوجود آمدن لایسنس های سیستمی و نال شده.
همین تغییر در نصب و دستکاری هایی که انجام میشود روی لایسنس های نال شده و سیستمی باعث بروز مشکلاتی در سرویس های اصلی میشود . سرویس named هم جز همین دسته میباشد و بعد از نصب دایرکت ادمین معمولا غیر فعال میشود و برای فعال شدن آن راه های متعددی وجود ندارد.
در ادامه به آن میپردازیم.
غیر فعال شدن سرویس named دایرکت ادمین
مشکل در سرویس named برای ما هم اتفاق میافتد و دلیل منطقی و قانع کننده ای برای آن وجود ندارد.اما میتوان از ریبیلد کردن و نصب مجدد جلوگیری کرد.
یکی از روش های حل مشکل غیر فعال شدن named در دایرکت ادمین را حذف و نصب مجدد سرویس Bind است.
به همین منظور ابتدا سرویس Bind را با دستور زیر حذف میکنیم:
yum remove bind
و مجدد با دستور زیر آن را نصب میکنیم:
yum install bind
به پوشه سرویس های دایرکت ادمین مراجعه میکنیم تا ببینیم مشکل پابرجاست یا خیر.
مشکل در سرویس named همچنان پابرجاست و سرویس named راه اندازی نشده است و در صورت کلیک بر روی استارت با پیغام خطا مواجه میشویم.
ارور /usr/bin/systemctl start named.service 2>&1
با توجه به مراحل انجام شده در صورتی که همچنان با سرویس named در دایرکت ادمین مشکل دارید و نمیتوانید آن را استارت کنید مراحل زیر را طی کنید:
1-ابتدا با دستور زیر برسی میکنیم که آیا پورت 53 سرور فعال است یا خیر.
netstat -lnp | grep named
خروجی: باید تمامیه سرویس هایی که به پورت 53 سرور شما گوش میکنند برای شما لیست شده باشد در غیر این صورت مشکلی وجود دارد.
2- در صورت وجود مشکل در مرحله اول دستور زیر را وارد میکنیم :
service iptables stop service iptables disable
3- سپس با دستورات زیر فایل تنظیمات named را ویرایش و اصلاح میکنیم.
cd /etc cp named.conf named.conf.BAK wget -O /etc/named.conf http://www.directadmin.com/named.conf for i in `cat /etc/virtual/domains`; do { echo "zone \"$i\" { type master; file \"/var/named/$i.db\"; };"; }; done; >> /etc/named.conf
4- سپس Bind را مجدد حذف و نصب میکنیم:
yum remove bind -y
و مجدد با دستور زیر آن را نصب میکنیم:
yum install bind -y
5- سپس فایل زیر را جایگزین میکنیم:
https://dl.famaserver.com/named.txt
#!/bin/sh NAMED_DIR=/var/named DA_USERS_DIR=/usr/local/directadmin/data/users NS1=`grep ns1= /usr/local/directadmin/conf/directadmin.conf | cut -d= -f2` NS2=`grep ns2= /usr/local/directadmin/conf/directadmin.conf | cut -d= -f2` for DA_USER in `ls ${DA_USERS_DIR}`; do { for DOMAIN in `cat ${DA_USERS_DIR}/${DA_USER}/domains.list; cat ${DA_USERS_DIR}/${DA_USER}/domains/*.pointers 2>/dev/null | cut -d= -f1;`; do { echo $DOMAIN rm ${NAMED_DIR}/${DOMAIN}.db if [ ! -r "${NAMED_DIR}/${DOMAIN}.db" ]; then IP=`cat ${DA_USERS_DIR}/${DA_USER}/domains/${DOMAIN}.conf | grep ip= | cut -d= -f2` echo "\$TTL 14400" > ${NAMED_DIR}/${DOMAIN}.db echo "@ IN SOA ${NS1}. hostmaster.${DOMAIN}. (" >> ${NAMED_DIR}/${DOMAIN}.db echo " 2010101901" >> ${NAMED_DIR}/${DOMAIN}.db echo " 14400" >> ${NAMED_DIR}/${DOMAIN}.db echo " 3600" >> ${NAMED_DIR}/${DOMAIN}.db echo " 1209600" >> ${NAMED_DIR}/${DOMAIN}.db echo " 86400 )" >> ${NAMED_DIR}/${DOMAIN}.db echo "" >> ${NAMED_DIR}/${DOMAIN}.db echo "${DOMAIN}. 14400 IN NS ${NS1}." >> ${NAMED_DIR}/${DOMAIN}.db echo "${DOMAIN}. 14400 IN NS ${NS2}." >> ${NAMED_DIR}/${DOMAIN}.db echo "" >> ${NAMED_DIR}/${DOMAIN}.db echo "${DOMAIN}. 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "ftp 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "localhost 14400 IN A 127.0.0.1" >> ${NAMED_DIR}/${DOMAIN}.db echo "mail 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "pop 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "smtp 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "www 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db echo "" >> ${NAMED_DIR}/${DOMAIN}.db echo "${DOMAIN}. 14400 IN MX 10 mail" >> ${NAMED_DIR}/${DOMAIN}.db echo "${DOMAIN}. 14400 IN TXT \"v=spf1 a mx ip4:${IP} ~all\"" >> ${NAMED_DIR}/${DOMAIN}.db echo "" >> ${NAMED_DIR}/${DOMAIN}.db for SUB in `cat ${DA_USERS_DIR}/${DA_USER}/domains/${DOMAIN}.subdomains`; do { echo "${SUB} 14400 IN A ${IP}" >> ${NAMED_DIR}/${DOMAIN}.db } done; chown bind:bind ${NAMED_DIR}/${DOMAIN}.db echo " - database created." fi } done; } done;
برای جایگزینی دستورات زیر را بترتیب وارد کنید:
cd /etc
سپس یک فایل به نام فاماسرور با پسوند .sh ایجاد کنید با دستور nano.
nano famaserver.sh
نکته: در صورتی که ویرایشگر nano در سرور نصب نیست با دستور
yum install nano -y
آن را نصب کنید و مجدد دستور مرحله قبلی را ایجاد کنید.
محتویات فایل مرحله 5(https://dl.famaserver.com/named.txt) را در ویرایشگر paste کنید.(با کلیک راست کردن )
سپس کلید Ctrl+x را زده و با کلید y تایید به ذخیره کنید.
و دستورات زیر را اجرا کنید:
chmod 755 famaserver.sh
sh famaserver.sh
بعد از اجرا این مراحل سرویس named مانند تصویر زیر بدرستی شروع به فعالیت میکند.
نکته: بعد از طی کردن مراحل ذکر شده تمامیه رکورد های DNS قبلی در دایرکت ادمین حذف میگردند , لذا به همین منظور از رکوردهای DNS بک آپ بگیرید و سپس مراحل را انجام دهید.
نتیجهگیری:
سرویس named به دلیل اهمیت بالایی که در مدیریت شبکه و DNS دارد، هر گونه مشکل در آن میتواند منجر به قطعیها و اختلالات بزرگ شود. مشکلاتی مانند پیکربندی نادرست، اختلالات نرمافزاری، یا مشکلات در دسترسی به فایلهای پیکربندی میتوانند باعث ایجاد اختلال در این سرویس شوند. با بررسی دقیق لاگها، اطمینان از درستی پیکربندی و اجرای مجدد سرویس، میتوان بسیاری از این مشکلات را حل کرد. مدیران سیستم باید با دقت به عیبیابی این سرویس بپردازند تا از وقوع مشکلات احتمالی در شبکه جلوگیری شود.
سرویس named چیست و چه وظیفهای دارد؟
سرویس named بخشی از سیستم DNS است که وظیفه تبدیل نامهای دامنه به آدرسهای IP را بر عهده دارد و برای مدیریت دامنهها و ارتباطات شبکه مورد استفاده قرار میگیرد.
چرا سرویس named گاهی با مشکل مواجه میشود؟
مشکلات در سرویس named ممکن است به دلیل پیکربندی نادرست، مشکلات نرمافزاری، یا عدم دسترسی به فایلهای مورد نیاز باشد.
چگونه میتوان مشکل سرویس named را برطرف کرد؟
برای رفع مشکل، ابتدا باید لاگهای مربوط به سرویس را بررسی کرد، سپس پیکربندی را بررسی و در صورت نیاز اصلاح کرد. در نهایت، سرویس را مجدداً راهاندازی کنید.
آیا مشکلات named میتواند بر کل شبکه تاثیر بگذارد؟
بله، سرویس named بخش کلیدی از DNS است و هر گونه اختلال در آن میتواند منجر به عدم دسترسی به دامنهها و اختلال در عملکرد شبکه شود.
چگونه میتوان از بروز مشکلات در named جلوگیری کرد؟
با بررسی دورهای لاگها، بهروزرسانی منظم نرمافزار و تنظیمات صحیح پیکربندی، میتوان از بروز بسیاری از مشکلات در سرویس named جلوگیری کرد.
directadmin – فاماسرور