第 7 章 网络

如果发现翻译错误,请直接 发起PR修改

7.1. 简介

本章深入探讨了网络配置和性能的主题,展示了 FreeBSD 操作系统强大的网络能力。无论是使用有线网络还是无线网络,本章提供了一个全面的指南,帮助您在 FreeBSD 中配置和优化网络连接。

在深入了解细节之前,读者对网络概念如协议、网络接口和寻址有基本的了解是有益的。

本章内容包括:

  • 在 FreeBSD 中配置有线网络的能力,包括网络接口设置、寻址和定制选项。

  • 在 FreeBSD 中配置无线网络的技能,包括无线网络接口设置、安全协议和故障排除技术。

  • FreeBSD 的网络能力以及其在优秀网络性能方面的声誉。

  • 对于 FreeBSD 支持的各种网络服务和协议的理解,包括 DNS、DHCP 等的配置说明。

有关如何进行高级网络配置的更多信息,请参阅 高级网络

7.2. 设置网络

为 FreeBSD 用户设置有线或无线连接是一个常见的任务。本节将展示如何识别有线和无线网络适配器以及如何配置它们。

在开始配置之前,需要了解以下网络数据:

  • 如果网络使用 DHCP

  • 如果网络没有 DHCP,则使用静态 IP 。

  • 子网掩码

  • 默认网关的 IP 地址

网络连接可能在安装时由 bsdinstall(8) 进行配置。

7.2.1. 识别网络适配器

FreeBSD 支持各种有线和无线网络适配器。请查看所使用的 FreeBSD 版本的硬件兼容性列表 FreeBSD release,以查看网络适配器是否受支持。

要获取我们系统使用的网络适配器,请执行以下命令:

% pciconf -lv | grep -A1 -B3 network

输出应该类似于以下内容:

em0@pci0:0:25:0:        class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x10f5 subvendor=0x17aa subdevice=0x20ee
    vendor     = 'Intel Corporation' (1)
    device     = '82567LM Gigabit Network Connection' (2)
    class      = network
    subclass   = ethernet
--
iwn0@pci0:3:0:0:        class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4237 subvendor=0x8086 subdevice=0x1211
    vendor     = 'Intel Corporation' (1)
    device     = 'PRO/Wireless 5100 AGN [Shiloh] Network Connection' (2)
    class      = networ

在 '@' 符号之前的文本是控制设备的驱动程序的名称。在这种情况下,它们是 em(4)iwn(4)

1 显示供应商的名称
2 显示设备的名称

只有在 FreeBSD 没有正确检测到网络接口卡时,才需要加载该模块。

例如,要加载 alc(4) 模块,请执行以下命令:

# kldload if_alc

或者,要在启动时将驱动程序加载为模块,请将以下行放置在 /boot/loader.conf 中:

if_alc_load="YES"

7.3. 有线网络

一旦正确的驱动程序加载完成,需要配置网络适配器。FreeBSD 使用驱动程序名称后跟一个单元号来命名网络接口适配器。单元号表示适配器在引导时被检测到的顺序,或者是稍后被发现的顺序。

例如,em0 是系统上使用 em(4) 驱动程序的第一个网络接口卡(NIC)。

要显示网络接口配置,请输入以下命令:

% ifconfig

输出应该类似于以下内容:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        inet 192.168.1.19 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet 127.0.0.1 netmask 0xff000000
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

在这个例子中,显示了以下设备:

  • em0:以太网接口。

  • lo0:回环接口是一种软件环回机制,可用于性能分析、软件测试或本地通信。有关更多信息,请参阅 lo(4)

这个例子显示 em0 已经启动并运行。

关键指标包括:

  1. UP 表示接口已配置并准备就绪。

  2. 该接口具有一个 IPv4 Internet(inet)地址,192.168.1.19

  3. 该接口具有一个 IPv6 Internet(inet6)地址,fe80::21f:16ff:fe0f:275a%em0

  4. 它具有有效的子网掩码(netmask),其中 0xffffff00255.255.255.0 相同。

  5. 它具有有效的广播地址,192.168.1.255

  6. 接口(ether)的 MAC 地址是 00:1f:16:0f:27:5a

  7. 物理媒体选择处于自动选择模式(media: Ethernet autoselect (1000baseT <full-duplex>))。

  8. 链接的状态(status)为 active,表示检测到载波信号。对于 em0,当以太网电缆未插入接口时,status: no carrier 状态是正常的。

