> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/man8/ifconfig.8.md).

# ifconfig.8

`ifconfig` — 配置网络接口参数

## 名称

`ifconfig`

## 概要

`ifconfig [-j jid] [-DkLmn] [-f type:format] interface [create] [address_family [address [dest_address]]] [parameters]` `ifconfig [-j jid] interface destroy` `ifconfig [-j jid] -a [-dDkLmuv] [-f type:format] [-G groupname] [-g groupname] [address_family]` `ifconfig -C` `ifconfig [-j jid] -g groupname` `ifconfig [-j jid] -l [-du] [-g groupname] [address_family]` `ifconfig [-j jid] [-dkLmuv] [-f type:format]`

## 描述

`ifconfig` 工具用于为网络接口分配地址和/或配置网络接口参数。必须在引导时使用 `ifconfig` 工具来定义机器上每个接口的网络地址；也可在稍后用于重新定义接口的地址或其他操作参数。

可用选项如下：

**`-a`** 显示系统中所有接口的信息。`-a` 标志可代替 `interface` 参数使用。

**`-C`** 列出系统上所有可用的接口克隆器，不显示其他信息。此标志与所有其他标志和命令互斥。

**`-d`** 仅显示处于 down 状态的接口。

**`-D`** 在输出中包含接口的驱动程序名称和单元号。这通常是接口的原始名称，即使已被重命名；但在某些情况下（如 [epair(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/epair.4.md)）可能与原始名称不同。

**`-f`** `type`:`format`\[,`type`:`format` ...] 控制 `ifconfig` 的输出格式。格式指定为以逗号分隔的 `type`:`format` 对列表（参见实例章节了解更多信息）。输出格式也可通过 `IFCONFIG_FORMAT` 环境变量指定。`-f` 标志可多次提供。`type` 及其关联的 `format` 字符串如下：

addr 调整 inet 和 inet6 地址的显示：

**`default`** 默认格式，`numeric` **`fqdn`** 完全限定域名（FQDN） **`host`** 不限定的主机名 **`numeric`** 数字格式

ether 调整链路层以太网（MAC）地址的显示：

**`colon`** 以冒号分隔地址段 **`dash`** 以连字符分隔地址段 **`dotted`** 点分表示法，例如：`5254.0015.4a3b` **`default`** 默认格式，`colon`

inet 调整 inet 地址子网掩码的显示：

**`cidr`** CIDR 表示法，例如：`203.0.113.224/26` **`default`** 默认格式，`hex` **`dotted`** 点分四组表示法，例如：`255.255.255.192` **`hex`** 十六进制格式，例如：`0xffffffc0`

inet6 调整 inet6 地址前缀（子网掩码）的显示：

**`cidr`** CIDR 表示法，例如：`::1/128` 或 `fe80::1%lo0/64` **`default`** 默认格式，`numeric` **`numeric`** 整数格式，例如：`prefixlen 64`

此外，接受以下快捷方式：

**`addr`** 调整 inet 和 inet6 地址的显示：

**`ether`** 调整链路层以太网（MAC）地址的显示：

**`inet`** 调整 inet 地址子网掩码的显示：

**`inet6`** 调整 inet6 地址前缀（子网掩码）的显示：

**`default`** 将所有格式重置为默认值。

**`cidr`** `inet:cidr,inet6:cidr` 的快捷方式。

**`ether`** 与 `link` 同义（有某些例外，参见 `-l`）

**`inet`** 默认，如果可用。

**`inet6`**

**`link`** 默认，如果 `inet` 不可用。

**`lladdr`** 与 `link` 同义。

**`-G`** `groupname` 从输出中排除指定 `groupname` 的成员。仅应指定一个 `-G` 选项，因为后面的会覆盖前面的。`groupname` 可包含 shell 模式，此时应加引号。将 `groupname` 设置为 `all` 选择所有接口。

**`-g`** `groupname` 将输出限制为指定 `groupname` 的成员。如果在 `-a`、`-l` 或 `-C` 等其他重要标志之前指定 `-g`，则 `ifconfig` 列出属于 `groupname` 的接口名称。此情况下忽略其他所有标志和参数。仅应指定一个 `-g` 选项，因为后面的会覆盖前面的。`groupname` 可包含 shell 模式，此时应加引号。将 `groupname` 设置为 `all` 选择所有接口。

**`-j`** `jid` 在 `jid` 指定的 jail 中执行操作。`jid` 可以是 jail 名称或数字 jail ID。`ifconfig` 工具会在命令行中遇到该选项时立即附加到指定的 jail。该选项可多次指定以附加到嵌套的 jail（jail 中的 jail）。这使得即使在 jail 内部没有 `ifconfig` 二进制文件，也能在 vnet jail 中配置网络接口。

**`-k`** 打印 `interface` 的密钥信息（如果可用）。例如，如果当前用户有权访问，将打印 802.11 WEP 密钥的值和 [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 的密码短语。此信息默认不打印，因为可能被视为敏感信息。

**`-L`** 以时间偏移字符串显示 IPv6 地址的地址生存期。

**`-l`** 列出系统上所有可用的接口，不显示其他信息。如果指定了 `address_family`，则仅列出该类型的接口。如果 `address_family` 设为 `ether`，则 `-l` 会从以太网接口列表中排除环回接口。这是一个特殊情况，因为 `link` 地址族的所有其他同义词都会在列表中包含环回接口。此标志与所有其他标志和命令互斥，但 `-d`、`-g` 和 `-u` 除外。

**`-m`** 显示指定接口的能力列表和所有支持的媒体。

**`-n`** 禁用自动加载网络接口驱动程序。默认情况下，如果网络接口驱动程序不在内核中，`ifconfig` 会尝试加载它。

**`-u`** 仅显示处于 up 状态的接口。

**`-v`** 获取接口的更详细状态。

**`address`** 对于 inet 地址族，地址可以是主机名数据库 [hosts(5)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man5/hosts.5.md) 中存在的主机名，或以 Internet 标准“点分表示法”表示的 IPv4 地址。也可使用 CIDR 表示法（又称斜线表示法）来包含网络掩码。即可以指定如 `192.168.0.1/16` 的地址。对于 `inet6` 地址族，也可使用斜线表示法指定前缀长度，如 `::1/128`。参见下文的 `prefixlen` 参数了解更多信息。链路层（`link`）地址指定为一系列以冒号分隔的十六进制数字。这可用于例如在以太网接口上设置新的 MAC 地址，但所用机制并非以太网特有。使用 `random` 关键字设置随机生成的 MAC 地址。随机生成的 MAC 地址可能与网络中已使用的地址相同。这种重复极不可能发生。如果在修改链路层地址时接口已处于 up 状态，则会短暂将其关闭再重新启用，以确保底层以太网硬件中的接收过滤器被正确重编程。

**`address_family`** 指定地址族，影响其余参数的解释。由于接口可以接收具有不同命名方案的不同协议的传输，建议指定地址族。当前支持的地址或协议族为：

**`dest_address`** 指定点对点链路另一端对应方的地址。

**`interface`** 此参数为“name unit”形式的字符串，例如“`em0`”。

未提供可选参数时，`ifconfig` 工具显示网络接口的当前配置。如果指定了协议族，`ifconfig` 将仅报告特定于该协议族的详细信息。

未给出参数时，隐含 `-a`。

仅超级用户可修改网络接口的配置。

## 参数

以下 `parameter` 可用 `ifconfig` 设置：

**`add`** `alias` 参数的另一个名称。为与 BSD/OS 兼容而引入。

**`alias`** 为此接口建立额外的网络地址。这在更改网络号时有时很有用，且希望接受发往旧接口的分组。如果地址与此接口的第一个网络地址在同一子网，则必须给出不冲突的网络掩码。通常 `0xffffffff` 最为合适。

**`-alias`** 移除指定的网络地址。如果你错误地指定了别名或不再需要它，可使用此参数。如果你错误地设置了 NS 地址并因此指定了主机部分，移除所有 NS 地址将允许你重新指定主机部分。

**`anycast`** （仅 inet6。）指定配置的地址为任播地址，如 RFC 4291 第 2.6 节所述。任播地址不会用作任何传出 IPv6 分组的源地址，除非应用程序显式绑定到该地址。

**`arp`** 启用地址解析协议（arp(4)）在网络层地址和链路层地址之间的映射（默认）。目前这用于 Internet 协议地址与 IEEE 802 48 位 MAC 地址（以太网地址）之间的映射。

**`-arp`** 禁用地址解析协议（arp(4)）的使用。

**`staticarp`** 如果启用了地址解析协议，主机仅回复对其自身地址的请求，且从不发送任何请求。

**`-staticarp`** 如果启用了地址解析协议，主机将正常工作，发送请求并监听回复。

**`stickyarp`** 为接口启用所谓的粘性 ARP 模式。如果在给定接口上启用此选项，任何已解析的地址都会被标记为静态地址且永不过期。这可用于通过防止 ARP 欺骗来提高网络安全性，或减少 ARP 解析时间过长的高性能以太网网络的延迟。请注意，网桥也提供了类似功能。参见网桥接口参数章节中的 sticky 选项。启用此选项可能影响依赖 ARP 过期/覆盖特性的技术，如负载均衡器或 [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 等高可用性解决方案。

**`-stickyarp`** 为接口禁用所谓的粘性 ARP 模式（默认）。已解析的地址将正常遵循内核 ARP 配置而过期。

**`broadcast`** （仅 inet。）指定用于向网络表示广播的地址。默认广播地址是主机部分全为 1 的地址。

**`debug`** 启用驱动程序相关的调试代码；通常这会开启额外的控制台错误日志。

**`-debug`** 禁用驱动程序相关的调试代码。

**`allmulti`** 为多播分组启用混杂模式。

**`-allmulti`** 禁用多播分组的混杂模式。

**`promisc`** 将接口置于永久混杂模式。

**`-promisc`** 禁用永久混杂模式。

**`delete`** `-alias` 参数的另一个名称。

**`description`** `value`, `descr` `value` 指定接口的描述。这可用于在接口可能难以区分的情况下为接口加标签。

**`-description`**, **`-descr`** 清除接口描述。

**`down`** 将接口标记为“down”。当接口被标记为“down”时，系统不会尝试通过该接口传输消息。如果可能，接口也会被重置以禁用接收。此操作不会自动禁用使用该接口的路由。

**`group`** `groupname` 将接口分配到“组”。`groupname` 不能超过 15 个字符且不得以数字结尾。任何接口都可以属于多个组。克隆的接口默认是其接口家族组的成员。例如，*vlan10* 这样的 VLAN 接口是 VLAN 接口家族组 *vlan* 的成员。

**`-group`** `groupname` 从给定“组”中移除接口。

**`eui64`** （仅 inet6。）自动填充接口索引（IPv6 地址的最低 64 位）。

**`fib`** `fib_number` 指定接口 FIB。FIB `fib_number` 分配给在该接口上接收的所有帧或分组。FIB 不会被继承，例如 VLAN 或其他子接口将使用默认 FIB (0)，而不管父接口的 FIB。需要使用 `ROUTETABLES` 内核配置选项或 `net.fibs` 可调参数调整内核以支持多于默认的 FIB。

**`tunnelfib`** `fib_number` 指定隧道 FIB。FIB `fib_number` 分配给隧道接口封装的所有分组，例如 [gif(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gif.4.md)、[gre(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gre.4.md)、[vxlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vxlan.4.md) 和 [wg(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/wg.4.md)。

**`maclabel`** `label` 如果内核启用了强制访问控制支持，将 MAC 标签设置为 `label`。

**`media`** `type` 如果驱动程序支持媒体选择系统，将接口的媒体类型设置为 `type`。某些接口支持互斥使用多个不同物理媒体连接器中的一个。例如，一个 10Mbit/s 以太网接口可能支持使用 AUI 或双绞线连接器。将媒体类型设置为 `10base5/AUI` 会将当前活动连接器更改为 AUI 端口。设置为 `10baseT/UTP` 会激活双绞线。有关可用类型的完整列表，请参阅接口驱动程序相关文档或手册页。

**`mediaopt`** `opts` 如果驱动程序支持媒体选择系统，在接口上设置指定的媒体选项。`opts` 参数是要应用于接口的以逗号分隔的选项列表。有关可用选项的完整列表，请参阅接口驱动程序相关手册页。

**`-mediaopt`** `opts` 如果驱动程序支持媒体选择系统，在接口上禁用指定的媒体选项。

**`mode`** `mode` 如果驱动程序支持媒体选择系统，将接口的指定操作模式设置为 `mode`。对于支持多种操作模式的 IEEE 802.11 无线接口，此指令用于在 802.11a (`11a`)、802.11b (`11b`) 和 802.11g (`11g`) 操作模式之间选择。

**`txrtlmt`** 如果驱动程序支持发送速率限制，则设置。

**`inst`** `minst`, **`instance`** `minst` 将媒体实例设置为 `minst`。这对于具有多个物理层接口（PHY）的设备很有用。

**`name`** `name` 将接口名称设置为 `name`。`name` 不能超过 15 个字符。

**`rxcsum`**, **`txcsum`**, **`rxcsum6`**, **`txcsum6`** 如果驱动程序支持用户可配置的校验和卸载，在接口上启用接收（或发送）校验和卸载。该功能可按协议族选择性地开启。对 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 使用 `rxcsum6`, `txcsum6`，否则使用 `rxcsum`, `txcsum`。某些驱动程序可能无法相互独立地启用这些标志，因此设置一个可能也会设置另一个。驱动程序将卸载其能可靠支持的尽可能多的校验和工作，确切的卸载级别因驱动程序而异。

**`-rxcsum`**, **`-txcsum`**, **`-rxcsum6`**, **`-txcsum6`** 如果驱动程序支持用户可配置的校验和卸载，在接口上禁用接收（或发送）校验和卸载。该功能可按协议族选择性地关闭。对 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 使用 `-rxcsum6`, `-txcsum6`，否则使用 `-rxcsum`, `-txcsum`。这些设置可能并不总是相互独立的。

**`tso`** 如果驱动程序支持 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 分段卸载，在接口上启用 TSO。某些驱动程序可能无法同时为 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 和 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 分组支持 TSO，因此可能仅启用其中之一。

**`-tso`** 如果驱动程序支持 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 分段卸载，在接口上禁用 TSO。它将始终禁用 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 和 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 的 TSO。

**`tso6`**, **`tso4`** 如果驱动程序支持 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 或 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 的 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 分段卸载，可使用其中一个仅为一个协议族选择性地启用。

**`-tso6`**, **`-tso4`** 如果驱动程序支持 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 或 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 的 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 分段卸载，可使用其中一个仅为一个协议族选择性地禁用。

**`lro`** 如果驱动程序支持 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 大接收卸载，在接口上启用 LRO。

**`-lro`** 如果驱动程序支持 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 大接收卸载，在接口上禁用 LRO。

**`txtls`** 发送 TLS 卸载加密传输层安全（TLS）记录，并将加密记录分段为通过 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 或 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 的一个或多个 [tcp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/tcp.4.md) 分段。如果驱动程序支持发送 TLS 卸载，在接口上启用发送 TLS 卸载。某些驱动程序可能无法同时为 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 和 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 分组支持发送 TLS 卸载，因此可能仅启用其中之一。

**`-txtls`** 如果驱动程序支持发送 TLS 卸载，在接口上禁用发送 TLS 卸载。它将始终禁用 [ip(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip.4.md) 和 [ip6(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/ip6.4.md) 的 TLS。

**`txtlsrtlmt`** 为 TLS 卸载启用速率限制（分组调速）。

**`-txtlsrtlmt`** 为 TLS 卸载禁用速率限制。

**`mextpg`** 如果驱动程序支持扩展多页 [mbuf(9)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man9/mbuf.9.md) 缓冲区，在接口上启用它们。

**`-mextpg`** 如果驱动程序支持扩展多页 [mbuf(9)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man9/mbuf.9.md) 缓冲区，在接口上禁用它们。

**`wol`**, **`wol_ucast`**, **`wol_mcast`**, **`wol_magic`** 启用局域网唤醒（WOL）支持（如果可用）。WOL 是一种使处于低功耗状态的机器可在收到分组时被唤醒的机制。有三种类型的分组可唤醒系统：ucast（仅定向到该机器的 MAC 地址）、mcast（定向到广播或多播地址）或 magic（具有“魔术内容”的单播或多播帧）。并非所有设备都支持 WOL，支持的设备会在其能力中指明所支持的机制。`wol` 是启用所有可用 WOL 机制的同义词。要禁用 WOL，使用 `-wol`。

**`vlanmtu`**, **`vlanhwtag`**, **`vlanhwfilter`**, **`vlanhwcsum`**, **`vlanhwtso`** 如果驱动程序提供用户可配置的 VLAN 支持，分别启用扩展帧接收、硬件标签处理、硬件帧过滤、校验和卸载或 VLAN 上的 TSO。注意，这必须在与 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 关联的物理接口上配置，而不是在 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口本身上。

**`-vlanmtu`**, **`-vlanhwtag`**, **`-vlanhwfilter`**, **`-vlanhwcsum`**, **`-vlanhwtso`** 如果驱动程序提供用户可配置的 VLAN 支持，分别禁用扩展帧接收、硬件标签处理、硬件帧过滤、校验和卸载或 VLAN 上的 TSO。

**`vxlanhwcsum`**, **`vxlanhwtso`** 如果驱动程序提供用户可配置的 VXLAN 支持，分别启用内部校验和卸载（接收和发送）或 VXLAN 上的 TSO。注意，这必须在与 [vxlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vxlan.4.md) 关联的物理接口上配置，而不是在 [vxlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vxlan.4.md) 接口本身上。物理接口要么是指定为 vxlandev 的接口，要么是承载 vxlanlocal 地址的接口。驱动程序将卸载其能可靠支持的尽可能多的校验和工作和 TSO，确切的卸载级别可能因驱动程序而异。

**`-vxlanhwcsum`**, **`-vxlanhwtso`** 如果驱动程序提供用户可配置的 VXLAN 支持，分别禁用校验和卸载（接收和发送）或 VXLAN 上的 TSO。

**`vnet`** `jail` 将接口移动到按名称或 JID 指定的 [jail(8)](/man/man8/jail.8.md) 中。如果 jail 具有虚拟网络栈，接口将从当前环境消失并对 jail 可见。

**`-vnet`** `jail` 从按名称或 JID 指定的 [jail(8)](/man/man8/jail.8.md) 中收回接口。如果 jail 具有虚拟网络栈，接口将从 jail 中消失，并对当前网络环境可见。

**`polling`** 如果驱动程序支持此模式，开启 [polling(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/polling.4.md) 功能并禁用接口上的中断。

**`-polling`** 关闭 [polling(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/polling.4.md) 功能并在接口上启用中断模式。

**`create`** 创建指定的网络伪设备。如果给出的接口不带单元号，尝试创建一个具有任意单元号的新设备。如果任意设备创建成功，新设备名称将输出到标准输出，除非在同一 `ifconfig` 调用中接口被重命名或销毁。

**`destroy`** 销毁指定的网络伪设备。

**`plumb`** `create` 参数的另一个名称。为与 Solaris 兼容而引入。

**`unplumb`** `destroy` 参数的另一个名称。为与 Solaris 兼容而引入。

**`metric`** `n` 将接口的路由度量设置为 `n`，默认为 0。路由度量由路由协议（[routed(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/routed.8.md)）使用。较高的度量会使路由较不受欢迎；度量被计为到目标网络或主机的额外跳数。

**`mtu`** `n` 将接口的最大传输单元设置为 `n`，默认值因接口而异。MTU 用于限制接口上传输的分组大小。并非所有接口都支持设置 MTU，某些接口有范围限制。

**`netmask`** `mask` （仅 inet。）指定为将网络细分为子网而保留多少地址。掩码包括本地地址的网络部分和子网部分，后者取自主机字段。掩码可以指定为带前导 `0x` 的单个十六进制数、点分表示法的 Internet 地址，或网络表 [networks(5)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man5/networks.5.md) 中列出的伪网络名。掩码在 32 位地址中为网络和子网部分的位位置包含 1，为主机部分包含 0。掩码应至少包含标准网络部分，子网字段应与网络部分连续。网络掩码也可在地址后以 CIDR 表示法指定。参见上文的 `address` 选项了解更多信息。

**`prefixlen`** `len` （仅 inet6。）指定保留 `len` 位用于将网络细分为子网。`len` 必须为整数，出于语法原因必须在 0 到 128 之间。在当前 IPv6 分配规则下，几乎总是 64。如果省略此参数，则使用 64。前缀也可在地址后使用斜线表示法指定。参见上文的 `address` 选项了解更多信息。

**`remove`** `-alias` 参数的另一个名称。为与 BSD/OS 兼容而引入。

**`link`** \[`0`-`2`] 启用接口链路层的特殊处理。这三个选项的实际效果因接口而异，但通常用于选择特殊操作模式。例如启用 SLIP 压缩，或为某些以太网卡选择连接器类型。有关更多信息，请参阅特定驱动程序的手册页。

**`-link`** \[`0`-`2`] 在指定接口上禁用链路层的特殊处理。

**`monitor`** 将接口置于监控模式。不传输分组，接收的分组在 [bpf(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/bpf.4.md) 处理后被丢弃。

**`-monitor`** 将接口从监控模式中取出。

**`pcp`** `priority_code_point` 优先级代码点（`PCP`）是一个 3 位字段，对应 IEEE 802.1p 服务类别，并映射到帧优先级级别。

**`-pcp`** 停止在接口上用优先级代码点标记分组。

**`up`** 将接口标记为“up”。这可用于在“`ifconfig` `down`”之后启用接口。在接口上设置第一个地址时会自动执行此操作。如果接口先前被标记为 down 时被重置，硬件将被重新初始化。

### ICMPv6 邻居发现协议参数

以下参数用于 ICMPv6 邻居发现协议。注意，它们需要地址族关键字“`inet6`”：

**`0`** 使用接口名字符串（默认） **`1`** 使用接口 ID **`2`** 使用接口的 MAC 地址（如果可获取）

**`accept_rtadv`** 设置标志以启用接受 ICMPv6 路由器通告消息。[sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.accept_rtadv` 控制此标志是否默认设置。

**`-accept_rtadv`** 清除 `accept_rtadv` 标志。

**`no_radr`** 设置标志以控制系统是否将接受其路由器通告消息的路由器添加到默认路由器列表。当 `accept_rtadv` 标志被禁用时，此标志无效。[sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.no_radr` 控制此标志是否默认设置。

**`-no_radr`** 清除 `no_radr` 标志。

**`auto_linklocal`** 设置标志以在接口可用时执行自动链路本地地址配置。[sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.auto_linklocal` 控制此标志是否默认设置。

**`-auto_linklocal`** 清除 `auto_linklocal` 标志。

**`defaultif`** 在没有默认路由器时将指定接口设置为默认路由。

**`-defaultif`** 清除 `defaultif` 标志。

**`ifdisabled`** 设置标志以禁用指定接口上的所有 IPv6 网络通信。注意，如果该接口上已有配置的 IPv6 地址，当此标志被清除时，所有这些地址都会被标记为“tentative”并将执行 DAD。

**`-ifdisabled`** 清除 `ifdisabled` 标志。当此标志被清除且 `auto_linklocal` 标志被启用时，将执行链路本地地址的自动配置。

**`nud`** 设置标志以启用邻居不可达检测。

**`-nud`** 清除 `nud` 标志。

**`no_prefer_iface`** 设置标志以不遵循 RFC 3484 中的源地址选择规则 5。实际上，这意味着不优先使用传出接口上的地址，而是将决定权交给可通过 ip6addrctl(8) 配置的地址选择策略表。

**`-no_prefer_iface`** 清除 `no_prefer_iface` 标志。

**`no_dad`** 设置标志以禁用重复地址检测。

**`-no_dad`** 清除 `no_dad` 标志。

**`stableaddr`** 设置标志以根据 RFC 7217 使用稳定算法创建 SLAAC 地址。[sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.use_stableaddr` 控制新创建接口是否默认设置此标志。要为引导时创建的接口获得一致的默认值，应通过 loader.conf(8) 将其设置为可调参数。[sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.stableaddr_maxretries` 设置在 DAD 失败情况下生成唯一 IPv6 地址的最大重试次数。默认为 3，这也是推荐的最小值。接口 ID 源可使用 [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet6.ip6.stableaddr_netifsource` 配置：

**`-stableaddr`** 清除 `stableaddr` 标志。

### IPv6 参数

以下参数特定于 IPv6 地址。注意，它们需要地址族关键字“`inet6`”：

**`autoconf`** 设置 IPv6 自动配置地址位。

**`-autoconf`** 清除 IPv6 自动配置地址位。

**`deprecated`** 设置 IPv6 弃用地址位。

**`-deprecated`** 清除 IPv6 弃用地址位。

**`pltime`** `n` 设置地址的首选生存期。

**`prefer_source`** 设置标志以优先将该地址作为传出分组的源地址候选。

**`-prefer_source`** 清除 `prefer_source` 标志。

**`vltime`** `n` 设置地址的有效生存期。

### IEEE 802.11 无线接口克隆参数

以下参数特定于使用 `create` 请求克隆 IEEE 802.11 无线接口：

**`wlandev`** `device` 使用 `device` 作为克隆设备的父设备。

**`wlanmode`** `mode` 指定此克隆设备的操作模式。`mode` 为 `sta`、`ahdemo`（或 `adhoc-demo`）、`ibss`（或 `adhoc`）、`ap`（或 `hostap`）、`wds`、`tdma`、`mesh` 和 `monitor` 之一。克隆接口的操作模式无法更改。`tdma` 模式实际上是具有特殊属性的 `adhoc-demo` 接口。

**`wlanbssid`** `bssid` 用于 bssid 的 802.11 MAC 地址。对于传统 `wds` 设备，必须在创建时指定。

**`wlanaddr`** `address` 本地 MAC 地址。如果未指定，将自动为克隆设备分配一个 MAC 地址。通常此地址与父设备的地址相同，但如果指定了 `bssid` 参数，驱动程序将为该设备构造一个唯一地址（如果支持）。

**`wdslegacy`** 将 `wds` 设备标记为以“legacy 模式”运行。Legacy `wds` 设备具有固定的对端关系，例如，如果其对端停止通信，它们不会漫游。为完整性起见，动态 WDS (DWDS) 接口可标记为 `-wdslegacy`。

**`bssid`** 请求为克隆设备提供唯一的本地 MAC 地址。这仅在设备支持多个 MAC 地址时可能。要强制使用父设备的 MAC 地址，使用 `-bssid`。

**`beacons`** 将克隆接口标记为依赖硬件支持来跟踪接收的信标。要在软件中跟踪信标，使用 `-beacons`。对于 `hostap` 模式，`-beacons` 也可用于指示不应传输信标；这在创建 WDS 配置时很有用，但 `wds` 接口只能作为接入点的伴随接口创建。

### 克隆的 IEEE 802.11 无线接口参数

以下参数特定于通过 `create` 操作克隆的 IEEE 802.11 无线接口：

**`a`** 802.11a **`b`** 802.11b **`d`** Atheros 动态 Turbo 模式 **`g`** 802.11g **`h`** 与 `n` 相同 **`n`** 802.11n 即 HT **`s`** Atheros 静态 Turbo 模式 **`t`** Atheros 动态 Turbo 模式，或附加到 `st` 和 `dt` 之后

**`5`** 5MHz 即四分之一速率信道 **`10`** 10MHz 即半速率信道 **`20`** 20MHz 主要用于指定 `ht20` **`40`** 40MHz 主要用于指定 `ht40`

**`A`** 信道敏捷性。

**`B`** PBCC 调制。

**`C`** 轮询请求能力。

**`D`** DSSS/OFDM 能力。

**`E`** 扩展服务集（ESS）。指示站点是基础设施网络而非 IBSS/ad-hoc 网络的一部分。

**`I`** 独立基本服务集（IBSS）。指示站点是 ad-hoc 网络而非 ESS 网络的一部分。

**`P`** 隐私能力。站点要求在 BSS 内交换的所有数据帧使用加密手段（如 WEP、TKIP 或 AES-CCMP）进行认证和加密。

**`R`** 稳健安全网络（RSN）。

**`S`** 短前导码。指示网络使用短前导码（在 802.11b High Rate/DSSS PHY 中定义），并使用 56 位同步字段而非长前导码模式中使用的 128 位字段。短前导码用于可选地改善 802.11g 和 802.11b 的吞吐量性能。

**`c`** 可轮询能力。

**`s`** 短时隙能力。指示 802.11g 网络使用短时隙，因为不存在传统（802.11b）站点。

**`A`** 已授权。指示站点被允许发送/接收数据帧。

**`E`** 扩展速率物理层（ERP）。指示站点在使用扩展发送速率的 802.11g 网络中运行。

**`H`** 高吞吐量（HT）。指示站点使用 HT 发送速率。如果后面紧跟“`+`”，则站点使用仅在启用 `htcompat` 时支持的已弃用机制进行关联。

**`P`** 省电。指示站点以省电模式运行。

**`Q`** 服务质量（QoS）。指示站点对数据帧使用 QoS 封装。QoS 封装仅在启用 WME 模式时启用。

**`S`** HT 40MHz 模式下启用短 GI。如果后面紧跟“`+`”，则 HT 20MHz 模式下也启用短 GI。

**`T`** 过渡安全网络（TSN）。指示站点使用 TSN 进行关联；另见下文的 `tsn`。

**`W`** Wi-Fi 保护设置（WPS）。指示站点使用 WPS 进行关联。

**`s`** HT 20MHz 模式下启用短 GI。

**`AC_BE`**（或 `BE`）尽力而为传输， **`AC_BK`**（或 `BK`）后台流量， **`AC_VI`**（或 `VI`）视频流量， **`AC_VO`**（或 `VO`）语音流量。

**`ack`** `ac` 设置本地站点 QoS 传输的 ACK 策略；这控制站点发送的数据帧是否需要接收站点的 ACK 响应。要禁用等待 ACK，使用 `-ack`。此参数仅应用于本地站点。

**`acm`** `ac` 为本地站点的传输启用强制准入控制（ACM）机制。要禁用 ACM，使用 `-acm`。在 BSS 中的站点上，此参数是只读的，指示从接入点接收的设置。注意：目前不支持 ACM。

**`aifs`** `ac` `count` 设置本地站点传输要使用的仲裁帧间间隔（AIFS）信道访问参数。在 BSS 中的站点上，此参数是只读的，指示从接入点接收的设置。

**`cwmin`** `ac` `count` 设置本地站点传输要使用的 CWmin 信道访问参数。在 BSS 中的站点上，此参数是只读的，指示从接入点接收的设置。

**`cwmax`** `ac` `count` 设置本地站点传输要使用的 CWmax 信道访问参数。在 BSS 中的站点上，此参数是只读的，指示从接入点接收的设置。

**`txoplimit`** `ac` `limit` 设置本地站点传输要使用的传输机会限制信道访问参数。此参数定义了 WME 站点有权在无线介质上发起传输的时间间隔。在 BSS 中的站点上，此参数是只读的，指示从接入点接收的设置。

**`bss:aifs`** `ac` `count` 设置要发送给 BSS 中站点的 AIFS 信道访问参数。此参数仅在 ap 模式下运行时有意义。

**`bss:cwmin`** `ac` `count` 设置要发送给 BSS 中站点的 CWmin 信道访问参数。此参数仅在 ap 模式下运行时有意义。

**`bss:cwmax`** `ac` `count` 设置要发送给 BSS 中站点的 CWmax 信道访问参数。此参数仅在 ap 模式下运行时有意义。

**`bss:txoplimit`** `ac` `limit` 设置要发送给 BSS 中站点的 TxOpLimit 信道访问参数。此参数仅在 ap 模式下运行时有意义。

**`ampdu`** 使用 802.11n 时启用发送和接收 AMPDU 帧（默认）。802.11n 规范规定合规站点必须能够接收 AMPDU 帧，但传输是可选的。使用 `-ampdu` 禁用 802.11n 的所有 AMPDU 使用。用于测试和/或解决互操作性问题，可使用 `ampdutx` 和 `ampdurx` 控制单方向的 AMPDU 使用。

**`ampdudensity`** `density` 设置使用 802.11n 操作时使用的 AMPDU 密度参数。此参数控制 AMPDU 帧的包间间隔。发送设备通常控制此设置，但接收站点可请求更宽的间隔。`density` 的合法值为 0、.25、.5、1、2、4、8 和 16（微秒）。值为 `-` 时与 0 相同。

**`ampdulimit`** `limit` 设置使用 802.11n 操作时接收 AMPDU 帧的分组大小限制。`limit` 的合法值为 8192、16384、32768 和 65536，但也可仅指定唯一前缀：8、16、32、64。注意发送方可将 AMPDU 帧的大小限制为小于接收站点指定的最大值。

**`amsdu`** 使用 802.11n 时启用发送和接收 AMSDU 帧。默认情况下，AMSDU 被接收但不发送。使用 `-amsdu` 禁用 802.11n 的所有 AMSDU 使用。用于测试和/或解决互操作性问题，可使用 `amsdutx` 和 `amsdurx` 控制单方向的 AMSDU 使用。

**`amsdulimit`** `limit` 设置使用 802.11n 操作时发送和接收 AMSDU 帧的分组大小限制。`limit` 的合法值为 7935 和 3839（字节）。注意发送方可将 AMSDU 帧的大小限制为小于接收站点指定的最大值。还请注意，设备不要求支持 7935 限制，规范仅要求支持 3839，较大的值可能需要专用更多内存来支持很少使用的功能。

**`apbridge`** 作为接入点运行时，直接在无线客户端之间传递分组（默认）。要让它们通过系统向上传递并使用其他机制转发，使用 `-apbridge`。当流量需要通过分组过滤处理时，禁用内部桥接很有用。

**`authmode`** `mode` 在基础设施模式下设置所需的认证模式。并非所有适配器都支持所有模式。有效模式集合为 `none`、`open`、`shared`（共享密钥）、`8021x`（IEEE 802.1x）和 `wpa`（IEEE WPA/WPA2/802.11i）。`8021x` 和 `wpa` 模式仅在使用认证服务（客户端操作时为请求方，或作为接入点运行时为认证方）时才有用。模式不区分大小写。

**`bgscan`** 作为站点运行时启用后台扫描。后台扫描是一种技术，即与接入点关联的站点会临时离开信道以扫描邻近站点。这允许站点维护附近接入点的缓存，从而使接入点之间的漫游无需漫长的扫描操作即可完成。后台扫描仅在站点不忙时进行，任何出站流量都会取消扫描操作。后台扫描不应导致分组丢失，但如果出站流量中断扫描操作，可能会有一些小延迟。默认情况下，如果设备有能力则启用后台扫描。要禁用后台扫描，使用 `-bgscan`。后台扫描由 `bgscanidle` 和 `bgscanintvl` 参数控制。漫游必须启用后台扫描；这是当前实现的产物，将来可能不需要。

**`bgscanidle`** `idletime` 设置站点必须空闲（不发送或接收帧）的最短时间，然后才会发起后台扫描。`idletime` 参数以毫秒为单位指定。默认情况下，站点必须至少空闲 250 毫秒才会发起后台扫描。空闲时间不能设置为少于 100 毫秒。

**`bgscanintvl`** `interval` 设置尝试后台扫描的间隔。`interval` 参数以秒为单位指定。默认情况下，每 300 秒（5 分钟）考虑一次后台扫描。`interval` 不能设置为少于 15 秒。

**`bintval`** `interval` 设置在 ad-hoc 或 ap 模式下运行时发送信标帧的间隔。`interval` 参数以 TU（1024 微秒）为单位指定。默认情况下，每 100 TU 发送一次信标帧。

**`bmissthreshold`** `count` 设置站点将尝试漫游（即搜索新接入点）的连续丢失信标数。`count` 参数必须在 1 到 255 范围内；但上限可能根据设备能力而降低。默认阈值为 7 个连续丢失信标；但这可能被设备驱动程序覆盖。`bmissthreshold` 参数的另一个名称是 `bmiss`。

**`bssid`** `address` 指定在 BSS 网络中作为站点运行时要使用的接入点的 MAC 地址。这会覆盖系统完成的任何自动选择。要禁用先前选择的接入点，为地址提供 `any`、`none` 或 `-`。当多个接入点使用相同 SSID 时，此选项很有用。`bssid` 参数的另一个名称是 `ap`。

**`burst`** 启用分组突发。分组突发是一种传输技术，即获取无线介质一次以发送多个帧，并减少帧间间隔。此技术可通过减少传输开销显著提高吞吐量。分组突发由 802.11e QoS 规范支持，某些不支持 QoS 的设备也可能支持。默认情况下，如果设备能够则启用分组突发。要禁用分组突发，使用 `-burst`。

**`chanlist`** `channels` 设置扫描接入点、IBSS 网络中的邻居或作为接入点运行时寻找空闲信道时要使用的所需信道。信道集合指定为以逗号分隔的列表，列表中每个元素表示单个信道号或“`a-b`”形式的范围。信道号必须在 1 到 255 范围内，且根据设备的操作特性是允许的。

**`channel`** `number` 设置单个所需信道。信道范围从 1 到 255，但确切可用选择取决于适配器制造的地区。将信道设置为 `any` 或“`-`”将清除任何所需信道，并且如果设备被标记为 up，则强制扫描要操作的信道。或者，可以指定以兆赫为单位的频率代替信道号。当有几种使用信道的方式时，信道号/频率可附加属性以澄清。例如，如果设备能够在信道 6 上使用 802.11n 和 802.11g 操作，则可以通过指定 `6:g` 来指定仅使用 g。类似地，可以通过附加“`/`”来指定信道宽度；例如，`6/40` 指定 40MHz 宽的信道。这些属性可以组合，如：`6:ht/40`。跟在“`:`”后面的完整标志集为：跟在 `/` 后面的完整信道宽度集为：此外，40MHz HT 信道规范可通过附加“`+`”或“`-`”来包括扩展信道的位置（分别表示上方和下方）；例如，`2437:ht/40+` 指定 40MHz 宽的 HT 操作，中心信道在频率 2437，扩展信道在上方。

**`country`** `name` 设置用于计算操作监管约束的国家代码。特别是，可用信道集合、无线设备在信道上的操作方式以及可在信道上使用的最大发送功率由此设置定义。国家/地区代码指定为 ISO 3166 定义的 2 字符缩写或使用更长但可能不明确的拼写；例如，“ES”和“Spain”。国家代码集合取自 **/etc/regdomain.xml** ，也可通过 `list countries` 请求查看。注意，并非所有设备都支持从默认设置更改国家代码；通常存储在 EEPROM 中。另见 `regdomain`、`indoor`、`outdoor` 和 `anywhere`。

**`dfs`** 启用 802.11h 中规定的动态频率选择（DFS）。DFS 包含多项功能，包括检测重叠雷达信号、动态发送功率控制和根据最少拥塞标准进行信道选择。在某些地区的某些 5GHz 频率（如 ETSI），DFS 支持是强制性的。默认情况下，根据 **/etc/regdomain.xml** 中指定的监管定义以及当前国家代码、regdomain 和信道启用 DFS。注意，底层设备（和驱动程序）必须支持雷达检测才能使完整的 DFS 支持工作。要完全符合当地监管机构的要求，需要 DFS 的频率不应使用，除非完全支持。使用 `-dfs` 可禁用此功能以进行测试。

**`dotd`** 启用对 802.11d 规范的支持（默认）。在站点模式下启用此支持时，通告与当前配置的国家代码不同的国家代码的信标帧将导致向用户应用程序分发事件。站点可使用此事件采用该国家代码并根据相关的监管约束进行操作。作为启用 802.11d 的接入点运行时，传输的信标和探测响应帧将通告当前的监管域设置。要禁用 802.11d，使用 `-dotd`。

**`doth`** 启用 802.11h 支持，包括频谱管理。启用 802.11h 时，信标和探测响应帧将在能力字段中设置 SpectrumMgt 位，并存在国家和功率约束信息元素。802.11h 支持还包括处理信道切换通告（CSA），这是一种由接入点协调信道更改的机制。默认情况下，如果设备有能力则启用 802.11h。要禁用 802.11h，使用 `-doth`。

**`deftxkey`** `index` 设置用于发送的默认密钥。通常这仅在使用 WEP 加密时设置。注意，必须设置默认发送密钥，系统才能知道使用哪个密钥加密出站流量。`weptxkey` 是此请求的别名；为向后兼容而提供。

**`dtimperiod`** `period` 设置在 ap 模式下运行时传输缓冲多播数据帧的 DTIM 周期。`period` 指定 DTIM 之间的信标间隔数，必须在 1 到 15 范围内。默认情况下 DTIM 为 1（即 DTIM 在每个信标处出现）。

**`quiet`** 启用使用 quiet IE。当在 5GHz 频率上运行且启用了 doth 支持时，hostap 将使用此功能使其他站点静音以减少雷达检测的干扰。使用 `-quiet` 禁用此功能。

**`quiet_period`** `period` 将 QUIET `period` 设置为由 Quiet 元素定义的定期安排的静默间隔开始之间的信标间隔数。

**`quiet_count`** `count` 将 QUIET `count` 设置为直到下一个静默间隔应开始的信标间隔的 TBTT 数。值为 1 表示静默间隔将在下一个 TBTT 开始的信标间隔期间开始。值 0 保留。

**`quiet_offset`** `offset` 将 QUIET `offset` 设置为静默间隔开始相对于 Quiet count 指定的 TBTT 的偏移量，以 TU 表示。`offset` 的值应小于一个信标间隔。

**`quiet_duration`** `dur` 将 QUIET `dur` 设置为 Quiet 间隔的持续时间，以 TU 表示。该值应小于信标间隔。

**`dturbo`** 启用与另一个具有动态 Turbo 能力的站点通信时使用 Atheros 动态 Turbo 模式。动态 Turbo 模式是 Atheros 特有的机制，站点通过它在正常 802.11 操作和“加速”模式之间切换，后者使用 40MHz 宽的信道进行通信。使用动态 Turbo 模式的站点仅在信道上没有非 dturbo 站点时才以加速模式运行；当在信道上识别到非 dturbo 站点时，所有站点将自动回退到正常操作。默认情况下，即使设备有能力也不启用动态 Turbo 模式。注意，turbo 模式（动态或静态）仅在某些信道上允许，具体取决于监管约束；使用 `list chan` 命令可识别可使用 turbo 模式的信道。要禁用动态 Turbo 模式，使用 `-dturbo`。

**`dwds`** 启用动态 WDS (DWDS) 支持。DWDS 是一种可在以基础设施模式运行的站点之间承载 4 地址流量的机制。站点首先关联到接入点并使用正常程序（如 WPA）进行认证。然后传递 4 地址帧以承载在无线链路任一侧运行的站点的流量。DWDS 通过利用现有安全协议并消除静态绑定来扩展正常的 WDS 机制。在接入点上启用 DWDS 时，从授权站点接收的 4 地址帧将向用户应用程序生成“DWDS 发现”事件。此事件应用于创建绑定到远程站点的 WDS 接口（通常并接入网桥）。一旦 WDS 接口启动并运行，4 地址流量就在逻辑上通过该接口流动。在站点上启用 DWDS 时，目标地址不同于对端站点的流量被封装在 4 地址帧中并发送到对端。所有 4 地址流量使用站点的安全信息（如加密密钥）。使用 802.11n 功能关联的站点可使用这些相同机制传输 4 地址流量；这取决于可用资源和设备能力。DWDS 实现可防止多播流量的二层路由循环。

**`ff`** 启用与另一个具有快速帧能力的站点通信时使用 Atheros 快速帧。快速帧是一种封装技术，即两个 802.3 帧在单个 802.11 帧中传输。这可显著提高吞吐量，但要求接收站点知道如何解封装帧。快速帧的使用通过 Atheros 802.11 供应商特定的协议扩展来协商，因此与非 Atheros 设备通信时启用使用是安全的。默认情况下，如果设备有能力则启用快速帧。要显式禁用快速帧，使用 `-ff`。

**`fragthreshold`** `length` 设置将传输帧分片的阈值。`length` 参数是以字节为单位的帧大小，必须在 256 到 2346 范围内。将 `length` 设置为 `2346`、`any` 或 `-` 可禁用发送分片。并非所有适配器都遵守分片阈值。

**`hidessid`** 作为接入点运行时，不要在信标帧中广播 SSID，也不要响应探测请求帧，除非它们是定向到 ap 的（即它们包含 ap 的 SSID）。默认情况下，SSID 包含在信标帧中，并回答非定向的探测请求帧。要重新启用 SSID 的广播等，使用 `-hidessid`。

**`ht`** 使用 802.11n 时启用高吞吐量（HT）的使用（默认）。802.11n 规范包括使用不同于 802.11b、802.11g 和 802.11a 中规定的信号机制在 20MHz 和 40MHz 宽信道上操作的机制。站点在关联时协商使用这些功能（称为 HT20 和 HT40）。要禁用 802.11n 的所有使用，使用 `-ht`。要禁用 HT20 的使用（例如，强制仅使用 HT40），使用 `-ht20`。要禁用 HT40 的使用，使用 `-ht40`。HT 配置用于在有多个选择可用时“自动提升”操作。例如，如果站点关联到支持 11n 的接入点，它控制站点是使用传统操作、HT20 还是 HT40。当支持 11n 的设备设置为接入点并使用自动信道选择来定位要操作的信道时，HT 配置控制是在所选信道上设置传统、HT20 还是 HT40 操作。如果为站点指定了固定信道，则 HT 配置可作为信道规范的一部分给出；例如，6:ht/20 在信道 6 上设置 HT20 操作。

**`htcompat`** 启用对 pre-802.11n 设备的兼容性支持（默认）。802.11n 协议规范经历了几个不兼容的迭代。某些供应商按 older 规范实现的 11n 支持无法与纯 11n 兼容的站点互操作。特别是，旧设备的管理帧中包含的信息元素是不同的。启用兼容性支持时，将同时提供标准和兼容数据。使用兼容机制关联的站点在 `list sta` 中被标记。要禁用兼容性支持，使用 `-htcompat`。

**`htprotmode`** `technique` 对于以 802.11n 运行的接口，使用指定的 `technique` 在混合传统/HT 网络中保护 HT 帧。有效技术集合为 `off` 和 `rts`（RTS/CTS，默认）。技术名称不区分大小写。

**`inact`** 为关联到接入点的站点启用不活动处理（默认）。作为接入点运行时，802.11 层监控每个关联站点的活动。当站点不活动 5 分钟时，它将发送几个“探测帧”以查看站点是否仍然存在。如果未收到响应，则对该站点取消认证。倾向于自行处理此工作的应用程序可使用 `-inact` 禁用此功能。

**`indoor`** 设置用于计算监管约束的位置。当使用 `dotd` 启用 802.11d 时，位置也会在信标和探测响应帧中通告。另见 `outdoor`、`anywhere`、`country` 和 `regdomain`。

**`list active`** 显示可用信道列表，考虑使用 `chanlist` 指令设置的任何限制。参见 `list chan` 的描述了解更多信息。

**`list caps`** 显示适配器的能力，包括支持的操作模式。

**`list chan`** 显示可用信道列表。信道显示其 IEEE 信道号、等效频率和使用模式。标识为 `11g` 的信道也可在 `11b` 模式下使用。标识为 `11a Turbo` 的信道仅可用于 Atheros 的静态 Turbo 模式（用 `mediaopt turbo` 指定）。标有 `*` 的信道有监管约束，要求被动扫描。这意味着站点不允许在该信道上传输，直到它识别出该信道正用于 802.11 通信；通常通过听到在该信道上操作的接入点的信标帧。`list freq` 是请求此信息的另一种方式。默认情况下显示压缩的信道列表；如果指定了 `-v` 选项，则显示所有信道。

**`list countries`** 显示可用于监管配置的国家代码和监管域集合。

**`list mac`** 显示当前 MAC 访问控制列表状态。每个地址前都有一个字符指示当前应用于它的策略：`+` 表示允许该地址访问，`-` 表示拒绝该地址访问，`*` 表示该地址存在但当前策略为开放（因此不查询 ACL）。

**`list mesh`** 显示 mesh 路由表，用于在 mesh 网络上转发分组。

**`list regdomain`** 显示当前监管设置，包括可用信道和发送功率上限。

**`list roam`** 显示控制漫游操作的参数。

**`list txparam`** 显示控制发送操作的参数。

**`list txpower`** 显示每个信道的发送功率上限。

**`list scan`** 显示位于附近的接入点和/或 ad-hoc 邻居。此信息可能由适配器通过 `scan` 请求或后台扫描自动更新。根据站点的能力，输出中可包含以下标志（能力代码）：默认情况下，从邻近站点捕获的感兴趣的信息元素显示在每行的末尾。可能的元素包括：`WME`（站点支持 WME）、`WPA`（站点支持 WPA）、`WPS`（站点支持 WPS）、`RSN`（站点支持 802.11i/RSN）、`HTCAP`（站点支持 802.11n/HT 通信）、`ATH`（站点支持 Atheros 协议扩展）、`VEN`（站点支持未知的供应商特定扩展）。如果使用 `-v` 标志，将显示所有信息元素及其内容。指定 `-v` 标志还可启用长 SSID 的显示。`list ap` 命令是请求此信息的另一种方式。

**`list sta`** 作为接入点运行时，显示当前关联的站点。在 ad-hoc 模式下运行时，显示标识为 IBSS 中邻居的站点。在 mesh 模式下运行时，显示标识为 MBSS 中邻居的站点。在站点模式下运行时，显示接入点。站点通告的能力在 `scan` 请求下描述。输出中可包含以下标志：默认情况下，从关联站点接收的信息元素以简短形式显示；`-v` 标志使此信息以符号方式显示。

**`list wme`** 显示在 WME 模式下运行时要使用的当前信道参数。如果指定了 `-v` 选项，则每个 AC 都会显示信道和 BSS 参数（先是信道，然后是 BSS）。当为适配器启用 WME 模式时，此信息将随常规状态一起显示；此命令主要用于在禁用 WME 模式时检查参数。参见 `wme` 指令的描述以了解各种参数的信息。

**`maxretry`** `count` 设置发送单播帧的最大尝试次数。默认设置为 6，但驱动程序可用其选择的值覆盖。

**`mcastrate`** `rate` 设置传输多播/广播帧的速率。速率以十进制兆位/秒指定；例如 5.5 表示 5.5 Mb/s。此速率应对当前操作条件有效；如果指定了无效速率，驱动程序可自由选择适当的速率。

**`mgtrate`** `rate` 设置传输管理和/或控制帧的速率。速率以十进制兆位/秒指定；例如 5.5 表示 5.5 Mb/s。

**`outdoor`** 设置用于计算监管约束的位置。当使用 `dotd` 启用 802.11d 时，位置也会在信标和探测响应帧中通告。另见 `anywhere`、`country`、`indoor` 和 `regdomain`。

**`powersave`** 启用省电操作。作为客户端运行时，站点会定期关闭无线电并监听接入点告诉它有分组等待的消息来节省电力。然后站点必须检索分组。并非所有设备都支持作为客户端的省电操作。802.11 规范要求所有接入点支持省电，但某些驱动程序不支持。作为客户端运行时使用 `-powersave` 禁用省电操作。

**`powersavesleep`** `sleep` 设置所需的最大省电睡眠时间，以 TU（1024 微秒）为单位。默认最大省电睡眠时间为 100 TU。

**`protmode`** `technique` 对于以 802.11g 运行的接口，使用指定的 `technique` 在混合 11b/11g 网络中保护 OFDM 帧。有效技术集合为 `off`、`cts`（CTS to self）和 `rtscts`（RTS/CTS）。技术名称不区分大小写。并非所有设备都支持 `cts` 作为保护技术。

**`pureg`** 作为接入点在 802.11g 模式下运行时，仅允许具有 11g 能力的站点关联（不允许仅 11b 站点关联）。要允许 11g 和仅 11b 站点都关联，使用 `-pureg`。

**`puren`** 作为接入点在 802.11n 模式下运行时，仅允许具有 HT 能力的站点关联（不允许传统站点关联）。要允许 HT 和传统站点都关联，使用 `-puren`。

**`regdomain`** `sku` 设置用于计算操作监管约束的监管域。特别是，可用信道集合、无线设备在信道上的操作方式以及可在信道上使用的最大发送功率由此设置定义。Regdomain 代码（SKU）取自 **/etc/regdomain.xml** ，也可通过 `list countries` 请求查看。注意，并非所有设备都支持从默认设置更改 regdomain；通常存储在 EEPROM 中。另见 `country`、`indoor`、`outdoor` 和 `anywhere`。

**`rifs`** 在 HT 信道上以 802.11n 运行时启用使用缩减帧间间隔（RIFS）。注意，RIFS 必须被站点和接入点都支持才能使用。要禁用 RIFS，使用 `-rifs`。

**`roam:rate`** `rate` 设置在 BSS 中运行时控制漫游的阈值。`rate` 参数指定应考虑漫游的发送速率（以兆位为单位）。如果当前发送速率低于此设置且启用了后台扫描，则系统将检查是否有更理想的接入点可用并切换到它。如果根据 `scanvalid` 参数认为当前扫描缓存内容有效，则使用它们；否则在选择发生之前触发后台扫描操作。每种信道类型都有单独的速率阈值；默认值为：12 Mb/s (11a)、2 Mb/s (11b)、2 Mb/s (11g)、MCS 1 (11na, 11ng)。

**`roam:rssi`** `rssi` 设置在 BSS 中运行时控制漫游的阈值。`rssi` 参数指定应考虑漫游的接收信号强度（以 dBm 为单位）。如果当前 rssi 低于此设置且启用了后台扫描，则系统将检查是否有更理想的接入点可用并切换到它。如果根据 `scanvalid` 参数认为当前扫描缓存内容有效，则使用它们；否则在选择发生之前触发后台扫描操作。每种信道类型都有单独的 rssi 阈值；默认值均为 7 dBm。

**`roaming`** `mode` 作为站点运行时，控制系统在与当前接入点的通信中断时的行为。`mode` 参数可以是 `device`（由硬件设备决定）、`auto`（由设备或操作系统视情况处理）或 `manual`（在明确指示之前不做任何事）。默认情况下，如果设备有能力则由设备处理；否则操作系统将自动尝试重新建立通信。手动模式用于 wpa\_supplicant(8) 等希望控制接入点选择的应用程序。

**`rtsthreshold`** `length` 设置传输帧之前先传输 RTS 控制帧的阈值。`length` 参数是以字节为单位的帧大小，必须在 1 到 2346 范围内。将 `length` 设置为 `2346`、`any` 或 `-` 可禁用 RTS 帧的传输。并非所有适配器都支持设置 RTS 阈值。

**`scan`** 启动对邻近站点的扫描，等待其完成，并显示找到的所有站点。仅超级用户可启动扫描。参见 `list scan` 了解显示信息。默认情况下进行后台扫描；否则进行前台扫描，站点可能漫游到不同的接入点。`list scan` 请求可用于显示最近的扫描结果而不启动新扫描。

**`scanvalid`** `threshold` 设置扫描缓存内容被视为有效的最长时间；即在未触发扫描操作刷新数据的情况下将被使用的时间。`threshold` 参数以秒为单位指定，默认为 60 秒。`threshold` 的最小设置为 10 秒。设置此阈值时需小心；如果设置过低，则尝试漫游到另一个接入点可能会触发不必要的后台扫描操作。

**`shortgi`** 在 HT 信道上以 802.11n 运行时启用使用短保护间隔。注意：这目前在 HT40 和 HT20 信道上都启用短 GI。要禁用短 GI，使用 `-shortgi`。

**`smps`** 以 802.11n 运行时启用使用静态空间复用省电（SMPS）。以静态 SMPS 运行的站点仅维护单个活动接收链（这可显著降低功耗）。要禁用 SMPS，使用 `-smps`。

**`smpsdyn`** 以 802.11n 运行时启用使用动态空间复用省电（SMPS）。以动态 SMPS 运行的站点仅维护单个活动接收链，但在收到 RTS 帧时切换到多个接收链（这可显著降低功耗）。注意，站点无法区分用于启用多个接收链的 RTS/CTS 和用于其他目的的 RTS/CTS。要禁用 SMPS，使用 `-smps`。

**`ssid`** `ssid` 设置所需的服务集标识符（又称网络名称）。SSID 是最长 32 个字符的字符串，可指定为普通字符串或在前面加 `0x` 时以十六进制指定。此外，可通过将 SSID 设置为 `-` 来清除它。

**`tdmaslot`** `slot` 使用 TDMA 运行时，使用指定的 `slot` 配置。`slot` 是 0 到 BSS 中最大槽数之间的数字。注意，配置为槽 0 的站点是主站，将广播通告 BSS 的信标帧；配置为使用其他槽的站点将始终在传输前扫描以定位主站。默认情况下 `tdmaslot` 设置为 1。

**`tdmaslotcnt`** `cnt` 使用 TDMA 运行时，设置具有 `cnt` 个槽的 BSS。槽数最多为 8。当前实现仅用两个站点（即点对点应用）进行了测试。此设置仅在站点配置为槽 0 时有意义；其他站点从其加入的 BSS 采用此设置。默认情况下 `tdmaslotcnt` 设置为 2。

**`tdmaslotlen`** `len` 使用 TDMA 运行时，设置 BSS 使每个站点有 `len` 微秒长的槽。槽长必须至少为 150 微秒（1/8 TU）且不超过 65 毫秒。注意，设置过小的槽长可能由于定时器粒度和保护时间等因素导致信道带宽利用率不佳。此设置仅在站点配置为槽 0 时有意义；其他站点从其加入的 BSS 采用此设置。默认情况下 `tdmaslotlen` 设置为 10 毫秒。

**`tdmabintval`** `intval` 使用 TDMA 运行时，设置 BSS 使信标每 `intval` 个超帧传输一次以同步 TDMA 槽定时。超帧定义为槽数乘以槽长；例如，具有两个 10 毫秒槽的 BSS 有 20 毫秒的超帧。信标间隔不能为零。较低的 `tdmabintval` 设置使定时器更频繁地重新同步；如果观察到显著的定时器漂移，这可能有所帮助。默认情况下 `tdmabintval` 设置为 5。

**`tsn`** 作为具有 WPA/802.11i 的接入点运行时，允许传统站点使用静态密钥 WEP 和开放认证进行关联。要不允许传统站点使用 WEP，使用 `-tsn`。

**`txpower`** `power` 设置用于传输帧的功率。`power` 参数以 .5 dBm 为单位指定。超出范围的值会被截断。通常只有少数离散的功率设置可用，驱动程序将使用最接近指定值的设置。并非所有适配器都支持更改发送功率。

**`ucastrate`** `rate` 设置传输单播帧的固定速率。速率以十进制兆位/秒指定；例如 5.5 表示 5.5 Mb/s。此速率应对当前操作条件有效；如果指定了无效速率，驱动程序可自由选择适当的速率。

**`wepmode`** `mode` 设置所需的 WEP 模式。并非所有适配器都支持所有模式。有效模式集合为 `off`、`on` 和 `mixed`。`mixed` 模式明确告诉适配器允许与同时允许加密和未加密流量的接入点关联。在这些适配器上，`on` 表示接入点必须仅允许加密连接。在其他适配器上，`on` 通常是 `mixed` 的另一个名称。模式不区分大小写。

**`weptxkey`** `index` 设置用于传输的 WEP 密钥。这与用 `deftxkey` 设置默认传输密钥相同。

**`wepkey`** `key`|`index`:`key` 设置选定的 WEP 密钥。如果未给出 `index`，则设置密钥 1。WEP 密钥为 5 或 13 个字符（40 或 104 位），具体取决于本地网络和适配器的能力。可指定为普通字符串或前面加 `0x` 的十六进制数字字符串。为获得最大可移植性，推荐使用十六进制密钥；文本密钥到 WEP 加密的映射通常是驱动程序特定的。特别是，Windows 驱动程序执行此映射的方式与 FreeBSD 不同。可通过将密钥设置为 `-` 来清除密钥。如果支持 WEP，则至少有四个密钥。某些适配器支持超过四个密钥。如果是这种情况，则前四个密钥 (1-4) 将是标准临时密钥，任何其他密钥将是适配器特定的密钥，如存储在 NVRAM 中的永久密钥。注意，必须用 `deftxkey` 设置默认传输密钥，系统才能知道使用哪个密钥加密出站流量。

**`wme`** 为指定接口启用无线多媒体扩展（WME）支持（如果可用）。WME 是 IEEE 802.11e 标准的子集，用于支持实时和多媒体数据的高效通信。要禁用 WME 支持，使用 `-wme`。此参数的另一个名称是 `wmm`。以下参数仅在使用 WME 支持时有意义。参数按 AC（访问类别）指定，并分为站点作为接入点运行时使用的参数和 BSS 中客户端站点的参数。后者从接入点接收，可能无法（在站点上）更改。识别以下访问类别：AC 参数不区分大小写。流量分类在操作系统中使用与数据帧关联的 vlan 优先级或 IP 封装帧中的 ToS（服务类型）指示来完成。如果两者都不存在，则流量被分配到尽力而为（BE）类别。

**`wps`** 启用无线隐私订阅者支持。注意，WPS 支持需要具有 WPS 能力的请求方。要禁用此功能，使用 `-wps`。

### 基于MAC的访问控制列表参数

以下参数支持某些适配器在 ap 模式下运行时可用的可选访问控制列表功能；参见 [wlan\_acl(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/wlan_acl.4.md)。此功能允许接入点根据站点的 MAC 地址接受/拒绝关联请求。注意，此功能不会显著增强安全性，因为 MAC 地址欺骗很容易做到。

**`mac:add`** `address` 将指定的 MAC 地址添加到数据库。根据策略设置，来自指定站点的关联请求将被允许或拒绝。

**`mac:allow`** 将 ACL 策略设置为仅允许数据库中注册的站点关联。

**`mac:del`** `address` 从数据库中删除指定的 MAC 地址。

**`mac:deny`** 将 ACL 策略设置为仅拒绝数据库中注册的站点关联。

**`mac:kick`** `address` 强制指定站点被取消认证。这通常在更新地址数据库后阻止站点时完成。

**`mac:open`** 将 ACL 策略设置为允许所有站点关联。

**`mac:flush`** 删除数据库中的所有条目。

**`mac:radius`** 将 ACL 策略设置为仅允许由 RADIUS 服务器批准的站点关联。注意，此功能要求配置 hostapd(8) 程序执行正确的操作，因为它处理 RADIUS 处理（并将站点标记为已授权）。

### Mesh 模式无线接口参数

以下参数与在 mesh 模式下运行的无线接口相关：

**`DISABLED`** 禁用 root 模式。 **`NORMAL`** 每两秒发送广播路径请求。mesh 上没有到此 root mesh 站点路径的节点将尝试发现到我们的路径。 **`PROACTIVE`** 每两秒发送广播路径请求，每个节点必须回复路径回复，即使它已有到此 root mesh 站点的路径。 **`RANN`** 发送广播 root 通告（RANN）帧。mesh 上没有到此 root mesh 站点路径的节点将尝试发现到我们的路径。

**`meshid`** `meshid` 设置所需的 Mesh 标识符。Mesh ID 是最长 32 个字符的字符串。mesh 接口必须指定 Mesh 标识符才能达到操作状态。

**`meshttl`** `ttl` 设置 mesh 转发分组的所需“生存时间”；这是分组在被丢弃之前可被转发的跳数。`meshttl` 的默认设置为 31。

**`meshpeering`** 启用或禁用与邻居 mesh 站点的对等。站点必须在对等后才能交换数据分组。默认情况下 `meshpeering` 已启用。

**`meshforward`** 启用或禁用 mesh 接口转发分组。默认情况下 `meshforward` 已启用。

**`meshgate`** 此属性指定 mesh STA 是否激活 mesh 网关通告。默认情况下 `meshgate` 已禁用。

**`meshmetric`** `protocol` 将指定的 `protocol` 设置为 mesh 网络上使用的链路度量协议。默认协议称为 `AIRTIME`。更改此设置后 mesh 接口将重新启动。

**`meshpath`** `protocol` 将指定的 `protocol` 设置为 mesh 网络上使用的路径选择协议。目前唯一可用的协议称为 `HWMP`（混合无线 Mesh 协议）。更改此设置后 mesh 接口将重新启动。

**`hwmprootmode`** `mode` mesh 网络上的站点可作为“root 节点”运行。Root 节点尝试查找到所有 mesh 节点的路径并定期通告自己。当网络上存在 root mesh 节点时，其他 mesh 节点可以更快地在彼此之间设置路径，因为它们可以使用 root 节点来查找目标。此路径可能不是最佳的，但按需路由最终会找到最佳路径。识别以下模式：默认情况下 `hwmprootmode` 设置为 `DISABLED`。

**`hwmpmaxhops`** `cnt` 将 HMWP 路径中允许的最大跳数设置为 `cnt`。`hwmpmaxhops` 的默认设置为 31。

### 兼容性参数

以下参数用于与其他系统兼容：

**`nwid`** `ssid` `ssid` 参数的另一个名称。为与 NetBSD 兼容而引入。

**`stationname`** `name` 设置此站点的名称。站点名称不是 IEEE 802.11 协议的一部分，尽管某些接口支持它。因此，它似乎仅对相同或几乎相同的设备有意义。设置站点名称在语法上与设置 SSID 相同。也可使用 `station` 以与 BSD/OS 兼容。

**`wep`** `wepmode on` 的另一种说法。为与 BSD/OS 兼容而引入。

**`-wep`** `wepmode off` 的另一种说法。为与 BSD/OS 兼容而引入。

**`nwkey`** `key` “\`wepmode on weptxkey 1 wepkey 1:key wepkey 2:- wepkey 3:- wepkey 4:-”的另一种说法。为与 NetBSD 兼容而引入。

**`nwkey`** `n:k1,k2,k3,k4` “`wepmode on weptxkey n wepkey 1:k1 wepkey 2:k2 wepkey 3:k3 wepkey 4:k4`”的另一种说法。为与 NetBSD 兼容而引入。

**`-nwkey`** `wepmode off` 的另一种说法。为与 NetBSD 兼容而引入。

### 网桥接口参数

以下参数特定于网桥接口：

**`untagged`** `vlan-id` 设置接口的未标记 VLAN 标识符。这等效于 `ifuntagged` 命令。

**`tagged`** `vlan-set` 设置接口的允许 VLAN 列表。这等效于 `iftagged` 命令。

**`addm`** `interface` \[`options ...`] 将 `interface` 命名的接口添加为网桥成员。该接口被置于混杂模式，以便它能接收网络上发送的每个分组。接口名后可跟一个或多个以下 `options`：

**`deletem`** `interface` 从网桥中移除 `interface` 命名的接口。当接口从网桥中移除时，其上的混杂模式被禁用。

**`maxaddr`** `size` 将网桥地址缓存的大小设置为 `size`。默认为 2000 个条目。

**`timeout`** `seconds` 将地址缓存条目的超时设置为 `seconds` 秒。如果 `seconds` 为零，则地址缓存条目不会过期。默认为 1200 秒。

**`addr`** 显示网桥已学习的地址。

**`static`** `interface-name` `address` \[`vlan` `vlan-id`] 在地址缓存中添加一个静态条目，指向 `interface-name`。如果指定了 `vlan-id`，则为该 VLAN 添加条目，否则为 VLAN 0 添加。静态条目永不会从缓存中老化或被替换，即使地址在不同的接口上被看到。

**`deladdr`** `address` \[`vlan` `vlan-id`] 从地址缓存中删除 `address`。如果指定了 `vlan-id`，则从该 VLAN 的地址表中删除条目，否则从 VLAN 0 地址表删除。

**`flush`** 从地址缓存中删除所有动态学习的地址。

**`flushall`** 从地址缓存中删除所有地址，包括静态地址。

**`discover`** `interface` 将接口标记为“发现”接口。当网桥对于分组的目地址没有地址缓存条目（动态或静态）时，网桥将把分组转发到所有标记为“发现”的成员接口。这是添加到网桥的所有接口的默认值。

**`-discover`** `interface` 清除成员接口上的“发现”属性。对于没有“发现”属性的分组，在接口上转发的唯一分组是广播或多播分组，以及已知目标地址在接口网段上的分组。

**`learn`** `interface` 将接口标记为“学习”接口。当分组到达这样的接口时，分组的源地址被输入到地址缓存中，作为接口网段上的目标地址。这是添加到网桥的所有接口的默认值。

**`-learn`** `interface` 清除成员接口上的“学习”属性。

**`sticky`** `interface` 将接口标记为“粘性”接口。动态学习的地址条目一旦进入缓存就被视为静态。粘性条目永不会从缓存中老化或被替换，即使地址在不同的接口上被看到。

**`-sticky`** `interface` 清除成员接口上的“粘性”属性。

**`private`** `interface` 将接口标记为“私有”接口。私有接口不向任何也是私有接口的端口转发任何流量。

**`-private`** `interface` 清除成员接口上的“私有”属性。

**`span`** `interface` 将 `interface` 命名的接口添加为网桥上的 span 端口。Span 端口传输网桥接收到的每个帧的副本。这对于在连接到网桥 span 端口之一的另一台主机上被动监听桥接网络最有用。

**`-span`** `interface` 从网桥的 span 端口列表中删除 `interface` 命名的接口。

**`stp`** `interface` 在 `interface` 上启用生成树协议。if\_bridge(4) 驱动支持 IEEE 802.1D 生成树协议（STP）。生成树用于检测和移除网络拓扑中的环路。

**`-stp`** `interface` 在 `interface` 上禁用生成树协议。这是添加到网桥的所有接口的默认值。

**`edge`** `interface` 将 `interface` 设置为边缘端口。边缘端口直接连接到终端站点，不能在网络中创建桥接环路，这允许它直接转换到转发状态。

**`-edge`** `interface` 在 `interface` 上禁用边缘状态。

**`autoedge`** `interface` 允许 `interface` 自动检测边缘状态。这是添加到网桥的所有接口的默认值。

**`-autoedge`** `interface` 在 `interface` 上禁用自动边缘状态。

**`ptp`** `interface` 将 `interface` 设置为点对点链路。这是直接转换到转发状态所必需的，应在到另一个支持 RSTP 的交换机的直接链路上启用。

**`-ptp`** `interface` 在 `interface` 上禁用点对点链路状态。对于半双工链路和连接到共享网络段（如集线器或无线网络）的接口，应禁用此选项。

**`autoptp`** `interface` 通过检查全双工链路状态自动检测 `interface` 上的点对点状态。这是添加到网桥的接口的默认值。

**`-autoptp`** `interface` 在 `interface` 上禁用自动点对点链路检测。

**`maxage`** `seconds` 设置生成树协议配置的有效时间。默认为 20 秒。最小为 6 秒，最大为 40 秒。

**`fwddelay`** `seconds` 设置启用生成树时接口开始转发分组前必须经过的时间。默认为 15 秒。最小为 4 秒，最大为 30 秒。

**`hellotime`** `seconds` 设置广播生成树协议配置消息之间的时间。hello 时间只能在传统 stp 模式下运行时更改。默认为 2 秒。最小为 1 秒，最大为 2 秒。

**`priority`** `value` 设置生成树的网桥优先级。默认为 32768。最小为 0，最大为 61440。

**`proto`** `value` 设置生成树协议。默认为 rstp。可用选项为 stp 和 rstp。

**`holdcnt`** `value` 设置生成树的传输保持计数。这是被速率限制前传输的分组数。默认为 6。最小为 1，最大为 10。

**`ifpriority`** `interface` `value` 将 `interface` 的生成树优先级设置为 `value`。默认为 128。最小为 0，最大为 240。

**`ifpathcost`** `interface` `value` 将 `interface` 的生成树路径成本设置为 `value`。默认根据链路速度计算。要将先前选择的路径成本改回自动，将成本设置为 0。最小为 1，最大为 200000000。

**`ifmaxaddr`** `interface` `size` 设置接口允许的最大主机数，具有未知源地址的分组将被丢弃，直到现有主机缓存条目过期或被移除。设置为 0 以禁用。

**`vlanfilter`** 在网桥上启用 VLAN 过滤。成员接口上的传入帧将被丢弃，除非该帧被接口的 `ifuntagged` 或 `iftagged` 配置明确允许。

**`-vlanfilter`** 在网桥上禁用 VLAN 过滤。这是默认值。

**`iftagged`** `interface` `vlan-list` 将接口的 VLAN 访问列表设置为提供的 VLAN 列表。列表应为以逗号分隔的一个或多个 VLAN ID 或格式为 `first-last` 的范围的列表，值“none”表示空集，值“all”表示所有 VLAN (1-4094)。此选项仅在为网桥启用 `vlanfilter` 选项时有意义；否则，将允许所有 VLAN。

**`+iftagged`** `interface` `vlan-list` 将提供的 VLAN ID 列表添加到接口的 VLAN 访问列表。列表格式应如 `iftagged` 所述。此选项仅在为网桥启用 `vlanfilter` 选项时有意义；否则，将允许所有 VLAN。

**`-iftagged`** `interface` `vlan-list` 从接口的 VLAN 访问列表中移除提供的 VLAN ID 列表。列表格式应如 `iftagged` 所述。此选项仅在为网桥启用 `vlanfilter` 选项时有意义；否则，将允许所有 VLAN。

**`ifuntagged`** `interface` `vlan-id` 设置接口的未标记 VLAN 标识符。在此接口上接收的没有 802.1Q 标记的帧将被分配到此 VLAN 而非默认 VLAN 0，并且此 VLAN 上的传出帧将移除其 802.1Q 标记。

**`-ifuntagged`** `interface` 清除接口的未标记 VLAN 标识符。

**`defuntagged`** `vlan-id` 默认在新添加的成员上启用 `untagged` 选项。

**`-defuntagged`** 默认不在新添加的成员上启用 `untagged` 选项。这是默认值。

**`qinq`** `interface` 允许此接口发送 802.1ad“Q-in-Q”帧。此选项仅在为网桥启用 `vlanfilter` 选项时有意义；否则，始终允许 Q-in-Q 帧。

**`-qinq`** `interface` 不允许此接口发送 802.1ad“Q-in-Q”帧。如果启用了 `vlanfilter` 选项，这是默认值。

**`defqinq`** 默认在新添加的成员上启用 `qinq` 选项。

**`-defqinq`** 默认不在新添加的成员上启用 `qinq` 选项。这是默认值。

**`ifvlanproto`** `interface` `proto` 将 `interface` 上的 VLAN 封装协议设置为 `proto`，必须为“802.1q”或“802.1ad”。默认为“802.1q”。

### 链路聚合与链路故障转移参数

以下参数特定于 lagg 接口：

**`l2`** 源/目的 MAC 地址和可选的 vlan 号。 **`l3`** IPv4 或 IPv6 的源/目的地址。 **`l4`** TCP/UDP/SCTP 的源/目的端口。

**`laggtype`** `type` 创建 lagg 接口时，类型可指定为 `ethernet` 或 `infiniband`。如果未指定，ethernet 是默认的 lagg 类型。

**`laggport`** `interface` 将 `interface` 命名的接口添加为聚合接口的端口。

**`-laggport`** `interface` 从聚合接口中移除 `interface` 命名的接口。

**`laggproto`** `proto` 设置聚合协议。默认为 `failover`。可用选项为 `failover`、`lacp`、`loadbalance`、`roundrobin`、`broadcast` 和 `none`。

**`lagghash`** `option`\[,`option`] 设置用于负载均衡聚合协议的分组层哈希。默认为“l2,l3,l4”。选项可用逗号组合。

**`-use_flowid`** 在接口上启用 RSS 哈希的本地哈希计算。`loadbalance` 和 `lacp` 模式将使用网卡提供的 RSS 哈希（如果可用）以避免计算，但如果哈希无效或使用了较少的协议头信息，这可能导致流量分布不佳。`-use_flowid` 禁用使用网卡的 RSS 哈希。默认值可通过 `net.link.lagg.default_use_flowid` [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量设置。`0` 表示“禁用”，`1` 表示“启用”。

**`use_flowid`** 如果可用，使用网卡提供的 RSS 哈希。

**`flowid_shift`** `number` 为 RSS 本地哈希计算设置移位参数。哈希通过使用分组头 mbuf 中的 flowid 位计算，这些位按此参数的数字移位。

**`use_numa`** 基于传输分组的本机 [numa(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/numa.4.md) 域启用出口端口选择。目前这仅在 lacp 模式下实现。这仅在 [numa(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/numa.4.md) 硬件上、运行使用 [numa(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/numa.4.md) 选项编译的内核时，以及当来自多个 [numa(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/numa.4.md) 域的接口是聚合接口的端口时有效。

**`-use_numa`** 禁用基于传输分组的本机 [numa(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/numa.4.md) 域启用出口端口选择。

**`lacp_fast_timeout`** 在接口上启用 lacp 快速超时。

**`-lacp_fast_timeout`** 在接口上禁用 lacp 快速超时。

**`lacp_strict`** 在接口上启用 lacp 严格合规。默认值可通过 `net.link.lagg.lacp.default_strict_mode` [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量设置。`0` 表示“禁用”，`1` 表示“启用”。

**`-lacp_strict`** 在接口上禁用 lacp 严格合规。

**`rr_limit`** `number` 为轮询模式下的接口配置步幅。默认步幅为 1。

### 通用 IP 隧道参数

以下参数适用于 IP 隧道接口 [gif(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gif.4.md)：

**`tunnel`** `src_addr dest_addr` 为 IP 隧道接口配置物理源地址和目的地址。参数 `src_addr` 和 `dest_addr` 被解释为封装 IPv4/IPv6 头的外部源/目的地址。

**`-tunnel`** 取消先前用 `tunnel` 配置的 IP 隧道接口的物理源地址和目的地址。

**`deletetunnel`** `-tunnel` 参数的另一个名称。

**`noclamp`** 此标志防止当外部协议为 IPv6 时 MTU 被钳制为 1280 字节（IPv6 的最小 MTU）。设置此标志时，将使用接口上配置的 MTU 值而非固定的 1280 字节。有关更多详细信息，请参阅 [gif(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gif.4.md) 中的 `MTU Configuration and Path MTU Discovery` 章节。

**`-noclamp`** 清除 `noclamp` 标志。

**`ignore_source`** 设置标志以接受发往此主机的封装分组，而不考虑源地址。这对于从负载均衡器接收封装分组的主机可能有用。

**`-ignore_source`** 清除 `ignore_source` 标志。

### GRE 隧道参数

以下参数适用于 GRE 隧道接口 [gre(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gre.4.md)：

**`tunnel`** `src_addr dest_addr` 为 GRE 隧道接口配置物理源地址和目的地址。参数 `src_addr` 和 `dest_addr` 被解释为封装 IPv4/IPv6 头的外部源/目的地址。

**`-tunnel`** 取消先前用 `tunnel` 配置的 GRE 隧道接口的物理源地址和目的地址。

**`deletetunnel`** `-tunnel` 参数的另一个名称。

**`grekey`** `key` 配置用于传出分组的 GRE 密钥。注意 [gre(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gre.4.md)。此命令将导致接口上的 MTU 减少四个字节。

### 包过滤器状态表同步参数

以下参数特定于 [pfsync(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/pfsync.4.md) 接口：

**`syncdev`** `iface` 使用指定的接口发送和接收 pfsync 状态同步消息。

**`-syncdev`** 停止通过网络发送 pfsync 状态同步消息。

**`syncpeer`** `peer_address` 设置发送状态同步消息的目的地址。`peer_address` 通常是参与 pfsync 集群的另一台主机的 IPv4 或 IPv6 地址。当 `peer_address` 设置为单播 IP 地址时，pfsync 链路将表现为点对点而非使用多播来广播消息。当 `peer_address` 设置为 ff12::f0 时，状态同步消息将使用 IPv6 多播进行广播。

**`-syncpeer`** 取消 syncpeer。然后分组将使用 IPv4 多播进行广播。

**`maxupd`** `n` 设置可合并为单个状态更新的最大次数。这是一个 8 位数字；默认值为 128。

**`defer`** 延迟状态中第一个分组的传输，直到对端已确认关联状态已被插入。

**`-defer`** 不延迟状态中的第一个分组。这是默认值。

**`-version`** `n` 配置消息格式以与旧版本的 FreeBSD 兼容。详情请参阅 [pfsync(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/pfsync.4.md)。

### VLAN 参数

以下参数特定于 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口：

**`802.1Q`** 默认。

**`802.1ad`**

**`QinQ`** 与 `802.1ad` 相同。

**`vlan`** `vlan_tag` 将 VLAN 标签值设置为 `vlan_tag`。此值是一个 12 位 VLAN 标识符（VID），用于为从 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口发送的分组创建 802.1Q 或 802.1ad VLAN 头。注意，`vlan` 和 `vlandev` 必须同时设置。

**`vlanproto`** `vlan_proto` 将 VLAN 封装协议设置为 `vlan_proto`。当前支持的封装协议为：

**`vlanpcp`** `priority_code_point` 优先级代码点（`PCP`）是一个 3 位字段，对应 IEEE 802.1p 服务类别，并映射到帧优先级级别。按优先级顺序的值为：`1`（`Background (lowest)`）、`0`（`Best effort (default)`）、`2`（`Excellent effort`）、`3`（`Critical applications`）、`4`（`Video, < 100ms latency and jitter`）、`5`（`Voice, < 10ms latency and jitter`）、`6`（`Internetwork control`）、`7`（`Network control (highest)`）。

**`vlandev`** `iface` 将物理接口 `iface` 与 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口关联。通过 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口传输的分组将被转移到指定的物理接口 `iface`，并带有 802.1Q VLAN 封装。父接口接收的具有正确 VLAN 标识符的 802.1Q 封装分组将被转移到关联的 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 伪接口。[vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口被分配父接口标志的副本和父接口的以太网地址。`vlandev` 和 `vlan` 必须同时设置。如果 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口已有关联的物理接口，此命令将失败。要更改关联到另一个物理接口，必须先清除现有关联。注意：如果在父接口上设置了硬件标记功能，[vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 伪接口的行为会改变：[vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口识别到父接口支持自行插入和提取 VLAN 标记（通常在固件中），并且它应该原样地向父接口传递分组和从父接口接收分组。

**`-vlandev`** \[`iface`] 如果驱动程序是 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 伪设备，则从中取消关联父接口。这会断开 [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md) 接口与其父接口之间的链接，清除其 VLAN 标识符、标志和链路地址，并关闭接口。`iface` 参数无用因此已弃用。

### 虚拟可扩展局域网参数

以下参数用于配置 [vxlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vxlan.4.md) 接口。

**`vxlanid`** `identifier` 此值是 24 位 VXLAN 网络标识符（VNI），用于标识接口的虚拟网络段成员身份。

**`vxlanlocal`** `address` 用于封装 IPv4/IPv6 头中的源地址。该地址应已分配给现有接口。当接口以单播模式配置时，监听套接字绑定到此地址。

**`vxlanremote`** `address` 接口可配置为单播或点对点模式，以在两台主机之间创建隧道。这是隧道远端的 IP 地址。

**`vxlangroup`** `address` 接口可配置为多播模式以创建主机虚拟网络。这是接口将加入的 IP 多播组地址。

**`vxlanlocalport`** `port` 接口将监听的端口号。默认端口号为 4789。

**`vxlanremoteport`** `port` 封装 IPv4/IPv6 头中使用的目的端口号。远程主机应在此端口上监听。默认端口号为 4789。注意，某些其他实现（如 Linux）不默认使用 IANA 分配的端口，而是监听端口 8472。

**`vxlanportrange`** `low high` 封装 IPv4/IPv6 头中使用的源端口范围。范围内选择的端口基于内部帧的哈希。范围有助于在外部 IP 头中提供熵以实现更有效的负载均衡。默认范围在 [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet.ip.portrange.first` 和 `net.inet.ip.portrange.last` 之间。

**`vxlantimeout`** `timeout` 转发表中条目被修剪前的最长时间（以秒为单位）。默认为 1200 秒（20 分钟）。

**`vxlanmaxaddr`** `max` 转发表中的最大条目数。默认为 2000。

**`vxlandev`** `dev` 当接口以多播模式配置时，使用 `dev` 接口传输 IP 多播分组。

**`vxlanttl`** `ttl` 封装 IPv4/IPv6 头中使用的 TTL。默认为 64。

**`vxlanlearn`** 接收分组的源 IP 地址和内部源以太网 MAC 地址用于动态填充转发表。在多播模式下，转发表中的条目允许接口直接将帧发送到远程主机而非将帧广播到多播组。这是默认值。

**`-vxlanlearn`** 转发表不由接收的分组填充。

**`vxlanflush`** 从转发表中删除所有动态学习的地址。

**`vxlanflushall`** 从转发表中删除所有地址，包括静态地址。

### 通用网络虚拟化封装参数

以下参数用于配置 [geneve(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/geneve.4.md) 接口。

**`l2`** 默认。

**`l3`**

**`set`** 不允许在输出 IPv4/IPv6 分组上进行分片，并在封装 IPv4 头中设置不分片（DF）位。

**`unset`** 默认。

**`inherit`** 不分片（DF）位从内部 IPv4 头复制到外部 IPv4 头。

**`0-255`** 默认为 64。

**`inherit`** TTL 从内部封装头复制到外部头。

**`geneveid`** `identifier` 此值是 24 位虚拟网络标识符（VNI），用于标识接口的虚拟网络标识符。

**`genevemode`** `mode` 设置 `ifconfig` 协议操作 `mode` 值。当前支持的模式为：

**`genevelocal`** `address` 用于封装 IPv4/IPv6 头中的源地址。该地址应已分配给现有接口。当接口以单播模式配置时，监听套接字绑定到此地址。

**`geneveremote`** `address` 接口可配置为单播或点对点模式，以在两台主机之间创建隧道。这是隧道远端的 IP 地址。

**`genevegroup`** `address` 接口可配置为多播模式以创建主机虚拟网络。这是接口将加入的 IP 多播组地址。

**`genevelocalport`** `port` 接口将监听的端口号。默认端口号为 6081。

**`geneveremoteport`** `port` 封装 IPv4/IPv6 头中使用的目的端口号。远程主机应在此端口上监听。默认端口号为 6081。

**`geneveportrange`** `low high` 封装 IPv4/IPv6 头中使用的源端口范围。范围内选择的端口基于内部帧的哈希。范围有助于在外部 IP 头中提供熵以实现更有效的负载均衡。默认范围在 [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md) 变量 `net.inet.ip.portrange.first` 和 `net.inet.ip.portrange.last` 之间。

**`genevetimeout`** `timeout` 转发表中条目被修剪前的最长时间（以秒为单位）。默认为 1200 秒（20 分钟）。

**`genevemaxaddr`** `max` 转发表中的最大条目数。默认为 2000。

**`genevedev`** `dev` 当接口以多播模式配置时，使用 `dev` 接口传输 IP 多播分组。

**`genevedf`** `df` 在封装头中设置不分片（DF）位。当前支持的 `df` 值为：

**`genevettl`** `ttl` 封装 IPv4/IPv6 头中使用的 TTL。

**`genevedscpinherit`** 从内部 IPv4/IPv6 头继承 DSCP 或 Traffic Class 值。

**`-genevedscpinherit`** 取消从内部 IPv4/IPv6 头继承 DSCP 或 Traffic Class。这是默认值。

**`genevelearn`** 在 L2 单播模式下，接收分组的源 IP 地址和内部源以太网 MAC 地址用于动态填充转发表。在 L2 多播模式下，转发表中的条目允许接口直接将帧发送到远程主机而非将帧广播到多播组。这是默认值。

**`-genevelearn`** 在 L2 模式下，geneve 转发表不由接收的分组填充。

**`geneveexternal`** 使此隧道受外部控制。

**`-geneveexternal`** 为此隧道启用手动配置。这是默认值。

**`geneveflush`** 在 L2 模式下从转发表中删除所有动态学习的地址。

**`geneveflushall`** 从转发表中删除所有地址，包括静态地址。

### CARP 参数

以下参数用于在接口上配置 [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 协议：

**`vhid`** `n` 设置虚拟主机 ID。这是启动 [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 所需的设置。如果虚拟主机 ID 尚不存在，则创建并附加到接口，否则调整现有 vhid 的配置。如果 `vhid` 关键字与“inet6”或“inet”地址一起提供，则此地址被配置为在指定 vhid 的控制下运行。当引用特定 vhid 的最后一个地址从接口中移除时，vhid 会自动从接口中移除并销毁。[carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 协议的任何其他配置参数应与 `vhid` 关键字一起提供。vhid 的可接受值为 1 到 255。

**`advbase`** `seconds` 指定通告间隔的基数（以秒为单位）。可接受值为 1 到 255。默认值为 1。

**`advskew`** `interval` 指定添加到基本通告间隔的偏斜，使一台主机的通告比另一台主机慢。以 1/256 秒为单位指定。可接受值为 1 到 254。默认值为 0。

**`pass`** `phrase` 将认证密钥设置为 `phrase`。

**`state`** `state` 强制更改给定 vhid 的状态。识别以下状态：`MASTER` 和 `BACKUP`。

**`peer`** `address` 设置发送（IPv4）[carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 通告的地址。

**`mcast`** 恢复（IPv4）[carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 通告的默认目的地址，即 224.0.0.18。

**`peer6`** `address` 设置发送（IPv6）[carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 通告的地址。

**`mcast6`** 恢复（IPv4）[carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 通告的默认目的地址，即 ff02::12。

**`carpver`** 设置协议版本。有效选择为 2（用于 carp(4)）和 3（用于 VRRPv3）。这只能在 [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md) 启动时设置。

**`vrrpprio`** 设置 VRRPv3 优先级。有效值为 1-255。

**`vrrpinterval`** 设置 VRRPv3 主通告间隔。值以厘秒为单位。

## 环境变量

以下环境变量影响 `ifconfig` 的执行：

**`IFCONFIG_FORMAT`** 此变量可包含输出格式规范。参见 `-f` 标志的描述了解更多详细信息。

## 实例

将 IPv4 地址 `192.0.2.10`、网络掩码 `255.255.255.0` 分配给接口 `em0`：

```sh
# ifconfig em0 inet 192.0.2.10 netmask 255.255.255.0
```

将 CIDR 网络前缀为 `/28` 的 IPv4 地址 `192.0.2.45` 添加到接口 `em0`：

```sh
# ifconfig em0 inet 192.0.2.45/28 alias
```

从接口 `em0` 中移除 IPv4 地址 `192.0.2.45`：

```sh
# ifconfig em0 inet 192.0.2.45 -alias
```

启用接口的 IPv6 功能：

```sh
# ifconfig em0 inet6 -ifdisabled
```

将 IPv6 地址 `2001:DB8:DBDB::123/48` 添加到接口 `em0`：

```sh
# ifconfig em0 inet6 2001:db8:bdbd::123 prefixlen 48 alias
```

注意，小写十六进制 IPv6 地址是可接受的。

使用 `/` 字符作为网络前缀的简写，移除上例中添加的 IPv6 地址：

```sh
# ifconfig em0 inet6 2001:db8:bdbd::123/48 -alias
```

在 igb0 上配置单个 CARP 冗余地址，然后将其切换为 master：

```sh
# ifconfig igb0 vhid 1 10.0.0.1/24 pass foobar up
# ifconfig igb0 vhid 1 state master
```

配置接口 `xl0` 使用 100baseTX 全双工以太网媒体选项：

```sh
# ifconfig xl0 media 100baseTX mediaopt full-duplex
```

将 em0 接口标记为上行链路：

```sh
# ifconfig em0 description "Uplink to Gigabit Switch 2"
```

创建软件网络接口 `gif1`：

```sh
# ifconfig gif1 create
```

销毁软件网络接口 `gif1`：

```sh
# ifconfig gif1 destroy
```

使用 `wlan0` 显示可用无线网络：

```sh
# ifconfig wlan0 list scan
```

以 CIDR 表示法显示 inet 和 inet6 地址子网掩码：

```sh
# ifconfig -f inet:cidr,inet6:cidr
```

显示处于 up 状态的接口，但排除环回接口：

```sh
# ifconfig -a -u -G lo
```

显示属于 wlan 组的接口名称列表：

```sh
# ifconfig -g wlan
wlan0
wlan1
```

显示属于 wlan 组的接口详细信息：

```sh
# ifconfig -a -g wlan
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 75:4c:61:6b:7a:73
        inet6 fe80::4c75:636a:616e:ffd8%wlan0 prefixlen 64 scopeid 0x3
        inet6 2001:5761:6e64:6152:6f6d:616e:fea4:ffe2 prefixlen 64 autoconf
        inet 192.168.10.5 netmask 0xffffff00 broadcast 192.168.10.255
        groups: wlan
        ssid "Hotspot" channel 11 (2462 MHz 11g) bssid 12:34:ff:ff:43:21
        regdomain ETSI country DE authmode WPA2/802.11i privacy ON
        deftxkey UNDEF AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 30 bmiss 10
        scanvalid 60 protmode CTS wme roaming MANUAL
        parent interface: iwm0
        media: IEEE 802.11 Wireless Ethernet DS/2Mbps mode 11g
        status: associated
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
wlan1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:50:69:6f:74:72
        groups: wlan
        ssid "" channel 2 (2417 MHz 11g)
        regdomain FCC country US authmode OPEN privacy OFF txpower 30 bmiss 7
        scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
        roam:rate 5 protmode CTS wme bintval 0
        parent interface: rum0
        media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
        status: no carrier
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
```

在 tap0 上设置随机生成的 MAC 地址：

```sh
# ifconfig tap0 ether random
```

## 诊断

消息指示指定的接口不存在、请求的地址未知，或用户没有特权而试图更改接口的配置。

## 参见

[netstat(1)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man1/netstat.1.md), [carp(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/carp.4.md), [gif(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/gif.4.md), [netintro(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/netintro.4.md), [pfsync(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/pfsync.4.md), [polling(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/polling.4.md), [vlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vlan.4.md), [vxlan(4)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man4/vxlan.4.md), devd.conf(5), devd(8), [jail(8)](/man/man8/jail.8.md), [rc(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/rc.8.md), [routed(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/routed.8.md), [sysctl(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/sysctl.8.md)

> "Default Address Selection for Internet Protocol version 6 (IPv6)", February 2003.

> "IP Version 6 Addressing Architecture", February 2006.

## 历史

`ifconfig` 工具出现于 4.2BSD。

## 缺陷

基本 IPv6 节点操作要求每个为 IPv6 配置的接口上都有链路本地地址。通常，这样的地址由内核在每个添加到系统或启用的接口上自动配置；此行为可通过设置每接口标志 `-auto_linklocal` 来禁用。此标志的默认值为 1，可通过 sysctl MIB 变量 `net.inet6.ip6.auto_linklocal` 禁用。

不要使用 `ifconfig` 配置没有链路本地地址的 IPv6 地址。这可能导致内核的意外行为。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/man8/ifconfig.8.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
