系统管理指南:IP 服务

使用 ifconfig 命令监视接口配置

可以使用 ifconfig 命令为接口手动指定 IP 地址并手动配置接口参数。此外,Oracle Solaris : 启动脚本还运行 ifconfig 来配置伪接口,例如 6to4 隧道端点。

本书介绍多个使用通用 ifconfig 命令的各种选项的任务。有关此命令及其选项和变量的完整说明,请参阅 ifconfig(1M) 手册页。ifconfig 的基本语法如下所示:

ifconfig interface [protocol-family]

Procedure如何获取有关特定接口的信息

使用 ifconfig 命令可确定有关特定系统的接口的基本信息。例如,执行简单的 ifconfig 查询便可获取以下信息:

以下过程说明了如何使用 ifconfig 命令来获取有关系统接口的基本配置信息。

  1. 在本地主机上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 获取有关特定接口的信息。


    # ifconfig interface
    

    ifconfig 命令的输出格式如下:

    • 状态行

      ifconfig 命令输出中的第一行包括接口名称以及当前与接口关联的状态标志。此外,状态行还包括为特定接口配置的最大传输单元 (maximum transmission unit, MTU) 以及索引号。使用状态行可确定接口的当前状态。

    • IP 地址信息行

      ifconfig 输出的第二行包括为接口配置的 IPv4 地址或 IPv6 地址。对于 IPv4 地址,还显示已配置的网络掩码和广播地址。

    • MAC 地址行

      以超级用户或类似角色的身份运行 ifconfig 命令时,ifconfig 输出包含第三行。对于 IPv4 地址,第三行显示了为接口指定的 MAC 地址(以太网层地址)。对于 IPv6 地址,输出中的第三行显示了 IPv6 in.ndpd 守护进程根据 MAC 地址生成的链路本地地址。


示例 8–1 使用 ifconfig 命令生成的基本接口信息

以下示例说明了如何使用 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

显示接口的以太网层地址。 


Procedure如何显示指定的接口地址

路由器和多宿主主机具有多个接口,并且通常为每个接口指定多个 IP 地址。可以使用 ifconfig 命令来显示为系统接口指定的所有地址,还可以使用 ifconfig 命令仅显示指定的 IPv4 或 IPv6 地址。要另外显示接口的 MAC 地址,您必须首先以超级用户或相应角色的身份登录。

有关 ifconfig 命令的更多信息,请参见 ifconfig(1M) 手册页。

  1. 在本地系统上,承担网络管理角色或成为超级用户。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 获取有关所有接口的信息。

    您可以使用 ifconfig -a 命令的变体执行以下操作:

    • 查看系统上所有接口的所有地址。


      # ifconfig -a
      
    • 查看为系统接口指定的所有 IPv4 地址。


      # ifconfig -a4
      
    • 如果本地系统启用了 IPv6,则显示为系统接口指定的所有 IPv6 地址。


      ifconfig -a6
      

示例 8–2 显示所有接口的地址信息

此示例显示只具有一个主网络接口 (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 


示例 8–3 显示所有 IPv4 接口的地址信息

此示例显示了为多宿主主机配置的 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


示例 8–4 显示所有 IPv6 接口的地址信息

此示例仅显示了为特定主机配置的 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 地址:

lo0

IPv6 回送地址。

inet6 fe80::a00:20ff:feb9:4c54/10

为主网络接口指定的链路本地地址。

inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64

IPv6 地址,包括子网前缀。输出中的 ADDRCONF 一词指示此地址是由主机自动配置的。