如果 ifconfig(8) 命令的输出结果与下面的输出结果类似,那么说明接口尚未配置:

em0: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        media: Ethernet autoselect
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

7.3.1. 配置静态 IPv4 地址

本节提供了在 FreeBSD 系统上配置静态 IPv4 地址的指南。

可以使用命令行的 ifconfig(8) 来配置网络接口卡,但是如果不将配置添加到 /etc/rc.conf 中,配置在重启后将不会保留。

如果网络在安装过程中由 bsdinstall(8) 进行配置,则可能已经存在一些网络接口卡(NIC)的条目。在执行 sysrc(8) 之前,请仔细检查 /etc/rc.conf

可以通过执行以下命令来设置 IP 地址:

# ifconfig em0 inet 192.168.1.150/24

要使更改在重新启动后保持生效,请执行以下命令:

# sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0"

执行以下命令添加默认路由器:

# sysrc defaultrouter="192.168.1.1"

将 DNS 记录添加到 [/etc/resolv.conf] 文件中:

nameserver 8.8.8.8
nameserver 8.8.4.4

然后执行以下命令重新启动 netifrouting

# service netif restart && service routing restart

可以使用 ping(8) 来测试连接。

% ping -c2 www.FreeBSD.org

输出应该类似于以下内容:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.2. 配置动态 IPv4 地址

如果网络有一个 DHCP 服务器,配置网络接口使用 DHCP 非常简单。FreeBSD 使用 dhclient(8) 作为 DHCP 客户端。 dhclient(8) 会自动提供 IP 地址、子网掩码和默认路由器。

要使接口与 DHCP 配合工作,请执行以下命令:

# sysrc ifconfig_em0="DHCP"

dhclient(8) 可以通过运行以下命令手动使用:

# dhclient em0

输出应该类似于以下内容:

DHCPREQUEST on em0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
unknown dhcp option value 0x7d
bound to 192.168.1.19 -- renewal in 43200 seconds.

通过这种方式可以验证使用 DHCP 进行地址分配是否正常工作。

dhclient(8) 客户端可以在后台启动。这可能会对依赖于正常工作网络的应用程序造成麻烦,但在许多情况下,它将提供更快的启动速度。

要在后台执行 dhclient(8),请执行以下命令:

# sysrc background_dhclient="YES"

然后执行以下命令重新启动 netif

# service netif restart

可以使用 ping(8) 来测试连接。

% ping -c2 www.FreeBSD.org

输出应该类似于以下内容:

PING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes
64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms
64 bytes from 147.28.184.45: icmp_seq=1 ttl=51 time=53.093 ms

--- web.geo.FreeBSD.org ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms

7.3.3. IPv6

IPv6 是广为人知的 IP 协议的新版本,也被称为 IPv4。

IPv6 相比 IPv4 提供了几个优势,以及许多新的功能:

  • 它的 128 位地址空间允许拥有 340,282,366,920,938,463,463,374,607,431,768,211,456 个地址。这解决了 IPv4 地址短缺和最终的 IPv4 地址耗尽问题。

  • 路由器只在其路由表中存储网络聚合地址,从而将路由表的平均空间减少到 8192 个条目。这解决了与 IPv4 相关的可扩展性问题,因为 IPv4 要求每个分配的 IPv4 地址块在互联网路由器之间进行交换,导致它们的路由表变得过大,无法实现高效的路由。

  • 地址自动配置 (RFC2462)

  • 强制性多播地址。

  • 内置 IPsec(IP security)。

  • 简化的标题结构。

  • 支持移动 IP。

  • IPv6 到 IPv4 的过渡机制。

FreeBSD 包含了 KAME 项目 IPv6 参考实现,并且提供了使用 IPv6 所需的一切。

本节重点介绍如何配置和运行 IPv6。

