# Vagrantfile案例 - Debian10 搭建 DNS 服务

时间:2023-01-30 20:06:15

一、我的环境

1、Windows 11 2、Vagrant 2.3.4 3、VirtualBox 7.0

Vagrant 和 VirtualBox 的使用这里就不再做介绍了。本文主要是我搭建DNS服务的经验总结。

二、操作步骤

1、打开"CMD"终端,执行mkdir debian_dns命令新建文件夹,执行cd debian_dns切换目录。 2、创建Vagrantfile文件,文件内容如下:

# -*- mode: ruby -*-
# vi: set ft=ruby :
# 2023-1-28

Vagrant.configure("2") do |config|
  config.vm.box = "debian_buster"
  config.vm.synced_folder ".", "/vagrant",create: true
  config.vm.define "dns",primary: true do |va|
    va.vm.hostname = "dns"
    va.vm.network "private_network", ip: "192.168.56.28"
    va.vm.provider "virtualbox" do |vb|
      vb.name = "test_debian_dns"
      vb.memory = "512"
      vb.cpus = "1"
      #vb.gui = true
    end
  end
  config.vm.provision "shell", path: "dns.sh"
end

3、创建dns.sh文件,文件内容如下:

# 2023-1-30
# 适用Debian11

# 更换为国内源
echo "deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free" > /etc/apt/sources.list

# 安装bind9
apt update && apt install -y bind9 dnsutils

# 更改语言环境为CN
localectl set-locale LANG="zh_CN.UTF-8"
echo "LANGUAGE=zh_CN.UTF-8" >> /etc/default/locale
echo "LC_ALL=zh_CN.UTF-8" >> /etc/default/locale

# 更改系统时区及时间
timedatectl set-timezone Asia/Shanghai
hwclock -w

# 完成安装bind9后执行的操作
cp -i /vagrant/db.ling218.cn /etc/bind/db.ling218.cn
cp -i /vagrant/db.56.168.192 /etc/bind/db.56.168.192

# 指向正向配置文件
echo -e '''
zone "ling218.cn" {
    type master;
    file "/etc/bind/db.ling218.cn";
};
''' >> /etc/bind/named.conf.default-zones

# 指向反向配置文件
echo -e '''
zone "56.168.192.in-addr.arap" {
    type master;
    file "/etc/bind/db.56.168.192";
};
''' >> /etc/bind/named.conf.default-zones

# 更改文件权限
chmod 644 /etc/bind/db.ling218.cn
chmod 644 /etc/bind/db.56.168.192
# 更改文件所属
chown root:root /etc/bind/db.ling218.cn
chown root:root /etc/bind/db.56.168.192
# 重启服务并设置开机启动
systemctl restart bind9
systemctl enable bind9

4、创建正向解析文件,文件内容如下: 该文件为Debian系统/etc/bind/db.local复制更改。

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	ling218.cn. root.ling218.cn. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.ling218.cn.
ns	IN	A	192.168.56.28
www	IN	A	192.168.56.7

5、创建反向解析文件,文件内容如下: 该文件为Debian系统/etc/bind/db.127复制更改。

;
; BIND reverse data file for local loopback interface
;
$TTL	604800
@	IN	SOA	ling218.cn. root.ling218.cn. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.ling218.cn.
28	IN	PTR	ns.ling218.cn.
7	IN	PTR	www.ling218.cn.