第七章 网络7.1. 简介7.2. 设置网络7.2.1. 识别网络适配器7.3. 有线网络7.3.1. 配置动态IPv4地址7.3.2. 配置动态IPv4地址7.3.3. IPv67.3.4. 配置静态IPv6地址7.3.5. 配置动态IPv6地址7.3.6. 路由器通告和主机自动配置7.3.7. IPv6和IPv4地址映射7.4. 无线网络7.4.1. 快速开始连接到无线网络7.4.2. 基本无线配置7.4.3. 扫描无线网络7.4.4. 无线网络的连接和身份验证7.4.4.1. 使用WPA2/WPA/个人身份验证7.4.4.2. 使用开放网络进行身份验证7.4.5. 同时使用有线和无线连接7.5. 主机名7.5.1. 检查当前主机名7.5.2. 更改主机名7.6. DNS7.6.1. 本地地址7.6.2. 配置名称服务器7.7. 故障排除7.7.1. 有线网络故障排除7.7.2. 无线网络故障排除
本章深入探讨了网络配置和性能的主题,展示了FreeBSD操作系统的强大网络功能。无论是使用有线网络还是无线网络,本章都提供了在FreeBSD中配置和优化网络连接的全面指南。
在深入细节之前,读者最好对协议、网络接口和寻址等网络概念有一个基本的了解。
本章涵盖:
有关如何进行高级网络配置的更多信息参阅【34. 高级网络】。
设置有线或无线连接是FreeBSD用户的常见任务。本节将展示如何识别有线和无线网络适配器以及如何配置它们。
在开始配置之前,有必要了解以下网络数据:
xxxxxxxxxx网络连接可能已在安装时由bsdinstall(8)配置。FreeBSD支持用于有线和无线网络的各种网络适配器。检查所用FreeBSD版本的硬件兼容性列表,查看是否支持网络适配器。
要获取系统使用的网络适配器,请执行以下命令:
xxxxxxxxxx% pciconf -lv | grep -A1 -B3 networkem0@pci0:0:25:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x10f5 subvendor=0x17aa subdevice=0x20ee vendor = 'Intel Corporation' ① device = '82567LM Gigabit Network Connection' ② 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' ① device = 'PRO/Wireless 5100 AGN [Shiloh] Network Connection' ② class = network“@”符号前的文本是控制设备的驱动程序的名称。在这种情况下,它们是 em(4) 和 iwn(4) 。
① 显示供应商的名称
② 显示设备的名称
xxxxxxxxxx只有当FreeBSD没有正确检测到网络接口卡模块时,才需要加载它。例如,要加载 alc(4) 模块,请执行以下命令: #kldload if_alc或者,要在启动时将驱动程序作为模块加载,请在 /boot/loder.conf 中放置以下行: if_alc_load=“YES”加载正确的驱动程序后,需要配置网络适配器。FreeBSD使用驱动程序名称后跟一个单元号来命名网络接口适配器。单元号表示在启动时检测适配器或稍后发现适配器的顺序。
例如, em0 是系统上使用 em(4) 驱动程序的第一个网络接口卡(network interface card,NIC)。
要显示网络接口配置,请输入以下命令:
xxxxxxxxxx% ifconfigem0: 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 已启动并运行。
关键指标包括:
UP 表示接口已配置并准备就绪。inet)地址 192.168.1.19 。inet6)地址,fe80::21f:16ff:fe0f:275a%em0 。netmask),其中 0xffff00 与 255.255.255.0相同。192.168.1.255 。ether)的MAC地址为 00:1f:16:0f:27:5a 。media: Ethernet autoselect (1000baseT<full-duplex>))。status)为 active (活动),表示检测到载波信号。对于 em0 ,当以太网电缆未插入接口时, status: no carrier 是正常的。如果 ifconfig(8) 输出显示了与下一个输出类似的内容,则表示接口尚未配置:
xxxxxxxxxxem0: flags=8822<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500options=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>本节提供在FreeBSD系统上配置静态IPv4地址的指南。
网络接口卡配置可以使用 ifconfig(8) 从命令行执行,但在重新启动后不会持续,除非该配置也添加到 /etc/rc.conf 中。
xxxxxxxxxx如果网络是在安装过程中由 bsdinstall(8) 配置的,则网络接口卡(NIC)的某些条目可能已经存在。在执行 sysrc(8) 之前,请仔细检查 /etc/rc.conf。可以通过执行以下命令设置IP地址:
xxxxxxxxxx# ifconfig em0 inet 192.168.1.150/24要使更改在重新启动后保持不变,请执行以下命令:
xxxxxxxxxx# sysrc ifconfig_em0="inet 192.168.1.150 netmask 255.255.255.0"添加执行以下命令的默认路由器:
xxxxxxxxxx# sysrc defaultrouter="192.168.1.1"将DNS记录添加到 /etc/resolv.conf :
xxxxxxxxxxnameserver 8.8.8.8nameserver 8.8.4.4然后重新启动 netif 并执行以下命令进行 routing :
xxxxxxxxxx# service netif restart && service routing restart可以使用 ping(8) 测试连接:
x% ping -c2 www.FreeBSD.orgPING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms64 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 lossround-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 ms如果网络有DHCP服务器,则很容易配置网络接口以使用DHCP。FreeBSD使用 dhclient(8) 作为DHCP客户端。 dhclient(8) 将自动提供IP、网络掩码和默认路由器。
要使接口与DHCP一起工作,请执行以下命令:
xxxxxxxxxx# sysrc ifconfig_em0="DHCP"dhclient(8) 可以通过运行以下命令手动使用:
xxxxxxxxxx# dhclient em0DHCPREQUEST on em0 to 255.255.255.255 port 67DHCPACK from 192.168.1.1unknown dhcp option value 0x7dbound to 192.168.1.19 -- renewal in 43200 seconds.通过这种方式,可以验证使用DHCP的地址分配是否正常工作。
xxxxxxxxxxdhclient(8)客户端可以在后台启动。这可能会给依赖于工作网络的应用程序带来麻烦,但在许多情况下,它会提供更快的启动速度。要在后台执行dhclient(8),请执行以下命令:# sysrc background_dhclient="YES"然后执行以下命令重新启动 netif :
xxxxxxxxxx# service netif restart可以使用 ping(8) 测试连接:
xxxxxxxxxx% ping -c2 www.FreeBSD.orgPING web.geo.FreeBSD.org (147.28.184.45): 56 data bytes64 bytes from 147.28.184.45: icmp_seq=0 ttl=51 time=55.173 ms64 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 lossround-trip min/avg/max/stddev = 53.093/54.133/55.173/1.040 msIPv6是众所周知的IP协议的新版本,就像IPv4。
IPv6比IPv4提供了几个优势以及许多新功能:
FreeBSD包括 KAME项目 (海龟)IPv6参考实现,并附带了使用IPv6所需的一切。
本节重点介绍如何配置和运行IPv6。
有三种不同类型的IPv6地址:
Unicast——单播
发送到单播地址的数据包到达属于该地址的接口。
Anycast——任意播
这些地址在语法上与单播地址没有区别,但它们寻址一组接口。发往任意播地址的数据包将到达最近的接口。
Multicast——多播
这些地址标识一组接口。发往多播地址的数据包将到达属于多播组的所有接口。IPv4广播地址,通常为xxx.xxx.xxx.255,在IPv6中由多播地址表示。
读取IPv6地址时,规范形式表示为 x:x:x:x:x:x:x:x:x ,其中每个 x 表示一个16位十六进制值。一个例子是 FEBC:A574:382B:23C1:AA49:4592:4EFE:9982 。
通常,一个地址会有很长的全零子字符串。 ::(双冒号)可用于替换每个地址的一个子字符串。此外,每个十六进制值最多可以省略三个前导0 。例如,fe80::1 对应于规范形式 fe80:0000:0000:00000:0000:0000 。
第三种形式是使用众所周知的IPv4表示法写入最后32位。例如,2002::10.0.0.1 对应于十六进制规范表示 2002:0000:0000:000:0000:00000:0a00:0001 ,这反过来又等价于 2002::a00:1 。
要查看FreeBSD系统的IPv6地址,请执行以下命令:
xxxxxxxxxx# ifconfigem0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500options=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地址。可以在下表中查看保留地址列表:
表10. IPv6保留地址示例
| IPv6 地址 | 描述 | 备注 |
|---|---|---|
| ::/128 | 未指定的 | 相当于IPv4中的 0.0.0.0 。 |
| ::1/128 | 环回地址 | 相当于IPv4中的 127.0.0.1 。 |
| ::ffff:0.0.0.0/96 | IPv4映射的IPv6地址 | 较低的32位是IPv4地址,用于与IPv4主机和路由器兼容。 |
| fe80::/10 | 链接本地单播 | 相当于IPv4中的169.254.0.0/16。 |
| fc00::/7 | 唯一的本地地址 | 唯一的本地地址用于本地通信,只能在一组协作站点内路由。 |
| ff00::/8 | 多播 | |
| 2000::/3 | 全局单播 | 所有全局单播地址均从此池中分配。前3位是 001 。 |
| 2001:db8::/32, 3fff::/20 | 文档 | 文档中使用的IPv6地址前缀。 |
有关IPv6地址结构的更多信息,请参阅 RFC4291 。
要将FreeBSD系统配置为具有静态IPv6地址的IPv6客户端,需要设置IPv6地址。
执行以下命令以满足要求:
xxxxxxxxxx# sysrc ifconfig_em0_ipv6="inet6 2001:db8:4672:6565:2026:5043:2d42:5344 prefixlen 64"要指定默认路由器,请执行以下命令指定其地址:
xxxxxxxxxx# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"要配置额外的IPv6任播地址,请将任播地址指定为 _aliasN ,如 rc.conf(5) 中所述,然后指定 anycast 选项:
xxxxxxxxxx# sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast"请记住,应用程序不能绑定到 anycast 地址;在这种情况下,您需要使用别名地址。
要使用SLAAC动态配置接口的IPv6地址,请执行以下命令:
xxxxxxxxxx# sysrc ifconfig_em0_ipv6="inet6 accept_rtadv"# sysrc rtsold_enable="YES"请注意,当启用IPv6数据包转发时(即 ipv6_gateway_enable=YES ),系统将不会配置SLAAC地址,除非 net.inet6.ip6.rfc6204w3 sysctl(8)变量设置为 1 。
本节演示如何在IPv6路由器上设置 rtadvd(8) 以通告IPv6网络前缀和默认路由。
要启用 rtadvd(8) ,请执行以下命令:
xxxxxxxxxx# sysrc rtadvd_enable="YES"指定在其上进行IPv6路由器通告的接口非常重要。例如,要告诉 rtadvd(8) 使用 em0 :
xxxxxxxxxx# sysrc rtadvd_interfaces="em0"接下来,创建配置文件 /etc/rtadvd.conf ,如下例所示:
xxxxxxxxxxem0:\ :addrs#1:addr="2001:db8:1f11:246::":prefixlen#64:tc=ether:将 em0 替换为要使用的接口,将 2001:db8:1f11:246:: 替换为分配的前缀。
对于专用 /64 子网,不需要更改其他任何内容。否则,将 prefixlen# 更改为正确的值。
当服务器上启用IPv6时,可能需要启用IPv4映射的IPv6地址通信。此兼容性选项允许将IPv4地址表示为IPv6地址。允许IPv6应用程序与IPv4通信,反之亦然,可能是一个安全问题。
在大多数情况下,此选项可能不是必需的,仅用于兼容性。此选项将允许仅支持IPv6的应用程序在双栈环境中与IPv4一起工作。这对于可能不支持纯IPv6环境的第三方应用程序最有用。
要启用此功能,请执行以下命令:
xxxxxxxxxx# sysrc ipv6_ipv4mapping="YES"大多数无线网络都基于 IEEE®802.11标准 。
FreeBSD支持使用 802.11a、802.11b、802.11g和802.11n的网络。
xxxxxxxxxxFreeBSD上的802.11ac(Wi-Fi 5)支持目前正在开发中。一个基本的无线网络由多个与2.4GHz或5GHz频段广播的无线电通信的站组成,尽管这因地区而异,并且也在不断变化,以实现2.3GHz和4.9GHz范围内的通信。
配置无线网络有三个基本步骤:
以下部分将讨论每个步骤。
将FreeBSD连接到现有的无线网络是一种非常常见的情况。
此快速入门过程显示了使用基本身份验证连接到网络所需的步骤。下一节将给出更详细的程序。
第一步是从网络管理员处获取无线网络的服务集标识符(Service Set Identifier,SSID)和预共享密钥(Pre-Shared KeyPSK)。
第二步是将此网络的条目添加到 /etc/wpa_supplicant.conf 。
如果文件不存在,请创建它。有关格式化此文件中条目的详细信息,请参阅 wpa_supplicant.conf(5) 。
xxxxxxxxxxctrl_interface=/var/run/wpa_supplicanteapol_version=1ap_scan=1fast_reauth=1 network={ ssid="myssid" ① psk="mypsk" ②}① 是无线网络的SSID。请将其替换为无线网络的名称。
② 是无线网络的PSK。请将其替换为无线网络的密码。
第三步是添加网络接口条目,以便在启动时配置网络。使用 sysctl 的 net.wlan.devices 获取网络设备接口。在下面的列表中,此sysctl的输出显示网络设备接口为“iwn0”。
xxxxxxxxxx# sysctl net.wlan.devicesnet.wlan.devices: iwm0在下面的sysrc行中,如果需要,将“iwn0”替换为sysctl命令的输出。
xxxxxxxxxx# sysrc wlans_iwn0="wlan0"# sysrc ifconfig_wlan0="WPA DHCP"最后一步是执行以下命令重新启动 netif 服务:
xxxxxxxxxx# service netif restart本节提供了配置无线网卡的更详细示例。要了解系统中有哪些无线网卡,请查看【7.2.1. 识别网络适配器】一节。
xxxxxxxxxx# ifconfig wlan0 create wlandev iwm0要使更改在重新启动后保持不变,请执行以下命令:
xxxxxxxxxx# sysrc wlans_iwm0="wlan0"xxxxxxxxxx由于世界各地的监管情况不同,因此有必要正确设置适用于您所在位置的域,以获得有关可以使用哪些渠道的正确信息。可用的区域定义可以在/etc/regdomain.xml中找到。要在运行时设置数据,请使用ifconfig: # ifconfig wlan0 regdomain etsi2 country AT要保留设置,请将其添加到/etc/rc.conf: # sysrc create_args_wlan0="country AT regdomain etsi2"可用的无线网络可以使用 ifconfig(8) 进行扫描。
要列出无线网络,请执行以下命令:
xxxxxxxxxx# ifconfig wlan0 up list scanSSID/MESH ID BSSID CHAN RATE S:N INT CAPSFreeBSD e8:d1:1b:1b:58:ae 1 54M -47:-96 100 EP RSNBSSLOAD HTCAP WPS WMENetBSD d4:b9:2f:35:fe:08 1 54M -80:-96 100 EP RSNBSSLOAD HTCAP WPS WMEOpenBSD fc:40:09:c6:31:bd 36 54M -94:-96 100 EPSVHTPWRENV APCHANREP RSN WPS BSSLOAD HTCAP VHTCAP VHTOPMODE WMEGNU-Linux dc:f8:b9:a0:a8:e0 44 54M -95:-96 100 EP WPARSN WPS HTCAP VHTCAP VHTOPMODE WME VHTPWRENVWindows 44:48:b9:b3:c3:ff 44 54M -84:-96 100 EPBSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPSMacOS 46:48:b9:b3:c3:ff 44 54M -84:-96 100 EPBSSLOAD VHTPWRENV HTCAP WME RSN VHTCAP VHTOPMODE WPSifconfig(8) 中的 list scan 定义)。一旦从扫描的网络列表中选择了无线网络,就需要执行连接和身份验证。在绝大多数无线网络中,身份验证是通过路由器中配置的密码完成的。其他方案要求在数据流量流动之前完成加密握手,要么使用预共享密钥或秘密,要么使用涉及RADIUS等后端服务的更复杂的方案。
无线网络中的身份验证过程由 wpa_supplicant(8) 管理。
wpa_supplicant(8) 配置将在 /etc/wpa_suppliant.conf 文件中进行。有关更多信息,请参阅 wpa_supplicant.conf(5) 。
一旦对无线网络进行了扫描,选择了一个网络并使用了密码(PSK),该信息将被添加到 /etc/wpa_supplicant.conf 文件中,如下例所示:
xxxxxxxxxxnetwork={ scan_ssid=1 ① ssid="FreeBSD" ② psk="12345678" ③}① SSID扫描技术。仅当网络隐藏时才需要使用此选项。
② 网络名称。
③ 无线网络的密码。
下一步将在 /etc/rc.conf 文件中配置无线连接。
要使用静态地址,需要执行以下命令:
xxxxxxxxxx# sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0"要使用动态地址,需要执行以下命令:
xxxxxxxxxx# sysrc ifconfig_wlan0="WPA DHCP"然后执行以下命令重新启动网络:
xxxxxxxxxx# service netif restartxxxxxxxxxx有关如何执行更高级的身份验证方法的更多信息,请访问 【34.4. 无线高级身份验证】。xxxxxxxxxx重要的是,用户在没有任何身份验证的情况下连接到开放网络时要非常小心。完成无线网络扫描并选择无线网络的SSID后,执行以下命令:
xxxxxxxxxx# ifconfig wlan0 ssid SSID然后执行 dhclient(8) 以获取配置的地址:
xxxxxxxxxx# dhclient wlan0有线连接提供更好的性能和可靠性,而无线连接提供灵活性和移动性。笔记本电脑用户通常希望在两种连接之间无缝漫游。
在FreeBSD上,可以以“故障转移”(failover)的方式将两个甚至多个网络接口组合在一起。这种配置使用一组网络接口中最优选和可用的连接,当链路状态发生变化时,操作系统会自动切换。
链路聚合和故障转移在【34.9. 链路聚合和失效转移】中有所介绍,在【示例46. 以太网和无线接口之间的故障转移模式】下提供了使用有线和无线连接的示例。
主机名表示网络上主机的完全限定域名(FQDN)。
xxxxxxxxxx如果没有为主机设置主机名,FreeBSD将称自己为 `Amnesiac` 。hostname(1) 可用于检查当前主机名:
xxxxxxxxxx$ hostnamefreebsdhostname.example.com要更改主机的主机名并在重新启动后保持不变,请执行以下命令:
xxxxxxxxxx# sysrc hostname="freebsdhostname.example.com"DNS可以被理解为一个电话簿(telephone directory),其中IP被标识为主机名,反之亦然。
有三个文件处理FreeBSD系统如何与DNS交互。这三个文件是 hosts(5) 、 resolv.conf(5) 和 nsswitch.conf(5) 。
除非 /etc/nsswitch.conf 文件中另有说明,否则FreeBSD将查看 /etc/hosts 文件中的地址,然后查看 /etc/resolv.conf 文件中的DNS信息。
xxxxxxxxxxnsswitch.conf(5) 文件指定nsdispatch(名称服务交换机调度器)应如何操作。默认情况下,/etc/nsswitch.conf文件的hosts部分如下: hosts: files dns例如,在使用 nscd(8) 服务的情况下。通过将行保留如下,可以更改优先顺序: hosts: files cache dns/etc/hosts 文件是一个简单的文本数据库,它提供主机名到IP地址的映射。通过局域网连接的本地计算机的条目可以添加到此文件中,以实现简单的命名目的,而不是设置DNS服务器。此外, /etc/hosts 可用于提供互联网名称的本地记录,从而减少了查询外部DNS服务器以获取常用名称的需要。
例如,在本地环境中有 www/gitlab-ce 的本地实例的情况下,可以按如下方式将其添加到 /etc/hosts 文件中:
xxxxxxxxxx192.168.1.150 git.example.com gitFreeBSD系统如何访问互联网域名系统(DNS)由 resolv.conf(5) 控制。
/etc/resolv.conf 中最常见的条目是:
nameserver
解析器应查询的名称服务器的IP地址。按照列出的顺序查询服务器,最多三个。
search
主机名查找的搜索列表。这通常由本地主机名的域决定。
domain
本地域名。
典型的 /etc/resolv.conf 如下:
xxxxxxxxxxsearch example.comnameserver 147.11.1.11nameserver 147.11.100.30xxxxxxxxxx只能使用 `search` 和 `domain` 选项中的一个。使用DHCP时, dhclient(8) 通常会用从DHCP服务器接收到的信息重写 /etc/resolv.conf 。
如果正在进行配置的计算机不是DNS服务器,则可以使用 localunbound(8) 来提高DNS查找性能。
要在启动时启用它,请执行以下命令:
xxxxxxxxxx# sysrc local_unbound_enable="YES"要启动 local-unbound(8) 服务,请执行以下命令:
xxxxxxxxxx# service local_unbound start在排除硬件和软件配置故障时,请先检查简单的事情。
xxxxxxxxxx在发送错误报告之前,请务必查看FreeBSD发布页面中的硬件说明,将FreeBSD版本更新到最新的STABLE版本,查看邮件列表存档,并搜索互联网。如果卡工作正常,但性能不佳,请通读 tuning(7) 。此外,请检查网络配置,因为不正确的网络设置会导致连接速度变慢。
如果系统无法将数据包路由到目标主机,则会出现 No route to host 消息。如果没有指定默认路由或拔下电缆,则可能会发生这种情况。检查 netstat -rn 的输出,并确保有到主机的有效路由。如果没有,请阅读【34.2. 网关和路由】。
ping: sendto: Permission denied 错误消息通常是由配置错误的防火墙引起的。如果FreeBSD上启用了防火墙,但没有定义任何规则,默认策略是拒绝所有流量,甚至 ping(8) 。有关更多信息,请参阅【33. 防火墙】。
本节介绍了一些帮助解决常见无线网络问题的步骤。
ping(8) 等工具诊断网络配置。wlandebug(8) 在802.11协议支持层中启用调试消息。