IPv6 地址有三种不同的类型:

单播

发送到单播地址的数据包到达与该地址相关的接口。

任播

这些地址在语法上与单播地址无法区分,但它们用于寻址一组接口。发送到任播地址的数据包将到达最近的路由器接口。任播地址只由路由器使用。

多播

这些地址标识了一组接口。发送到多播地址的数据包将到达属于多播组的所有接口。 IPv4 广播地址通常为 xxx.xxx.xxx.255,在 IPv6 中用多播地址表示。

在阅读 IPv6 地址时,规范形式表示为 x:x:x:x:x:x:x:x,其中每个 x 表示一个 16 位的十六进制值。一个例子是 FEBC:A574:382B:23C1:AA49:4592:4EFE:9982

通常,一个地址会有很长的全零子串。一个 ::(双冒号)可以用来替换地址中的一个子串。此外,每个十六进制值前面的最多三个 0 可以省略。例如, fe80::1 对应的规范形式是 fe80:0000:0000:0000:0000:0000:0000:0001

第三种形式是使用众所周知的 IPv4 表示法编写最后 32 位。例如,2002::10.0.0.1 对应于十六进制的规范表示 2002:0000:0000:0000:0000:0000:0a00:0001,而这又等同于 2002::a00:1

要查看 FreeBSD 系统的 IPv6 地址,请执行以下命令:

# ifconfig

输出应该类似于以下内容:

em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=481249b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LRO,WOL_MAGIC,VLAN_HWFILTER,NOMAP>
        ether 00:1f:16:0f:27:5a
        inet 192.168.1.150 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::21f:16ff:fe0f:275a%em0 prefixlen 64 scopeid 0x1
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>

在这个例子中,em0 接口正在使用 fe80::21f:16ff:fe0f:275a%em0,这是一个自动配置的链路本地地址,它是根据 MAC 地址自动生成的。

一些 IPv6 地址是保留地址。保留地址的列表可以在下表中查看:

表 1. IPv6 保留地址示例
IPv6 地址 前缀长度(位) 描述 注释

::

128 位

未指定的

IPv4 中等同于 0.0.0.0 的地址。

::1

128 位

环回地址

IPv4 中等同于 127.0.0.1 的地址。

::00:xx:xx:xx:xx

96 位

嵌入式 IPv4

低 32 位是兼容的 IPv4 地址。

::ff:xx:xx:xx:xx

96 位

IPv4 映射 IPv6 地址

低 32 位是不支持 IPv6 的主机的 IPv4 地址。

fe80::/10

10 位

链路本地

在 IPv4 中,等同于 169.254.0.0/16 的地址。

fc00::/7

7 位

唯一本地

唯一本地地址用于本地通信,只能在一组合作站点内进行路由。

ff00::

8 位

多播

2000::-3fff::

3 位

全局单播

所有全局单播地址都是从这个地址池中分配的。前 3 位是 001

有关 IPv6 地址结构的更多信息,请参考 RFC3513

7.3.4. 配置静态 IPv6 地址

要将 FreeBSD 系统配置为具有静态 IPv6 地址的 IPv6 客户端,需要设置 IPv6 地址。

执行以下命令以满足要求:

# sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"

要分配一个默认路由器,请执行以下命令指定其地址:

# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"

7.3.5. 配置动态 IPv6 地址

如果网络有一个 DHCP 服务器,配置网络接口使用 DHCP 非常简单。dhclient(8) 会自动提供 IP 地址、子网掩码和默认路由器。

要使接口与 DHCP 配合工作,请执行以下命令:

# sysrc ifconfig_em0_ipv6="inet6 accept_rtadv"
# sysrc rtsold_enable="YES"

7.3.6. 路由器通告和主机自动配置

本节演示了如何在 IPv6 路由器上设置 rtadvd(8),以广播 IPv6 网络前缀和默认路由。

要启用 rtadvd(8),执行以下命令:

# sysrc rtadvd_enable="YES"

指定 IPv6 路由器通告的接口非常重要。例如,要告诉 rtadvd(8) 使用 em0

