在 Debian 上,DHCP 客户端通常会自动从 DHCP 服务器获取 DNS 配置;如果你想“让 DHCP 和 DNS 联动”(比如DHCP 分配 IP 并自动注册 DNS 记录),常见有几种场景。下面分情况说明。
dhclient(传统方式)编辑网卡配置(以 eth0 为例):
sudo nano /etc/network/interfaces
示例:
auto eth0
iface eth0 inet dhcp
重启网络:
sudo systemctl restart networking
DHCP 下发的 DNS 会自动写入:
/etc/resolv.conf
systemd-networkd(服务器推荐)sudo nano /etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
DHCP=yes
启用:
sudo systemctl enable --now systemd-networkd
DNS 会由 systemd-resolved 管理:
resolvectl status
nmcli device show eth0 | grep DNS
一般无需额外配置,DHCP 自动拿 DNS。
如果你是想:
DHCP 分配 IP 后,自动更新 DNS 记录(如 example.com)
那需要 ISC DHCP Server + BIND DNS 配合。
sudo apt update
sudo apt install isc-dhcp-server bind9
编辑:
sudo nano /etc/dhcp/dhcpd.conf
示例:
ddns-updates on;
ddns-update-style interim;
update-static-leases on;
key "rndc-key" {
algorithm hmac-md5;
secret "你的密钥";
};
zone example.com. {
primary 127.0.0.1;
key rndc-key;
}
zone 0.168.192.in-addr.arpa. {
primary 127.0.0.1;
key rndc-key;
}
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;
option domain-name "example.com";
option domain-name-servers 192.168.0.1;
}
sudo nano /etc/bind/named.conf
include "/etc/bind/rndc.key";
zone "example.com" {
type master;
file "/var/lib/bind/db.example.com";
allow-update { key rndc-key; };
};
sudo systemctl restart bind9
sudo systemctl restart isc-dhcp-server
之后:
hostname.example.com → IP| 你的需求 | 方案 |
|---|---|
| 客户端自动用 DNS | DHCP 客户端(默认) |
| 服务器分配 IP + DNS | ISC DHCP + BIND |
| 内网自动解析主机名 | DHCP + DDNS |
| 容器/云环境 | 通常不需要 |
如果你能说明:
我可以给你更精确的配置示例。