可以使用 ifconfig 命令为接口手动指定 IP 地址并手动配置接口参数。此外,Oracle Solaris : 启动脚本还运行 ifconfig 来配置伪接口,例如 6to4 隧道端点。
本书介绍多个使用通用 ifconfig 命令的各种选项的任务。有关此命令及其选项和变量的完整说明,请参阅 ifconfig(1M) 手册页。ifconfig 的基本语法如下所示:
ifconfig interface [protocol-family]
使用 ifconfig 命令可确定有关特定系统的接口的基本信息。例如,执行简单的 ifconfig 查询便可获取以下信息:
系统上所有接口的设备名称
为接口指定的所有 IPv4 地址以及所有 IPv6 地址(如果适用)
当前是否已配置这些接口
以下过程说明了如何使用 ifconfig 命令来获取有关系统接口的基本配置信息。
在本地主机上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
获取有关特定接口的信息。
# ifconfig interface |
状态行
ifconfig 命令输出中的第一行包括接口名称以及当前与接口关联的状态标志。此外,状态行还包括为特定接口配置的最大传输单元 (maximum transmission unit, MTU) 以及索引号。使用状态行可确定接口的当前状态。
IP 地址信息行
ifconfig 输出的第二行包括为接口配置的 IPv4 地址或 IPv6 地址。对于 IPv4 地址,还显示已配置的网络掩码和广播地址。
MAC 地址行
以超级用户或类似角色的身份运行 ifconfig 命令时,ifconfig 输出包含第三行。对于 IPv4 地址,第三行显示了为接口指定的 MAC 地址(以太网层地址)。对于 IPv6 地址,输出中的第三行显示了 IPv6 in.ndpd 守护进程根据 MAC 地址生成的链路本地地址。
以下示例说明了如何使用 ifconfig 命令来获取有关特定主机上的 eri 接口的信息。
# ifconfig eri eri0: flags=863<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 1 inet 10.0.0.112 netmask ffffff80 broadcast 10.8.48.127 ether 8:0:20:b9:4c:54 |
下表描述 ifconfig 查询中的变量信息,同时说明如何在屏幕上显示变量以及提供的信息类型。使用上述输出作为示例。
变量 |
屏幕输出 |
说明 |
---|---|---|
接口名称 |
eri0 |
指示已在 ifconfig 命令中请求其状态的接口的设备名称。 |
接口状态 |
flags=863<UP |
显示接口的状态,包括当前与接口关联的所有标志。可以据此确定接口当前已初始化 (UP) 还是未初始化 (DOWN)。 |
广播状态 |
BROADCAST |
指示接口支持 IPv4 广播。 |
传输状态 |
RUNNING |
指示系统正在通过接口传输包。 |
多点传送状态 |
MULTICAST, IPv4 |
显示接口支持多点传送传输。示例中的接口支持 IPv4 多点传送传输。 |
最大传输单元 |
mtu 1500 |
显示此接口的最大传输大小为 1500 个八位字节。 |
IP 地址 |
inet 10.0.0.112 |
显示为接口指定的 IPv4 或 IPv6 地址。示例接口 eri0 的 IPv4 地址为 10.0.0.112。 |
网络掩码 |
netmask ffffff80 |
显示特定接口的 IPv4 网络掩码。请注意,IPv6 地址不使用网络掩码。 |
MAC 地址 |
ether 8:0:20:b9:4c:54 |
显示接口的以太网层地址。 |
路由器和多宿主主机具有多个接口,并且通常为每个接口指定多个 IP 地址。可以使用 ifconfig 命令来显示为系统接口指定的所有地址,还可以使用 ifconfig 命令仅显示指定的 IPv4 或 IPv6 地址。要另外显示接口的 MAC 地址,您必须首先以超级用户或相应角色的身份登录。
有关 ifconfig 命令的更多信息,请参见 ifconfig(1M) 手册页。
在本地系统上,承担网络管理角色或成为超级用户。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
获取有关所有接口的信息。
您可以使用 ifconfig -a 命令的变体执行以下操作:
查看系统上所有接口的所有地址。
# ifconfig -a |
查看为系统接口指定的所有 IPv4 地址。
# ifconfig -a4 |
如果本地系统启用了 IPv6,则显示为系统接口指定的所有 IPv6 地址。
ifconfig -a6 |
此示例显示只具有一个主网络接口 (qfe0) 的主机的地址项。但是,ifconfig 输出显示当前为 qfe0 指定的三种形式的地址: 回送 (lo0)、IPv4 (inet) 和 IPv6 (inet6)。请注意,在输出的 IPv6 部分中,接口 qfe0 的行显示本地链路 IPv6 地址。qfe0 的第二个地址显示在 qfe0:1 行中。
% ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:b9:4c:54 lo0: flags=2000849 <UP,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 ether 8:0:20:b9:4c:54 inet6 fe80::a00:20ff:feb9:4c54/10 qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2 inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64 |
此示例显示了为多宿主主机配置的 IPv4 地址。不需要以超级用户的身份登录便可运行此形式的 ifconfig 命令。
% ifconfig -a4 lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:b9:4c:54 qfe1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:6f:5e:17 |
此示例仅显示了为特定主机配置的 IPv6 地址。不需要以超级用户的身份登录,便可运行此形式的 ifconfig 命令。
% ifconfig -a6 lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 inet6 ::1/128 qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 ether 8:0:20:b9:4c:54 inet6 fe80::a00:20ff:feb9:4c54/10 qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2 inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64 |
此 ifconfig 输出显示了为主机的单个接口指定的以下三种形式的 IPv6 地址:
IPv6 回送地址。
为主网络接口指定的链路本地地址。
IPv6 地址,包括子网前缀。输出中的 ADDRCONF 一词指示此地址是由主机自动配置的。