# sysrc rtadvd_interfaces="em0"

接下来,按照以下示例创建配置文件 /etc/rtadvd.conf

em0:\
	:addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:

em0 替换为要使用的接口,将 2001:db8:1f11:246:: 替换为分配的前缀。

对于一个专用的 /64 子网,不需要做任何其他更改。否则,请将 prefixlen# 更改为正确的值。

7.3.7. IPv6 和 IPv4 地址映射

当服务器启用 IPv6 时,可能需要启用 IPv4 映射的 IPv6 地址通信。这个兼容选项允许将 IPv4 地址表示为 IPv6 地址。允许 IPv6 应用程序与 IPv4 相互通信可能会存在安全问题。

在大多数情况下,这个选项可能不是必需的,只是为了兼容性而提供的。这个选项将允许仅支持 IPv6 的应用程序在双栈环境中与 IPv4 一起工作。这对于可能不支持仅 IPv6 环境的第三方应用程序非常有用。

要启用此功能,请执行以下命令:

# sysrc ipv6_ipv4mapping="YES"

7.4. 无线网络

大多数无线网络都基于 IEEE® 802.11 标准

FreeBSD 支持使用 802.11a802.11b802.11g802.11n 网络。

在 FreeBSD 上,目前正在开发对 802.11ac 的支持。

一个基本的无线网络由多个站点组成,这些站点使用广播在 2.4GHz 或 5GHz 频段进行通信,尽管这在不同地区可能有所不同,并且也在不断变化以实现在 2.3GHz 和 4.9GHz 范围内的通信。

配置无线网络有三个基本步骤:

  1. 扫描并选择一个接入点

  2. 验证该站点

  3. 配置 IP 地址或使用 DHCP。

下面的部分讨论了每个步骤。

7.4.1. 连接无线网络的快速入门指南

将 FreeBSD 连接到现有的无线网络是一种非常常见的情况。

该过程显示所需的步骤:

  • 第一步是从网络管理员那里获取无线网络的 SSID (服务集标识)和 PSK (预共享密钥)。

  • 第二步是将此网络添加到 /etc/wpa_supplicant.conf 的条目中。如果文件不存在,请创建它:

network={
 ssid="myssid" (1)
 psk="mypsk" (2)
}
1 是无线网络的 SSID 。请将其替换为无线网络的名称。 <.> 是无线网络的 PSK 。请将其替换为无线网络的密码。
  • 第三步是添加网络条目以在启动时配置网络:

# sysrc wlans_iwn0="wlan0"
# sysrc ifconfig_wlan0="WPA DHCP"
  • 最后一步将是重新启动 netif 服务,执行以下命令:

# service netif restart

7.4.2. 基本无线配置

第一步是将无线网络卡配置到一个接口上。要查看系统中有哪些无线网络卡,请参考 识别网络适配器 部分。

# ifconfig wlan0 create wlandevice iwm0

要使更改在重新启动后保持生效,请执行以下命令:

# sysrc wlans_iwn0="wlan0"

由于世界各地的监管情况不同,因此有必要正确设置适用于您所在地区的域名,以获取关于可以使用哪些频道的正确信息。

可用的区域定义可以在 /etc/regdomain.xml 中找到。要在运行时设置数据,请使用 ifconfig 命令:

# ifconfig wlan0 regdomain etsi2 country AT

要持久保存设置,请将其添加到 [/etc/rc.conf] 文件中:

# sysrc create_args_wlan0="country AT regdomain etsi2"

7.4.3. 扫描无线网络

可以使用 ifconfig(8) 命令扫描可用的无线网络。

要列出无线网络,请执行以下命令:

# ifconfig wlan0 up list scan

输出应该类似于以下内容:

