FreeBSD 主机名和 DNS 配置
在网络中使用 FreeBSD 系统,除了要使用有线网络连接或无线网络连接外,还可能会使用到主机名和 DNS。在本文中将要介绍如何为 FreeBSD 系统配置主机名和配置 DNS。
主机名配置
主机名是该主机在网络中唯一标识,可以是一个名称,也可以是完全限定域名 (fully qualified domain name FQDN)。如果未设置,会自动设置为 Amnesiac。
查看当前主机名
使用如下命令查看主机名称:
hostname
设置主机名
主机名称配置在 /etc/rc.conf 文件中,使用如下命令把主机名设置为一个完全限定域名:
sudo sysrc hostname="freebsd-server.example.com"
重启系统后生效。
DNS 配置
域名系统(DNS)可以理解为一个电话簿,其中的 IP 地址与主机名一一对应,可以把 IP 地址解析为域名,或者可以把域名解析为 IP 地址。
在 FreeBSD 系统中使用 /etc/hosts、/etc/resolv.conf、/etc/nsswitch.conf 三个文件管理 DNS 解析。
控制解析优先级
在 FreeBSD 系统中使用/etc/nsswitch.conf 文件控制解析域名时的查询顺序。
使用 hosts: 定义查询顺序,前面的优先级大于后面的优先级,默认定义的查询顺序为:
hosts: files dns
内容解释:
files:查询/etc/hosts文件内的内容dns:查询resolv.conf中配置的 DNS 服务器
如果在 FreeBSD 系统中启用了 nscd 缓存服务,可以设置查询缓存信息,可以设置为类似如下内容:
hosts: files cache dns
本地静态解析
如果只是在局域网中使用域名信息,那么就不需要配置 DNS 解析服务器,只需在 /etc/hosts 文件中添加对应的配置信息。内容为一行一条信息,格式为 IP地址 主机名 别名。
编辑 /etc/hosts 文件:
sudo vi /etc/hosts
添加类似如下的内容:
192.168.1.150 git.example.com git
当在局域网中访问 git.example.com 时,会解析到访问局域网中的 192.168.1.150 地址。
配置 DNS 服务器
如果想要访问互联网中域名,那么就需要配置 DNS 域名服务器,DNS 域名服务器的内容存放在 /etc/resolv.conf 文件中。
可以在文件中添加如下的三种内容信息:
nameserver:域名服务器信息,访问该 IP,解析域名为对应的 IP 地址。
search:搜索域名后缀,当在浏览器中输入一个字符串中,按顺序与该内容拼接后,作为完整域名。
- domain:域名,设置本地域名。
注意:search 和 domain 信息不能同时设置。
添加 DNS 服务器
编辑 /etc/resolv.conf 文件:
sudo vi /etc/resolv.conf
添加类似如下的 DNS 域名服务器内容:
nameserver 211.137.191.26 # 首选 DNS 服务器,中国移动的 DNS 服务器
nameserver 114.114.114.114 # 备用 DNS 服务器
添加搜索域名后缀
还可以在该文件中配置搜索的域名后缀,即:在浏览器中只输入一个字符串时,如 zhidao,会把该字符串与拼接起来,作为完整域名发送到 DNS 域名服务器去解析。
添加类似如下的搜索域名后缀内容:
search example.com
search mydomain.com
当配置了如上的内容后,当在浏览器的地址栏中只输入 "server" 时,会按顺序与域名后缀拼接后访问:
- 先访问
server.example.com,如果能够正常访问,则终止往下搜索 - 如果不能访问,则访问
server.mydomain.com
注意:你设置的搜索域名后缀,要在互联网中能够访问,否则可能会遇到问题。
当使用 DHCP 获取 IP 时,dhclient 会自动覆盖该文件,如果想要不修改 DNS,需要配置 dhclient 忽略更新 DNS。
启用本地 DNS 缓存
在 FreeBSD 中也提供了 DNS 缓存服务,local-unbound 是一款轻量级的 DNS 缓存服务,可以用来提升 DNS 的解析速度。
1)设置开机自启动 local-unbound 服务:
sudo sysrc local_unbound_enable="YES"
2)启动 local-unbound 服务:
sudo service local_unbound start