---
title: نصب و راه اندازی Bind DNS Server اوبونتو
description: "DNS (سیستم نام دامنه) یک سرویس شبکه اساسی است که هر مدیر لینوکس و مهندس DevOps باید با آن آشنا باشد. DNS \"دفترچه تلفن اینترنت\" است که آدرس‌های IP را مانند 198.51.100.11FQDN (نام‌های دامنه کاملاً واجد شرایط) مانند ... حل می‌کند novinhost.org. مجموعه DNS BIND (دامنه نام اینترنتی برکلی) پیاده‌سازی سرور DNS بالفعل برای سیستم‌های *nix است. در نتیجه، درک نحوه استفاده از BIND DNS ابزاری ضروری در جعبه ابزار یک مدیر لینوکس است. BIND را می‌توان به عنوان یک سرور DNS عمومی (مبتنی بر اینترنت) یا خصوصی (درون یک شبکه داخلی) پیکربندی کرد."
url: "https://www.novinhost.org/docs/how-to-install-bind-dns-server-on-ubuntu/"
updated: "2025-11-09"
category: راهنمای لینوکس / اوبونتو
---

# نصب و راه اندازی Bind DNS Server اوبونتو

DNS (سیستم نام دامنه) یک سرویس شبکه اساسی است که هر مدیر لینوکس و مهندس DevOps باید با آن آشنا باشد. DNS "دفترچه تلفن اینترنت" است که آدرس‌های IP را مانند `198.51.100.11`FQDN (نام‌های دامنه کاملاً واجد شرایط) مانند ... حل می‌کند `novinhost.org`. مجموعه DNS BIND (دامنه نام اینترنتی برکلی) پیاده‌سازی سرور DNS بالفعل برای سیستم‌های *nix است. در نتیجه، درک نحوه استفاده از BIND DNS ابزاری ضروری در جعبه ابزار یک مدیر لینوکس است. BIND را می‌توان به عنوان یک سرور DNS عمومی (مبتنی بر اینترنت) یا خصوصی (درون یک شبکه داخلی) پیکربندی کرد. [سرور مجازی خارج](https://www.novinhost.org/vps/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%AE%D8%A7%D8%B1%D8%AC/)

برای کمک به شما در آشنایی با این مجموعه نرم‌افزاری محبوب DNS، این مقاله نحوه نصب و پیکربندی یک سرور خصوصی BIND DNS در اوبونتو ۲۲.۰۴ را توضیح می‌دهد.

## BIND DNS چیست؟

BIND یک مجموعه نرم‌افزاری متن‌باز، مقیاس‌پذیر و با امکانات کامل برای سرویس‌های DNS است. نام BIND از این واقعیت گرفته شده است که در ابتدا در دانشگاه کالیفرنیا برکلی توسعه داده شده است. امروزه، BIND توسط ISC (کنسرسیوم سیستم‌های اینترنتی) نگهداری می‌شود و می‌توانید نسخه‌های امضا شده BIND 9 را از [صفحه دانلود ISC](https://www.isc.org/download/) دانلود کنید .

پیاده‌سازی فعلی BIND 9. در حالی که پروژه BIND 10 وجود داشت، [ISC توسعه آن را در سال ۲۰۱۴ متوقف کرد](https://www.isc.org/blogs/isc-concludes-bind-10-development-with-release-1-2-project-renamed-bundy/) . امروزه، پروژه BIND 10 به [پروژه سرور DNS Bundy تبدیل شده است که در حال حاضر در حالت غیرفعال قرار دارد](https://github.com/bundy-dns/bundy) .

اکثر [سرورهای DNS در اینترنت از BIND 9 استفاده می‌کنند](https://www.serverwatch.com/server-news/bind-dns-holds-lead/) و این یک جزء اصلی در محیط‌های *nix است. برای مدیران لینوکس، BIND 9 یک راه‌حل DNS قوی برای موارد استفاده متعدد است و شامل پشتیبانی از TSIG (امضای تراکنش)، DNSSEC و IPv6 می‌شود .

## نحوه نصب و پیکربندی سرور DNS خصوصی BIND در اوبونتو ۲۲.۰۴

حالا بیایید به پیکربندی یک سرور DNS خصوصی BIND در اوبونتو ۲۲.۰۴ بپردازیم. برای مثال، ما یک سرور DNS و دو کلاینت را پیکربندی خواهیم کرد.

برای مثال‌هایمان، فرض می‌کنیم:

- زیرشبکه LAN ما ۱۹۲.۰.۲.۰/۲۴ است
- آدرس IP سرور DNS ما `bindserver`۱۹۲.۰.۲.۲ است.
- آدرس IP اولین کلاینت ما `client1`۱۹۲.۰.۲.۳ است.
- آدرس IP کلاینت دوم ما `client2`۱۹۲.۰.۲.۴ است.
- دامنه ما`novinhost.example`

مقادیر مثال ما را تغییر دهید تا با مقادیر محیط آزمایش شما مطابقت داشته باشد.

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

### پیش‌ نیازها

قبل از شروع، به موارد زیر نیاز دارید:

- دسترسی به ترمینال سه سیستم لینوکس در یک شبکه محلی (LAN) که می‌توانید برای آزمایش از آنها استفاده کنید. ما از اوبونتو ۲۲.۰۴ LTS استفاده خواهیم کرد .
- امتیازات روت/sudo

### آخرین به‌روزرسانی‌ها را نصب کنید

`apt update`قبل از نصب هر بسته‌ای، ابتدا آخرین به‌روزرسانی‌ها را با استفاده از دستورات and روی هر سه سیستم دانلود و نصب خواهیم کرد `apt upgrade`:

```bash
apt update -y && apt upgrade -y
```

توجه داشته باشید که این `&&`تضمین می‌کند که `apt upgrade`فقط در صورت `apt update`موفقیت‌آمیز بودن اجرا می‌شود.

### نصب BIND 9 روی سرور DNS

در مرحله بعد، ما قصد داریم سه بسته را روی سرور DNS خود نصب کنیم:

- `bind9`- نرم‌افزار سرور DNS بایند ۹.
- `bind9utils`- ابزارهایی که کار با BIND 9 را آسان‌تر می‌کنند.
- `bind9-doc`- یک بسته مستندات برای BIND 9.

برای نصب آن بسته‌ها، از این دستور استفاده کنید:

```bash
apt install bind9 bind9utils bind9-doc -y
```

پس از نصب، سرویس BIND 9 باید در حال اجرا باشد. می‌توانید وضعیت را با این دستور بررسی کنید:

```bash
systemctl status bind9
```

شما باید خروجی مشابه زیر را ببینید:

![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/01-1-3.png)
نصب و راه اندازی Bind DNS Server اوبونتو

### فایل named.conf.options را ویرایش کنید

این `named.conf`فایل، فایل پیکربندی اصلی BIND 9 است. این فایل اصلی شامل مرجعی است `/etc/bind/named.conf.options`که می‌توانیم گزینه‌های مورد نیاز برای پیکربندی خود را در آن مشخص کنیم. ما چهار تغییر در این `/etc/bind/named.conf.options`فایل ایجاد خواهیم کرد:

- یک `acl`دستورالعمل که شبکه محلی (LAN) ما را تعریف می‌کند.
- دستورالعملی `allow-query`که مشخص می‌کند کدام آدرس‌های IP می‌توانند درخواست‌های DNS را به سرور ارسال کنند.
- دستورالعملی `forwarders`که تعریف می‌کند این سرور، کوئری‌های بازگشتی را به کدام سرورهای DNS ارسال کند.
- دستورالعملی `recursion`که امکان پرس‌وجوهای بازگشتی DNS به سرور را فراهم می‌کند.

برای ایجاد این تغییرات، فایل‌ها را `/etc/bind/named.conf.options`در یک ویرایشگر متن (مثلاً `nano`یا ) باز کنید و آن‌ها را طوری تغییر دهید که شبیه به این باشند:`vim`

```bash
// allow only LAN traffic from 192.168.2.0-192.168.2.255
acl LAN {
192.168.2.0/24;
};
options {
        directory "/var/cache/bind"; // default directory
        allow-query { localhost; LAN; }; // allow queries from localhost and 192.168.2.0-192.168.2.255
        forwarders { 1.1.1.1; }; // use CloudFlare 1.1.1.1 DNS as a forwarder
        recursion yes;  // allow recursive queries
};
```

پس از اعمال تغییرات، با استفاده از دستور زیر، سینتکس فایل را بررسی کنید `named-checkconf`:

```bash
named-checkconf /etc/bind/named.conf.options
```

اگر سینتکس (نحوه نگارش) درست باشد، دستور نباید هیچ خروجی مانند این را برگرداند:![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/02-1-2.png)

اگر می‌خواهید خروجی مفصل‌تری را در یک تست موفق ببینید، `-p`سوئیچ را به دستور ( `named-checkconf -p`) اضافه کنید.

### فایل named.conf.local را ویرایش کنید.

این `named.conf.local`معمولاً برای تعریف مناطق DNS محلی برای یک دامنه خصوصی استفاده می‌شود. ما این فایل را به‌روزرسانی خواهیم کرد تا مناطق DNS رو به جلو و معکوس ما را نیز شامل شود.

برای ایجاد تغییرات، آن را `/etc/bind/named.conf.local`در یک ویرایشگر متن (مثلاً `nano`یا `vim`) باز کنید و این خطوط را اضافه کنید:

```yaml
zone "novin.example" IN { \ define the forward zone
        type master;
        file "/etc/bind/zones/novin.example";
};
zone "0.116.10.in-addr.arpa" IN { \ define the reverse zone
        type master;
        file "/etc/bind/zones/novin.example.rev";
};
```

پس از اعمال تغییرات، با استفاده از دستور زیر، سینتکس فایل را بررسی کنید `named-checkconf`:

```bash
named-checkconf /etc/bind/named.conf.options
```

### یک دایرکتوری برای فایل‌های منطقه خود ایجاد کنید

در مرحله بعد، یک دایرکتوری برای ذخیره فایل‌های منطقه‌ای که در مرحله قبل مشخص کردیم، ایجاد خواهیم کرد.

```bash
mkdir /etc/bind/zones
```

### فایل منطقه فوروارد را ایجاد کنید

حالا، یک فایل منطقه مربوطه ایجاد می‌کنیم `/etc/bind/zones/novin.example`. فایل منطقه رو به جلو به سرور DNS Bind اجازه می‌دهد تا نام‌ها (مانند `bindserver.novin.example`) را به آدرس‌های IP (مانند `192.168.2.2`) تبدیل کند.

ابتدا، فایل پیش‌فرض db.local zone را در مسیر زیر کپی کنید `/etc/bind/zones/novin.example`:

```bash
cp /etc/bind/db.local /etc/bind/zones/novin.example
```

`/etc/bind/zones/novin.example`در یک ویرایشگر متن (مثلاً `nano`یا ) باز کنید `vim`و تغییرات ذکر شده در نظرات زیر را اعمال کنید:

```bash
$TTL    604800
; SOA record with MNAME and RNAME updated
@       IN      SOA     novin.example. root.novin.example. (
                              3         ; Serial Note: increment after each change
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
; Name server record 
@       IN      NS      bindserver.novin.example.
; A record for name server
bindserver      IN      A       192.168.2.2
; A record for clients
client1      IN      A       192.168.2.3
client2      IN      A       192.168.2.4
```

پس از اتمام تغییرات، از `named-checkzone`دستور زیر برای بررسی پیکربندی استفاده کنید:

```bash
named-checkzone novin.example /etc/bind/zones/novin.example
```

شما باید خروجی مشابه زیر را ببینید:

![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/03-1-3.png)

### ایجاد فایل زون معکوس

اکنون، یک فایل زون معکوس مربوطه ایجاد خواهیم کرد `/etc/bind/zones/novin.example.rev`. فایل زون معکوس به سرور DNS Bind اجازه می‌دهد تا آدرس‌های IP (مانند `192.168.2.2`) را به نام‌ها (مانند `bindserver.novin.example`) تبدیل کند.

ابتدا، فایل پیش‌فرض db.local zone را کپی کنید.`/etc/bind/zones/novin.example.rev`

```bash
cp /etc/bind/db.127 /etc/bind/zones/novin.example.rev
```

`/etc/bind/zones/novin.example.rev`در یک ویرایشگر متن (مثلاً `nano`یا ) باز کنید `vim`و تغییرات ذکر شده در نظرات زیر را اعمال کنید:

```bash
$TTL    604800
; SOA record with MNAME and RNAME updated
@       IN      SOA     novin.example. root.novin.example. (
                              2         ; Serial Note: increment after each change
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
; Name server record 
@       IN      NS      bindserver.novin.example.
; A record for name server
bindserver      IN      A       10.116.0.2
; PTR record for name server
2   IN      PTR     bindserver.novin.example
; PTR record for clients
3   IN      PTR     client1.novin.example
4   IN      PTR     client2.novin.example
```

پس از اتمام تغییرات، از `named-checkzone`دستور زیر برای بررسی پیکربندی استفاده کنید:

```bash
named-checkzone novin.example /etc/bind/zones/novin.example.rev
```

شما باید خروجی مشابه زیر را ببینید:

![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/04-1-2.png)

### بایند ۹ را مجدداً راه‌اندازی کنید

برای اینکه سرور DNS BIND از پیکربندی جدید استفاده کند، سرویس BIND 9 را با این دستور مجدداً راه‌اندازی کنید:

🇦🇪 [سرور مجازی امارات](https://www.novinhost.org/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%A7%D9%85%D8%A7%D8%B1%D8%A7%D8%AA/) 🇦🇪

```bash
systemctl restart bind9
```

### پیکربندی کلاینت‌ها برای استفاده از پیکربندی

پس از پیکربندی سرور DNS خصوصی Bind، می‌توانیم کلاینت‌ها را برای استفاده از آن پیکربندی کنیم. این مراحل را برای هر دو دنبال `client1`کنید `client2`.

ابتدا، با استفاده از این دستور بررسی کنید که از کدام رابط برای اتصال LAN استفاده می‌شود:

```bash
ip -brief addr show to 192.168.2.0/24
```

رابطی که ما نیاز داریم اولین مقداری خواهد بود که نمایش داده می‌شود. برای مثال، `eth1`در خروجی زیر:

```bash
eth1             UP             10.116.2.0/24
```

در مرحله بعد، از یک ویرایشگر متن (مثلاً `nano`یا `vi`) برای ویرایش `netplan`فایل YAML خود استفاده کنید تا پیکربندی DNS که به سرور DNS خصوصی Bind اشاره می‌کند را در آن بگنجانید. معمولاً `netplan`فایل‌های پیکربندی در مسیر . ذخیره می‌شوند `/etc/netplan`. در صورت تمایل می‌توانید یک فایل پیکربندی جدید نیز ایجاد کنید.

YAML باید شبیه به این باشد:

```yaml
        eth1:
            addresses:
            - 192.168.0.3/24 # The IP address of client1
            match:
                macaddress: 00:53:00:AB:CD:EF
            mtu: 1500
            dhcp4-overrides:
              use-dns: no # override DHCP supplied DNS if applicable
            nameservers:
                addresses:
                - 192.168.2.2 # IP for name server
                search: [ novin.example ] # The private DNS zone
            set-name: eth1
```

در اینجا مثالی از یک `netplan`فایل YAML کامل برای یک کلاینت اوبونتو با دو رابط شبکه مشخص شده ( `eth0`و `eth1`) آورده شده است:

![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/05-1-3.png)
 پس از اتمام پیکربندی، آن را با این دستور آزمایش کنید:

```bash
netplan try
```

`ENTER`برای پذیرش تغییرات، کلید زیر را فشار دهید :

![نصب و راه اندازی Bind DNS Server اوبونتو](https://www.novinhost.org/wp-content/uploads/2025/11/06-1-3.png)
 برای جزئیات بیشتر در مورد نحوه استفاده ، [مستندات را](https://translate.google.com/website?sl=en&tl=fa&hl=en&client=webapp&u=https://netplan.io/reference)`netplan` بررسی کنید .

### پیکربندی کلاینت را آزمایش کنید

پس از اتمام پیکربندی، `client1`برای تبدیل نام در شبکه محلی (LAN) `client2`استفاده خواهد شد .`bindserver`

برای تأیید صحت عملکرد پیکربندی، از `nslookup`دستور زیر برای جستجوی نام دامنه‌های ما در ... `client1`و ... استفاده کنید `client2`. هر 6 دستور زیر:

- `nslookup client1`
- `nslookup client2`
- `nslookup bindserver`
- `nslookup client1.novin.example`
- `nslookup client2.novin.example`
- `nslookup bindserver.novin.example`

باید به درستی حل شود و خروجی مشابه زیر را ارائه دهد:

```bash
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   client1.novin.example
Address: 192.168.2.3
```

علاوه بر این، اکنون می‌توانید از نام‌ها (مانند `client1`) و FQDNها (مانند `client1.novin.example`) برای ارتباط بین کلاینت‌ها استفاده کنید. برای مثال، اگر هر دو کلاینت به پاسخ دهند `ping`، می‌توانید از نام یا FQDN آنها برای بررسی اتصال استفاده کنید.

## نتیجه‌ گیری

همین! حالا شما اصول اولیه نحوه کار با BIND 9 در اوبونتو ۲۲.۰۴ را می‌دانید. برای آشنایی عمیق‌تر با مجموعه نرم‌افزاری BIND DNS، توصیه می‌کنیم راهنمای مرجع BIND 9 Administrator را مطالعه کنید.