SSID/MESH ID                      BSSID              CHAN RATE    S:N     INT CAPS
FreeBSD                           e8:d1:1b:1b:58:ae    1   54M  -47:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
NetBSD                            d4:b9:2f:35:fe:08    1   54M  -80:-96   100 EP   RSN BSSLOAD HTCAP WPS WME
OpenBSD                           fc:40:09:c6:31:bd   36   54M  -94:-96   100 EPS  VHTPWRENV APCHANREP RSN WPS BSSLOAD HTCAP VHTCAP VHTOPMODE WME
GNU-Linux                         dc:f8:b9:a0:a8:e0   44   54M  -95:-96   100 EP   WPA RSN WPS HTCAP VHTCAP VHTOPMODE WME VHTPWRENV
Windows                           44:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
MacOS                             46:48:b9:b3:c3:ff   44   54M  -84:-96   100 EP   BSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPS
  1. SSID/MESH ID 标识网络的名称。

  2. BSSID 标识了接入点的 MAC 地址。

  3. CAPS 字段标识了每个网络的类型以及在该网络上运行的站点的能力(有关详细信息,请参阅 ifconfig(8)list scan 的定义)。

7.4.4. 连接和认证无线网络

一旦从扫描到的网络列表中选择了一个无线网络,就需要进行连接和认证。在绝大多数无线网络中,认证是通过路由器中配置的密码来完成的。其他方案要求在数据流量可以流动之前完成加密握手,可以使用预共享密钥或密钥,也可以使用涉及后端服务(如 RADIUS)的更复杂的方案。

7.4.4.1. 使用 WPA2/WPA/Personal

无线网络中的身份验证过程由 wpa_supplicant(8) 管理。

wpa_supplicant(8) 配置将在 /etc/wpa_supplicant.conf 文件中进行。有关更多信息,请参阅 wpa_supplicant.conf(5)

一旦完成了对无线网络的扫描,选择了一个网络并获得了密码(PSK),那么这些信息将被添加到文件 /etc/wpa_supplicant.conf 中,如下所示的示例:

network={
        scan_ssid=1 (1)
        ssid="FreeBSD" (2)
        psk="12345678" (3)
}
1 SSID 扫描技术。只有在网络隐藏时才需要使用此选项。 <.> 网络名称。 <.> 无线网络的密码。

下一步将是在文件 /etc/rc.conf 中配置无线连接。

要使用静态地址,需要执行以下命令:

# sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0"

要使用动态地址,需要执行以下命令:

# ifconfig_wlan0="WPA DHCP"

然后执行以下命令重新启动网络:

# service netif restart

可以在 “无线高级认证” 获取有关如何执行更高级身份验证方法的更多信息。

7.4.4.2. 使用开放网络进行身份验证

当用户连接到没有任何身份验证方式的开放网络时,非常重要的是用户要非常小心。

完成无线网络扫描并选择无线网络的 SSID 后,执行以下命令:

# ifconfig wlan0 ssid SSID

然后执行 dhclient(8) 来获取配置的地址:

# dhclient wlan0

7.4.5. 同时使用有线和无线连接

有线连接提供更好的性能和可靠性,而无线连接提供灵活性和移动性。笔记本电脑用户通常希望在这两种连接类型之间无缝切换。

在 FreeBSD 上,可以以“故障转移(failover)”的方式将两个甚至更多的网络接口组合在一起。这种配置类型使用一组网络接口中最优先和可用的连接,并且当链路状态发生变化时,操作系统会自动切换。

链路聚合和故障转移在 “链路聚合和故障转移” 中有详细介绍,并且在 “以太网和无线接口之间的故障转移模式” 中提供了同时使用有线和无线连接的示例。

7.5. 主机名

主机名表示网络上主机的完全限定域名(FQDN)。

如果主机没有设置主机名,FreeBSD 将分配值 Amnesiac

7.5.1. 检查当前主机名

hostname(1) 可以用来检查当前的主机名:

$ hostname

输出应该类似于以下内容:

freebsdhostname.example.com

7.5.2. 更改主机名

要更改主机的主机名并在重新启动后保持不变,请执行以下命令:

# sysrc hostname="freebsdhostname.example.com"

7.6. DNS

DNS 可以被理解为一个 电话簿,其中将 IP 地址与主机名进行互相识别。

有三个文件处理 FreeBSD 系统与 DNS 的交互。这三个文件是 hosts(5)resolv.conf(5)nsswitch.conf(5)

