| RESOLVCONF.CONF(5) | File Formats Manual | RESOLVCONF.CONF(5) |
توضیحات (DESCRIPTION)
پرونده
پیکربندی
برای
resolvconf(8)
است. پرونده
یک
اسکریپت شل
است که توسط
resolvconf(8)
منبعدهی (source)
میشود، به
این معنی که
باید
حاوی
دستورات
معتبر شل
باشد. در زیر
متغیرهای
استاندارد
که
میتوانند
مقداردهی
شوند فهرست
شدهاند.
اگر مقادیر
حاوی
فاصله،
نویسههای
عام (wildcards) یا
سایر
نویسههای
ویژه شل
هستند،
اطمینان
حاصل کنید
که به درستی
درون
نقلقول
قرار گرفته
و گریز داده
شدهاند (escaped).
برای
مشاهده
مثالی از
نقلقول به
متغیر replace
مراجعه
کنید.
پس از
بهروزرسانی
این
پرونده،
ممکن است
بخواهید
resolvconf -u را
برای اعمال
پیکربندی
جدید اجرا
کنید.
هنگامی که به یک فهرست تولیدشده به صورت پویا مقداری افزوده (append) یا پیشافزوده (prepend) میشود، کل فهرست به گونهای یکتا میشود که اولویت با سمتچپترین ورودی است.
گزینههای RESOLVCONF (RESOLVCONF OPTIONS)
- resolvconf
- برای
غیرفعال
کردن اجرای
هرگونه
مشترک توسط
resolvconfروی NO تنظیم کنید. پیشفرض YES است. - allow_keys
- در صورت تنظیم، تنها این کلیدها پردازش خواهند شد.
- deny_keys
- در صورت تنظیم، این کلیدها پردازش نخواهند شد.
- exclude
- فهرستی از
جفتهای
کلید/مقدار
جدا شده با
فاصله برای
تطابق است.
اگر تمام
جفتهای
کلید/مقدار
در یک عنصر
درون
پرونده
یافت شوند،
کل پرونده
از پردازش
حذف خواهد
شد. نحو به
این صورت
است:
$keyword/$match[/$keyword/$match]
برای نمونه با فرض این پیکربندی:
exclude="search/foo*/nameserver/1.2.3.4 search/bar.org"
هر resolv.conf که هم دارای گزینه search شروعشونده با foo به همراه nameserver برابر با 1.2.3.4 باشد یا گزینه search برابر با bar.org داشته باشد، از پردازش کنار گذاشته میشود.
- key_order
- این کلیدها
همیشه در
ابتدا
پردازش
خواهند شد.
در صورت عدم
تنظیم، به
طور
پیشفرض
مقادیر زیر
است:
lo lo[0-9]*
- dynamic_order
- این کلیدها
در مرحله
بعد پردازش
خواهند شد،
مگر اینکه
دارای یک
متریک (metric)
باشند. در
صورت عدم
تنظیم، به
طور
پیشفرض
مقادیر زیر
است:
tap[0-9]* tun[0-9]* vpn vpn[0-9]* wg[0-9]* ppp[0-9]* ippp[0-9]*
- inclusive_keys
- هرگونه
علامتگذاری
انحصاری (exclusive)
برای این
کلیدها
نادیده
گرفته
میشود. این
گزینه
زمانی
کاربرد
دارد که
ابزارهای
یکپارچهسازی
شخص ثالث
گزینه
resolvconf -xرا تحمیل میکنند و شما میخواهید آن را به آسانی غیرفعال کنید. - local_nameservers
- در صورت عدم
تنظیم، به
طور
پیشفرض
مقادیر زیر
است:
127.* 0.0.0.0 255.255.255.255 ::1
- search_domains
- دامنههای جستجو را به ابتدای فهرست پویای تولیدشده اضافه میکند (prepend).
- search_domains_append
- دامنههای جستجو را به انتهای فهرست پویای تولیدشده اضافه میکند (append).
- domain_blacklist
- فهرستی از دامنهها که باید از محاسبات حذف شوند. برای حذف یک دامنه، میتوانید از foo.* استفاده کنید. برای حذف یک زیردامنه، میتوانید از *.bar استفاده کنید.
- name_servers
- سرورهای نام (name servers) را به ابتدای فهرست پویای تولیدشده اضافه میکند (prepend). اگر از سرور نام محلی غیر از libc استفاده میکنید، باید این متغیر را روی 127.0.0.1 تنظیم کنید.
- name_servers_append
- سرورهای نام را به انتهای فهرست پویای تولیدشده اضافه میکند (append).
- name_server_blacklist
- فهرستی از سرورهای نام که باید از محاسبات حذف شوند. مقدار پیشفرض 0.0.0.0 است، زیرا برخی روترهای معیوب آن را از طریق DHCP ارسال میکنند. برای حذف یک بلوک، میتوانید از 192.168.* استفاده کنید.
- private_keys
- از سرورهای
نام مربوط
به این
کلیدها فقط
برای
دامنههای
فهرستشده
در resolv.conf
خودشان
پرسوجو
میشود.
برای
دامنههای
VPN مفید است.
تنظیم
private_keys="*"
هدایت
ناحیه ریشه
(root zone forwarding) را
متوقف
میکند و به
تحلیلگر
محلی اجازه
میدهد
مستقیماً و
به صورت
بازگشتی (recursively)
از سرورهای
ریشه
پرسوجو
کند.
نیازمند یک
سرور نام
محلی به جز libc
است. این
متغیر
معادل
گزینه
resolvconf -pاست. - nosearch_keys
- دامنهها/جستجوی این کلیدها به فهرست جستجوی سراسری در /etc/resolv.conf اضافه نخواهد شد.
- public_keys
- این کلیدها
را مجبور به
عمومی بودن
میکند و
علامتگذاریهای
private و nosearch را
نادیده
میگیرد.
این گزینه
زمانی مفید
است که
یکپارچهسازیهای
شخص ثالث
گزینه
resolvconf -pرا تحمیل میکنند و شما میخواهید آن را به راحتی غیرفعال کنید. - replace
- فهرستی از
کلمات
کلیدی
جایگزینی
جدا شده با
فاصله است.
نحو به این
صورت است:
$keyword/$match/$replacement
برای نمونه، با فرض این resolv.conf:
domain foo.org search foo.org dead.beef nameserver 1.2.3.4 nameserver 2.3.4.5
و این پیکربندی:
replace="search/foo*/bar.com" replace="$replace nameserver/1.2.3.4/5.6.7.8" replace="$replace nameserver/2.3.4.5/"
در عوض چنین resolv.conf دریافت خواهید کرد:
domain foo.org search bar.com nameserver 5.6.7.8
- replace_sub
- همانند replace
عمل میکند
با این
تفاوت که به
جای کل خط،
روی هر
مقدار جدا
شده با
فاصله
اعمال
میشود،
بنابراین
برای
جایگزینی
یک
تکدامنه
در
دستورالعمل
search مفید است.
با استفاده
از همان resolv.conf
نمونه و
تغییر replace
به replace_sub ، در
عوض چنین resolv.conf
دریافت
خواهید کرد:
domain foo.org search bar.com dead.beef nameserver 5.6.7.8
- state_dir
- پوشه وضعیت
پیشفرض
/run/resolvconf را
بازنویسی
میکند. پس
از اینکه
resolvconfمورد استفاده قرار گرفت، نباید تغییر داده شود مگر اینکه پوشه قدیمی به پوشه جدید کپی شود.
گزینههای LIBC (LIBC OPTIONS)
متغیرهای زیر مستقیماً بر resolv.conf(5) اثر میگذارند:
- resolv_conf
- در صورت عدم تنظیم، به طور پیشفرض /etc/resolv.conf است. تنظیم آن روی /dev/null از تغییر آن توسط resolvconf(8) جلوگیری میکند.
- resolv_conf_options
- فهرستی از گزینههای تحلیلگر libc، مطابق با آنچه در resolv.conf(5) مشخص شده است.
- resolv_conf_passthrough
- هنگامی که
روی YES تنظیم
شود، آخرین
resolv.conf بدون
هیچگونه
تغییری در
resolv_conf نوشته
میشود.
هنگامی که
روی /dev/null یا NULL
تنظیم شود،
مقدار
پیشفرض
resolv_conf_local_only
برابر با NO
میشود،
local_nameservers
تنظیمنشده
باقی
میماند
مگر
بازنویسی
شود و تنها
اطلاعات
تنظیمشده
در
resolvconf -uدر resolv_conf نوشته میشود. - resolv_conf_restore
- هنگامی که روی YES تنظیم شود و قرار باشد یک resolv.conf خالی نوشته شود، در صورتی که resolv.conf.bak وجود داشته باشد، به جای آن بازیابی میشود. در صورت عدم تنظیم، به طور پیشفرض YES است.
- resolv_conf_sortlist
- یک sortlist تحلیلگر libc، مطابق با آنچه در resolv.conf(5) مشخص شده است.
- resolv_conf_local_only
- اگر یک سرور نام محلی پیکربندی شده باشد، رفتار پیشفرض این است که تنها همان سرور نام مشخص شود و تمام ورودیهای دیگر نادیده گرفته شوند، چرا که برای سرور نام محلی پیکربندی خواهند شد. برای فهرست کردن سرورهای نام غیرمحلی نیز این متغیر را روی NO تنظیم کنید. این کار در صورت از کار افتادن سرور نام محلی به بهای تکرار پرسوجوهای سرور، یک DNS فعال در اختیار شما قرار میدهد.
- append_nameservers
- سرورهای نام را به انتهای فهرست تولیدشده به صورت پویا اضافه میکند (append).
- prepend_nameservers
- سرورهای نام را به ابتدای فهرست تولیدشده به صورت پویا اضافه میکند (prepend).
- append_search
- دامنههای جستجو را به انتهای فهرست تولیدشده به صورت پویا اضافه میکند (append).
- prepend_search
- دامنههای جستجو را به ابتدای فهرست تولیدشده به صورت پویا اضافه میکند (prepend).
- resolv_conf_mv
- پیشفرض NO است. مشخص میکند که آیا /etc/resolv.conf با نوشتن در یک پرونده موقت و سپس انتقال آن بهروزرسانی شود، یا اینکه مستقیماً در آن نوشته شود.
گزینههای مشترکین (SUBSCRIBER OPTIONS)
openresolv به همراه مشترکینی برای سرورهای نام زیر عرضه میشود: dnsmasq(8) ، named(8) ، pdnsd(8) ، pdns_recursor(1) و unbound(8). هر مشترک میتواند پروندههای پیکربندی ایجاد کند که باید در پرونده پیکربندی اصلی آن مشترک گنجانده شوند (include).
برای غیرفعال کردن یک مشترک، کافی است نام آن را روی NO تنظیم کنید. اگر نام مشترک دارای خط پیوند (dash) است، آن را با زیرخط (underscore) جایگزین کنید. برای نمونه، جهت غیرفعال کردن مشترک libc باید تنظیم کنید:
libc=NO
- dnsmasq_conf
- این پرونده به dnsmasq اعلام میکند که برای دامنههای خاص از کدام سرورهای نام استفاده کند.
- dnsmasq_resolv
- این پرونده
به dnsmasq اعلام
میکند که
برای
جستجوهای
سراسری از
کدام
سرورهای
نام
استفاده
کند.
نمونه resolvconf.conf برای dnsmasq:
name_servers=127.0.0.1 dnsmasq_conf=/etc/dnsmasq-conf.conf dnsmasq_resolv=/etc/dnsmasq-resolv.conf
نمونه dnsmasq.conf:
listen-address=127.0.0.1 # If dnsmasq is compiled for DBus then we can take # advantage of not having to restart dnsmasq. enable-dbus conf-file=/etc/dnsmasq-conf.conf resolv-file=/etc/dnsmasq-resolv.conf
- named_options
- این پرونده را در بلوک options برنامه named بگنجانید (include). این پرونده به named اعلام میکند که برای جستجوهای سراسری از کدام سرورهای نام استفاده کند.
- named_zones
- این پرونده
را در دامنه
سراسری (global scope)
برنامه named،
پس از بلوک options
بگنجانید.
این پرونده
به named اعلام
میکند که
برای
دامنههای
خاص از کدام
سرورهای
نام
استفاده
کند.
نمونه resolvconf.conf برای named:
name_servers=127.0.0.1 named_options=/etc/named-options.conf named_zones=/etc/named-zones.conf
نمونه named.conf:
options { listen-on { 127.0.0.1; }; include "/etc/named-options.conf"; }; include "/etc/named-zones.conf"; - pdnsd_conf
- این پرونده پیکربندی اصلی pdnsd است که ما برای اضافه کردن دامنههای هدایتی (forward domains) خود آن را اصلاح میکنیم. اگر این متغیر تنظیم نشود، به راهاندازی پرونده پیکربندی pdnsd تکیه میکنیم تا pdnsd_resolv را همانگونه که در زیر شرح داده شده بخواند.
- pdnsd_resolv
- این پرونده
سرورهای
نام سراسری
را به pdnsd
معرفی
میکند. اگر
این متغیر
تنظیم
نشود، در
pdnsd_conf
نوشته
میشود.
نمونه resolvconf.conf برای pdnsd:
name_servers=127.0.0.1 pdnsd_conf=/etc/pdnsd.conf # pdnsd_resolv=/etc/pdnsd-resolv.conf
نمونه pdnsd.conf:
global { server_ip = 127.0.0.1; status_ctl = on; } server { # A server definition is required, even if empty. label="empty"; proxy_only=on; # file="/etc/pdnsd-resolv.conf"; } - pdns_zones
- این پرونده
سرورهای
نام خاص و
سراسری را
به pdns_recursor معرفی
میکند.
نمونه resolvconf.conf برای pdns_recursor:
name_servers=127.0.0.1 pdns_zones=/etc/pdns/recursor-zones.conf
نمونه recursor.conf:
allow-from=127.0.0.0/8, ::1/128 forward-zones-file=/etc/pdns/recursor-zones.conf
- resolvectl
- هنگامی که
روی YES تنظیم
شود، از
resolvectl(1)
برای نوشتن
ورودیهای
هر رابط از
resolvconf(8)
در
systemd-resolved(8)
استفاده
خواهد شد.
برای هر
ورودی که
نتوان آن را
با یک رابط
تطبیق داد،
یک هشدار
صادر
میشود.
این مشترک تنها باید زمانی استفاده شود که systemd-resolved شما از DNS delegates پشتیبانی نمیکند و به ورودیهای خصوصی (private) یا غیرقابلجستجوی resolvconf(8) نیاز دارید، یا واقعاً متعهد به دیدن تنظیمات DNS به ازای هر رابط از طریق resolvectl(1) هستید. مشترک systemd-resolved که در زیر مستند شده است، گزینه بهتری محسوب میشود.
نمونه resolvconf.conf برای resolvectl:
# Keep /etc/resolv.conf as systemd-resolved wants it libc=NO resolvectl=YES
- systemd_resolved
- هنگامی که روی YES تنظیم شود، DNS سراسری در پرونده پیکربندی systemd_resolved_conf نوشته میشود و DNS delegates در پوشه systemd_delegate_dir نوشته خواهد شد.
- systemd_resolved_conf
- پیشفرض /run/systemd/resolved.conf.d/60-resolvconf.conf است.
- systemd_delegate_dir
- پیشفرض
/run/systemd/dns-delegate.d
است.
نمونه resolvconf.conf برای systemd-resolved:
# Keep /etc/resolv.conf as systemd-resolved wants it libc=NO systemd_resolved=YES
- unbound_conf
- این پرونده سرورهای نام خاص و سراسری را به unbound معرفی میکند.
- unbound_insecure
- هنگامی که روی YES تنظیم شود، unbound دامنهها را به عنوان ناامن (insecure) علامتگذاری میکند و در نتیجه DNSSEC نادیده گرفته میشود.
- unbound_private
- هنگامی که روی YES تنظیم شود، unbound دامنهها را به عنوان خصوصی (private) علامتگذاری میکند و به آن و زیردامنههایش اجازه میدهد حاوی آدرسهای خصوصی باشند.
- unbound_forward_zone_options
- گزینههایی
که به هر forward zone
اضافه
میشوند. هر
گزینه باید
با یک خط
جدید
درجشده (newline)
جدا شود.
نمونه resolvconf.conf برای unbound:
name_servers=127.0.0.1 unbound_conf=/etc/unbound-resolvconf.conf
نمونه unbound.conf:
include: /etc/unbound-resolvconf.conf
یکپارچهسازی مشترکین (SUBSCRIBER INTEGRATION)
همه توزیعها پروندههای مورد نیاز مشترکین را در مکانهای یکسانی ذخیره نمیکنند. برای نمونه، اسکریپتهای سرویس named با نامهای named، bind و rc.bind نامگذاری شدهاند و ممکن است در دایرکتوری به نام /etc/rc.d، /etc/init.d یا موارد مشابه قرار داشته باشند. هر مشترک تلاش میکند تا خود را به طور خودکار پیکربندی کند، اما همه توزیعها در نظر گرفته نشدهاند. همچنین، کاربران ممکن است بخواهند از نسخهای متفاوت از نسخه نصبشده به طور پیشفرض استفاده کنند، مانند bind8 و bind9. برای سازگاری با این شرایط، مشترکین این پروندهها را در متغیرهای قابلپیکربندی قرار دادهاند که در ادامه مستند شدهاند.
- dnsmasq_service
- نام سرویس dnsmasq.
- dnsmasq_restart
- دستور راهاندازی مجدد سرویس dnsmasq.
- dnsmasq_pid
- محل پرونده pid سرویس dnsmasq.
- libc_service
- نام سرویس libc.
- libc_restart
- دستور راهاندازی مجدد سرویس libc.
- named_service
- نام سرویس named.
- named_restart
- دستور راهاندازی مجدد سرویس named.
- pdnsd_restart
- دستور راهاندازی مجدد سرویس pdnsd.
- pdns_service
- دستور راهاندازی مجدد سرویس pdns_recursor.
- pdns_restart
- دستور راهاندازی مجدد سرویس pdns_recursor.
- unbound_service
- نام سرویس unbound.
- unbound_restart
- دستور راهاندازی مجدد سرویس unbound.
- unbound_pid
- محل پرونده pid سرویس unbound.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Roy Marples <roy@marples.name>
اشکالات (BUGS)
هر توزیع ویژگیهای منحصربهفرد خود را دارد و ترجیح میدهد موارد یکسان را به صورت متفاوت نامگذاری کند، به ویژه اسکریپت سرویس named.
جابجایی بین مشترکین resolvectl و systemd-resolved در زمان اجرا پشتیبانی نمیشود. پروندههای ارجاعشده توسط systemd_resolved_conf و systemd_delegate_dir باید به صورت دستی حذف شوند. راهاندازی مجدد سیستم (reboot) توصیه میشود تا دادههای کهنه پاک شوند. اگرچه میتوانید هر دوی آنها را به طور همزمان اجرا کنید، اما استفاده از تنها یکی از آنها روش پیشنهادی است.
لطفاً اشکالات را به https://roy.marples.name/projects/openresolv گزارش دهید.
| May 15, 2025 | Linux 6.12.107+deb13-amd64 |