命令行手册

Man » ifup 在线手册 - 详细的 ifup 手册页在线文档

🌍
ifup - 激活网络接口

ifdown - 停用网络接口

ifquery - 解析接口配置

概要

ifup [-nv] [--no-act] [--verbose] [-i FILE|--interfaces=FILE] [--state-dir=DIR] [--allow CLASS]
-a|IFACE...
ifup -h|--help
ifup -V|--version

ifdown [-nv] [--no-act] [--verbose] [-i FILE|--interfaces=FILE] [--state-dir=DIR] [--allow CLASS]
-a|IFACE...

ifquery [-nv] [--verbose] [-i FILE|--interfaces=FILE] [--state-dir=DIR] [--allow CLASS] IFACE...

ifquery -l|--list [-nv] [--verbose] [-i FILE|--interfaces=FILE] [--state-dir=DIR] [--allow CLASS]
[-a|IFACE...]

ifquery --state [--state-dir=DIR] [--allow CLASS] [-a|IFACE...]

描述

ifup 和 ifdown 命令可用于根据 /etc/network/interfaces 文件中的接口定义来配置(或分别取消配置)网络接口。ifquery 命令可用于解析接口配置。

选项

以下是选项摘要。

-a, --all

如果提供给 ifup,则影响所有标记为“auto”的接口。接口将按照在 /etc/network/interfaces 中定义的顺序进行激活。与 --allow 结合使用时,对指定类别的所有接口起作用。如果提供给 ifdown,则影响所有已定义的接口。接口将按照当前在状态文件中列出的顺序进行停用。只有在 /etc/network/interfaces 中定义的接口才会被停用。

-f, --force

强制配置或取消配置接口。

--ignore-errors

如果任何命令或脚本失败,则继续。

-h, --help

显示选项摘要。

--allow=CLASS

仅允许 /etc/network/interfaces 中的 allow-CLASS 行中列出的接口被操作。

-i FILE, --interfaces=FILE

从 FILE 读取接口定义,而不是从 /etc/network/interfaces 读取。

--state-dir=DIR

将接口状态保存在 DIR 中,而不是保存在 /run/network 中。

-X PATTERN, --exclude=PATTERN

通过 PATTERN 从要操作的接口列表中排除接口。PATTERN 使用标准的 shell glob 语法。如果未使用 shell 通配符,则它必须与确切的接口名称匹配。此选项可以多次指定,从而导致排除多个模式。

-o OPTION=VALUE

将 OPTION 设置为 VALUE,就像它位于 /etc/network/interfaces 中一样。

-n, --no-act

不要配置任何接口或运行任何“up”或“down”命令。

--no-mappings

不要运行任何映射。有关映射功能的更多信息,请参阅 interfaces(5)。

--no-scripts

不要运行 /etc/network/if-*.d/ 中的任何脚本。

--no-loopback

禁用对环回接口的特殊处理。默认情况下,环回接口(在 Linux 上为 lo)在内部预定义为“auto”接口,因此在 ifup -a 上会自动激活。如果用户重新定义环回设备,则接口无论如何都只会配置一次。但是,如果另一个接口也被定义为环回接口,则它将像往常一样进行配置。指定此选项可禁用此行为,因此环回接口将不会自动配置。


-V, --version

显示版权和版本信息。

-v, --verbose

显示执行的命令。

-l, --list

对于 ifquery,列出所有匹配指定类的接口。如果没有指定类,则打印所有标记为自动的接口。

--state

对于 ifquery,转储接口的状态。如果没有指定接口,则列出所有一起启动的接口以及分配给它们的逻辑接口,并以状态码指示成功。如果指定了一个或多个接口,则仅显示这些接口的状态;如果所有指定的接口都已启动,则返回成功代码;否则,返回 0。

示例

ifup -a

启动所有在 /etc/network/interfaces 中定义为自动启动的接口。

ifup eth0

启动接口 eth0。

ifup eth0=home

将接口 eth0 作为逻辑接口 home 启动。

ifdown -a

关闭所有当前已启动的接口。

ifquery -l

打印所有使用 auto 关键字指定的接口的名称。

ifquery -l --allow=hotplug

打印所有使用 allow-hotplug 关键字指定的接口的名称。

ifquery eth0

显示 ifupdown 配置中指定的接口选项。每个键值对单独在一行上打印,使用“:”作为分隔符。

注意事项

ifup、ifdown 和 ifquery 实际上是同一个程序,通过不同的名称调用。

该程序不直接配置网络接口;它运行低级实用程序,例如 ip,来完成其工作。

在调用时,ifdown 会检查 ifup 是否仍在运行。在这种情况下,将发送 SIGTERM 信号给 ifup。

在接口停用期间,ifdown 忽略错误,就像指定了 --ignore-errors 一样。

文件

/etc/network/interfaces

网络接口的定义。有关更多信息,请参阅 interfaces(5)。

/run/network/ifstate

网络接口的当前状态

并发性

Ifupdown 使用每个接口的锁定,以确保对同一接口的并发 ifup 和 ifdown 调用按顺序执行。但是,对不同接口的调用可以并行运行。

退出状态

对于 ifup 和 ifdown,如果所有给定的接口都已成功(反)配置,则退出状态为 0;如果发生任何错误,则为 1。这些命令的结果是幂等的;在已经启动的接口上运行 ifup 将导致退出状态为 0,并且类似地,在未启动的接口上运行 ifdown 也会导致退出状态为 0。

ifquery 通常会在找到匹配的 iface 节时返回退出状态 0,否则返回 1。ifquery --state 也会在给定的接口已知但未启动时返回退出状态 1。

已知问题/限制

该程序会记录网络接口是启动还是关闭。在特殊情况下,这些记录可能与接口的实际状态不一致。例如,如果使用 ifup 启动接口,然后使用 ifconfig 停用接口,则该接口仍会被记录为启动状态。要修复此问题,可以使用 --force 选项来强制 ifup 或 ifdown 运行配置或反配置命令,而不管它认为接口的当前状态如何。


为了使 ifupifdown 正常工作,文件 /run/network/ifstate 必须是可写的。如果该位置不可写(例如,因为根文件系统以只读模式挂载用于系统恢复),则应将 /run/network/ifstate 设置为指向可写位置的符号链接。如果这不可能,则可以使用 --force 选项来运行配置或取消配置命令,而无需更新该文件。

请注意,该程序不会自动运行:单独使用 ifup 不会启动因安装硬件而出现的接口,单独使用 ifdown 也不一定会关闭因移除硬件而消失的接口。要自动配置网络接口,您需要安装其他软件包,如 udev(7)ifplugd(8)

作者

^ fupdown 套件由 Anthony Towns <_> 创建,目前由 Santiago Ruano Rincón <_> 和 Josue Ortega <_> 维护。

许多其他人也参与了 ifupdown 的开发,有关完整历史记录,请参阅 /usr/share/doc/ifupdown/changelog.Debian.gz

参见

^ nterfaces(5)ip(8),ifconfig(8)。