除非在 /etc/nsswitch.conf 文件中另有说明,否则 FreeBSD 将首先查看 /etc/hosts 文件中的地址,然后再查看 /etc/resolv.conf 文件中的 DNS 信息。

nsswitch.conf(5) 文件指定了 nsdispatch(名称服务切换调度程序)的操作方式。

默认情况下,/etc/nsswitch.conf 文件的 hosts 部分将如下所示:

hosts: files dns

例如,在使用 nscd(8) 服务的情况下,可以通过将该行保持如下来更改优先顺序:

hosts: files cache dns

7.6.1. 本地地址

/etc/hosts 文件是一个简单的文本数据库,用于提供主机名到 IP 地址的映射。可以将连接到局域网的本地计算机的条目添加到此文件中,以简化命名,而不是设置 DNS 服务器。此外, /etc/hosts 还可以用于提供互联网名称的本地记录,减少查询外部 DNS 服务器以获取常用名称的需求。

例如,在本地环境中有一个名为 www/gitlab-ce 的本地实例的情况下,可以将其添加到文件 /etc/hosts 中,如下所示:

192.168.1.150 git.example.com git

7.6.2. 配置域名服务器

FreeBSD 系统如何访问互联网域名系统(DNS)由 resolv.conf(5) 控制。

最常见的条目是 /etc/resolv.conf

nameserver

解析器应查询的名称服务器的 IP 地址。按照列出的顺序查询服务器,最多查询三个。

search

搜索列表用于主机名查找。通常由本地主机名的域确定。

domain

本地域名。

一个典型的 /etc/resolv.conf 文件如下所示:

search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30

只能使用 searchdomain 选项中的一个。

在使用 DHCP 时,dhclient(8) 通常会使用从 DHCP 服务器接收到的信息重写 .filename#/etc/resolv.conf# 文件。

如果进行配置的机器 不是 DNS 服务器,可以使用 local-unbound(8) 来提高 DNS 查找性能。

要在启动时启用它,请执行以下命令:

# sysrc local_unbound_enable="YES"

要启动 local-unbound(8) 服务,请执行以下命令:

# service local_unbound start

7.7. 故障排除

在排除硬件和软件配置问题时,首先检查简单的事情。

  • 网络电缆已插好吗?

  • 网络服务是否已正确配置?

  • 防火墙配置正确吗?

  • FreeBSD 是否支持该网卡?

  • 路由器是否正常工作?

在发送错误报告之前,始终要在 FreeBSD 发布页面 检查硬件说明 ,将 FreeBSD 版本更新到最新的 STABLE 版本,检查邮件列表存档,并在互联网上进行搜索。

7.7.1. 有线网络故障排除

如果卡可以正常工作,但性能较差,请阅读 tuning(7)。此外,请检查网络配置,因为不正确的网络设置可能会导致连接变慢。

如果系统无法将数据包路由到目标主机,则会出现“无法到达主机”的消息。如果没有指定默认路由或者电缆未插好,就会发生这种情况。检查 netstat -rn 的输出,并确保存在到目标主机的有效路由。如果不存在有效路由,请阅读 “网关和路由”.

ping: sendto: Permission denied 错误消息通常是由于配置错误的防火墙引起的。如果在 FreeBSD 上启用了防火墙但没有定义规则,那么默认策略是拒绝所有流量,甚至是 ping(8)。有关更多信息,请参考 防火墙

7.7.2. 无线网络故障排除

本节描述了一些步骤,以帮助解决常见的无线网络问题。

  • 如果在扫描时未列出访问点,请检查配置是否限制了无线设备的频道范围。

  • 如果设备无法与接入点关联,请验证配置是否与接入点上的设置匹配。这包括认证方案和任何安全协议。尽量简化配置。如果使用 WPA2 或 WPA 等安全协议,请将接入点配置为开放认证和无安全性,以查看是否可以传输流量。

  • 一旦系统能够与接入点建立关联,可以使用诸如 ping(8) 之类的工具来诊断网络配置。

  • 有许多低级调试工具。可以使用 wlandebug(8) 在 802.11 协议支持层启用调试消息。


上次修改时间: September 18, 2024 by fiercex