ifconfig命令详解
时间:2006-03-12 来源:ghostzhu
ifconfig 命令
用途
配置或显示 TCP/IP 网络的网络接口参数。
语法
ifconfig Interface [ AddressFamily [ Address [ DestinationAddress ] ] [ Parameters... ] ]
ifconfig Interface [ ProtocolFamily ] Interface ProtocolFamily
ifconfig -a [ -l ] [ -d ] [ -u ] [ ProtocolFamily ]
描述
可以使用 ifconfig 命令指定网络接口地址,并配置或显示当前网络接口配置信息。在系统启动时必须使用 ifconfig 命令以定义机器上当前每个接口的网络地址。在系统启动后,也可以用来重新定义接口地址和其他的操作参数。网络接口配置保持在运行的系统上,而且必须在系统重新启动时复位。如果设置 IFF_MULTICAST 标志,ifconfig 命令将解释此标志并且打印它的值。
接口可以接收不同协议的传输,每个协议可能要求独立的命名模式。必须指定可能更改其余参数解释的 AddressFamily 参数。当前支持的地址系列是 inet、inet6 和 ns。
对于 DARPA-Internet 系列,inet,地址或是主机名数据库(即 /etc/hosts 文件)中的主机名,或是用因特网标准点分十进制表示法表示的 DARPA-Internet 地址。
对于 Xerox 网络系统(XNS)系列,ns,地址是 net:a.b.c.d.e.f.,其中 net 是指定的网络号码(以十进制表示),且主机号的每个 6 字节,a 到 f,用十六进制指定。在 10 兆以太网接口(使用硬件物理地址)和除了第一接口以外的接口上,可能省略主机号。
虽然任何用户可以查询网络接口状态,但只有有管理权限的用户才能修改接口配置。
ifconfig 功能在未提供可选参数时显示网络接口的当前配置。
如果指定协议系列,ifconfig 仅报告特定于该协议系列的详细信息。
仅有超级用户可以修改网络接口的配置。
以太网、令牌环和 FDDI 接口支持 Gratuitous ARP。这意味着当分配 IP 地址时,主机将发送一个关于其自身地址(新地址)的 ARP 请求去通知其它机器,以便其它机器能立即更新 ARP 项。也让主机检测重复的 IP 地址。如果获取 ARP 响应,错误将记录在 /var/adm/ras/errlog 中,可以使用 errpt 命令(或使用 SMIT 界面)查看错误标识 AIXIF_ARP_DUP_ADDR。
标志
-a | 可以随意地使用 -a 标志而不使用接口名称。此标志告诉 ifconfig 显示系统中所有接口信息。 |
-d | -d 标志显示关闭的接口。 |
-l | 可以使用此标志列出系统中所有可用接口,不带其它额外信息。此标志的使用和所有其它标志和命令相互排斥,除 -d 和 -u 以外。 |
-u | -u 标志显示启动的接口。 |
ProtocolFamily | 本标志指定诸如 tcp、udp、tcp6、udp6、icmp、icmp6 协议。 |
参数
Address | 指定网络接口的网络地址。对于 inet 系列,Address 参数是主机名或标准的点分十进制表示法的因特网地址。 |
AddressFamily | 指定要更改的网络地址系列。当前支持 inet、inet6 和 ns 地址系列。参数默认为 inet 地址系列。 |
DestinationAddress | 指定点对点链路的远程通讯端地址。 |
Interface |
指定显示或更改的网络接口配置值。在使用 ifconfig 命令时,必须用 Interface 参数指定接口。接口缩写包括:
在缩写后包括一个数字以标识特定的接口(例如,tr0)。 如果 Interface 还没有装入,ifconfig Interface 装入接口,netstat -in 列出它。在处理 Interface 状态查询时,装入接口(如果没有装入)以完成查询处理。 |
Parameter | 允许以下参数值: alias 建立接口的其它网络地址。当更改网络号码时,该参数对接受来自于老接口的信息包是有用的。 |
allcast 设置广播到网络上所有环的令牌环接口。 | |
-allcast 限制令牌环接口,以使其仅广播到本地环。 | |
arp 启用 ifconfig 命令来使用在网络层地址和链路层地址之间映射中的地址解析协议。arp 是缺省值。 | |
-arp 禁用地址解析协议。 | |
authority 为将来的使用保留。 | |
bridge 为将来的使用保留。 | |
-bridge 为将来的使用保留。 | |
broadcast Address (仅 inet)指定广播到网络的所用的地址。缺省广播地址的主机部分全部为 1。 | |
-dad (仅 inet6)不要重复执行 IPv6 地址检测。 | |
-debug 禁用依赖于驱动程序的调试代码。 | |
delete 删除指定的网络地址。用于别名没有正确地指定或不再需要别名时。不正确设置 ns 地址会产生指定网络地址的主机部分的副作用。删除所有 ns 地址,允许重新指定主机部分。 | |
device dev_name 此参数仅适用于 ATM 网络接口。指定与接口有关的设备名。不同于令牌环或以太网,在 ATM 的情况下,在接口和设备之间没有一对一的通信。在 ATM 的情况下,每一个设备都可能有多于一个的接口。 | |
detach 从网络接口列表中删除一个接口。如果拆离最后的接口,将卸装网络接口驱动程序代码。为了更改拆离附加接口的接口路由,必须拆离该接口并用 ifconfig 再次添加。 | |
down 标记接口为不活动(down),这禁止系统试图通过接口发送信息。如果可能的话,ifconfig 命令也重新设置接口以禁用消息接受。然而,使用该接口的路由不能自动地禁用。 | |
eui64 (仅 inet6)通过用接口标识替换给定地址的最后 64 字节计算得出真实 IPv6 地址。 | |
first 将 IPv6 地址放在接口的最前端,以作为解绑定套接字的源。此参数的使用语法是,
ifconfig interface inet6 first address |
|
firstalias (仅 inet6)同 alias,但在接口地址列表前设置此地址是为了选择它作为非绑定套接字的源。 | |
group ID 添加组标识到接口的组标识列表。当转发到达接口的信息包时,列表用于确定要使用的路由。 | |
-group ID 删除接口组标识列表中的组标识。当转发到达接口的信息包时,列表用于确定要使用的路由。 | |
hwloop 启用硬件回送。硬件回送指定接口处理的本地寻址信息包应该使用相应适配器发送。 | |
-hwloop 禁用硬件回送。硬件回送指定接口处理的本地寻址信息包应该使用相应适配器发送。 | |
ipdst 指定因特网主机,该主机将接收封装的、绑定到远程网络的 ns 信息包的 IP 信息包。构造一个表面上的点对点链路,指定的地址被视作目的地的 ns 地址和网络。 | |
ipv6dst 用来指定一个 IPv6 节点,该节点将接收通过隧道封装了 IPv6 或 IPv4 包的 IPv6 包。点到点隧道接口的表面上的目的地可能不是该信息包的真实目的地。然后,在隧道端点,解封装的信息包可以转发至它们的最终目的地。 | |
link [0-2] 启用接口的链路层的特定处理。这些是特定接口的三个选项。然而,在实际效果中,通常用于选择操作的特定方式。这种情况的一个示例是启用 SLIP 压缩或选择以太网卡连接器类型。请参阅针对特定驱动程序的联机帮助页以了解更多信息。 | |
-link [0-2] 禁用指定接口链路层的特定处理。 | |
metric Number 将接口的路由度量设置为 Number 变量指定的值。缺省值是 0(零)。路由协议(routed 守护进程)使用路由度量。较高的度量值将影响路由使其更少被采用。度量值被计为到目的网络或主机的累加跳数。 | |
mtu Value 设置系统最大的 IP 包大小。Value变量可以是从 60 到 65535 的任意值,但依赖于介质。有关按接口的最大传输单元(MTU)值,请参阅 《AIX 5L V5.2 系统管理指南:通信与网络》 中的"Automatic Configuration of Network Interfaces"。 | |
netmask Mask 指定把网络分为子网要保留的地址数目。此参数仅与 inet 地址系列一起使用。
Mask 变量包含本地地址的网络部分和从地址的主机域分得的子网部分。在标准的因特网点分十进制表示法中,可以 0x 开头的单一的十六进制数指定掩码,也可以以列在 /etc/networks 文件中的名称或别名开头。 在 32 位地址中,掩码包含为网络和子网保留的全 1 位和为特定主机保留的全 0 位。掩码至少应该包含标准网络部分,并且子网段应该和网络段邻接。 |
|
pvc 此参数仅适用于 ATM 网络接口。它指定本接口将只支持 PVC (永久虚电路)类型的虚拟连接。 | |
pktchain 启用该标志以表示该接口能够处理一起链接在输出路径上的多个信息包。 | |
-pktchain 禁用表示该接口能够处理一起链接在输出路径上的多个信息包的标志。 | |
svc_c server_addr 此参数仅适用于 ATM 网络接口。指定了此接口既支持 SVC(交换虚电路)也支持 PVC 类型的虚拟连接。它进一步指定了该接口将是一个 ARP 客户机。server_addr 是客户机所使用的 ARP 服务器的 20 个字节 ATM 地址的列表。以 xx.xx....xx 的格式指定地址。第一项看作主 ARP 服务器,其余的看作次 ARP 服务器。20 字节 ARP 服务器地址列表以逗号分隔。 | |
site6 设置 IPv6 站点值(缺省值是零)。这仅和多站点节点上的站点本地地址一起使用。 | |
svc_s 此参数仅适用于 ATM 网络接口。它指定了本接口既支持 SVC,也支持 PVC 类型的虚拟连接。它进一步指定了该接口将是本逻辑 IP 子网(LIS)的 ARP 服务器。 | |
security 为将来的使用保留。 | |
snap 为将来的使用保留。 | |
-snap 为将来的使用保留。 | |
tcp_nocksum 禁用验证到附加到接口的子网的本地流量的 TCP 数据校验和。继续 TCP、UDP 和 IP 头部分的校验和验证。继续对从本接口读取的或写到远程网络的接口的 TCP 数据的进行校验和验证。 | |
-tcp_nocksum 禁用验证到附加到接口的子网的本地流量的 TCP 数据校验和。这是缺省值。 | |
thread (仅 inet)为接口配置专用内核线程。此参数仅用在有多个 CPU 的 SMP 机器上。此参数促使输入包被设备驱动程序和输入解复用器处理后排列到内核线程中。此输入包由线程在 IP 和 TCP 或 UDP 中处理,而不是直接在中断级。设置此参数可以改善在中断处理期间高速适配器在单个 CPU 上造成瓶颈时的吞吐量,其手段是允许输入包在运行内核线程的其它 CPU 上得以处理(改善的流水线技术)。对于一些工作负载,由于线程调度的开销,此参数增加了每个信息包的开销,可能在高利用率的 CPU 上产生低的吞吐量。此参数仅适用于 AIX 4.3.3 或以后版本。 | |
-thread (仅 inet)配置禁用 thread 参数配置的内核线程支持。此参数仅适用于 AIX 4.3.3 或以后版本。 | |
up 将接口标记为活动(up)。当设置接口的第一个地址时自动地使用此参数。在 ifconfig down 命令后使用此参数启用接口。 | |
vipa_iflist 将本接口添加到应该使用该 vipa 作为外发包源地址的接口列表中。 | |
-vipa_iflist 从配置为使用该 vipa 作为外发包源地址的接口列表中删除本接口。 |
在 AIX 4.3.3 和以后的版本中,下列网络选项,通常被称为 ISNO(接口特定网络选项),能在每个接口的基础上配置:
rfc1323 [0 | 1] 启用或禁用由 RFC 1323(高性能的 TCP 扩展)指定的 TCP 增强。 为 1 的值指定所有使用此接口的 TCP 连接将试图与 RFC 增强协商。为 0 的值禁用所有使用此接口的连接的 rfc1323。套接字应用程序能以 setsockopt 子例程覆盖此 ISNO 和个别 TCP 连接上的全局行为。 -rfc1323 为该网络删除 rfc1323 的 ISNO 使用。套接字应用程序能使用 setsockopt 子例程的覆盖个别 TCP 连接上全局行为。 tcp_mssdflt Number 设置远程网络通信中缺省的最大段大小。如果在这接口上通信,套接字使用 Number 作为缺省的最大段的大小值。 -tcp_mssdflt 为 tcp_mssdflt 删除 ISNO 使用。相反,使用由 /usr/sbin/no 操作的全局值。 tcp_recvspace Size 指定接收数据的接口套接字的缺省套接字缓冲区 Size。缓冲区大小影响由 TCP 使用的窗口大小。(更多信息,请参阅 no 命令。) -tcp_recvspace 删除 tcp_recvspace 的 ISNO 使用。而使用全局值。 tcp_sendspace Size 指定发送数据的接口套接字的缺省套接字缓冲区 Size。缓冲区大小影响由 TCP 使用的窗口大小。(更多信息,请参阅 no 命令。) -tcp_sendspace 删除 tcp_sendspace 的 INSO 使用。而使用全局值。 tcp_nodelay [0 | 1] 指定在接口上使用 TCP 的套接字在发送数据时遵循 Nagle 算法。缺省情况下,TCP 使用 Nagle 算法。 -tcp_nodelay 删除 tcp_nodelay 选项的 ISNO 使用。 注:ifconfig 设置的 ISNO 参数在下次重新引导时丢失。如果要使 ISNO 永久,请使用 chdev 命令去更改每个接口的 ODM 数据库。使用 lsdev -E -l [interface] 查看接口属性及 chdev -l -a [attribute=value] 更改需要的属性。例如:lsattr -E -l en0 chdev -l en0 -a tcp_sendspace=65536
示例
以下是在 TCP/IP 和 XNS 网络上使用 ifconfig 命令的示例:
Inet 示例
- 查询串行 IP 接口状态,以下列格式输入命令:
ifconfig sl1
此例中,查询的接口是 sl1。命令运行结果与以下相似:
sl1: flags=51<UP,POINTOPOINT,RUNNING> inet 192.9.201.3 --> 192.9.354.7 netmask ffffff00
- 配置本地回送接口,以下列格式输入命令:
ifconfig lo0 inet 127.0.0.1 up
- 把本地令牌环接口标记为当机,以下列格式输入命令:
ifconfig tr0 inet down
此例中,标记的接口是 token0。
注:仅有 root 用户权限的用户能修改网络接口配置。 - 为 en5 上的所有连接(假定全局值是 1)关闭 rfc1323,输入:
ifconfig en0 rfc1323 0
- 要配置使用 vipa 接口的列表,请输入:
ifconfig vi0 vipa_iflist en0,en1,tr0
- 要卸下配置为使用 vipa 的接口,请输入:
ifconfig vi0 -vipa_iflist en1,tr0
- 要查找配置使用 vipa 的接口,比如 vi0,请输入:
ifconfig vi0
XNS 示例
- 为 XNS 配置标准以太网类型接口,以下列格式输入命令:
ifconfig en0 ns 110:02.60.8c.2c.a4.98 up
此例中,ns 是 XNS 地址系列,110 是网络号,02.60.8c.2c.a4.98 是主机号,对于每个独立接口它是唯一的以太网地址。当有多个以太网硬件接口时要指定主机号,因为缺省值可能与正确地址不一致。以太网地址能通过该命令获得:
ifconfig en0 netstat -v
XNS 地址能以以下示例的几种方式表示:
- 123#9.89.3c.90.45.56
- 5-124#123-456-900-455-749
- 0x45:0x9893c9045569:90
- 0456:9893c9045569H
第一个例子中 XNS 地址是十进制格式。第二例子中的地址被分成用 -(减号)分隔的三个数字的组。0x 和 H 地址是十六进制格式。最后,最后一个地址前的 0 表示数字是八进制格式。
- 配置 XNS 的 IEEE 以太网 802.3 类型接口,以下列格式输入命令:
ifconfig et0 ns 120:02.60.8c.2c.a4.98 up
即使使用同一个以太网适配器,en0 和 et0 接口也被认为是独立的接口。只要有独立的网络号码,两个独立的网络可以同时定义和使用。支持多个以太网适配器。
注:主机号应该与硬件适配器的以太网地址一致。系统可有多个主机号。 - 配置网际网封装的 XNS 接口,以下列格式输入命令:
ifconfig en0 inet 11.0.0.1 up ifconfig en0 ns 110:02.60.8c.2c.a4.98 up ifconfig en0 ns 130:02.60.8c.34.56.78 ipdst 11.0.0.10
第一个命令启动具有 inet 地址 11.0.0.1 地址的网际网。第二命令配置 en0 接口,使其成为 ns 地址系列中的 110 网络和 02.60.8c.2c.a4.98 主机。这定义了 XNS 包被封装在网际网包中时要使用的主机号。最后的命令确定网络 130,主机号 02.60.8c.34.56.78,和网际网目标地址 11.0.0.10。最后的项新建一个网络接口,nsip。关于接口信息,可使用 netstat -i 命令获得。
以下转自:http://www.chinaitlab.com/www/special/linux4.asp#4
· ifconfig
设定网络参数使用的指令
语法:
说明:
ifconfig 这个东西也很好玩!尤其是你在你的网络卡尚未设定完成的时候,而且确定网络卡已经成功的驱动上来时,可以使用这个 ifconfig 来驱动你的网络卡呦!另外,他的最大用处其实是来自于可以查看你的网络适配卡的参数啦!所以最常使用的就是直接输入『 ifconfig 』或者是『 ifconfig eth0 』或者是『 ifconfig ppp0 』等等的用法!倒是不建议直接用来修改你的网络卡啦!不过,如果确定要使用 ifconfig 来修改你的网络适配卡,那么可以参考上面的例子来修改呦!同时, ifconfig 也是用来做成『多 IP 』的主要指令呢!好了,我们来谈一谈上面几个简单的项目内容吧!
o eth0 :表示为网络卡的代号;
o lo :表示为『内部循环 IP 』的网络卡代号,请注意,这个虚拟的 interface 一定要存在!千万不要关掉他!
o HWaddr :是网络卡的硬件地址,就是我们 前面 提到的 MAC 啦!
o inet addr :就是网络卡的 IP;
o Bcast :是广播( broadcast ) 的地址;
o Mask :就是子网掩码啦;
o MTU :是 Maximum Trasmission Unit 最大传输单元(字节),即此接口一次所能传输的最大封包,也可以参考底下的 MTU 说明。
o RX :网络由激活到目前为止的接收情形;
o TX :网络由激活到目前为止的传送情形;
o collisions :网络讯号碰撞的情况说明;
o txqueuelen :是传输缓冲区长度大小意思;
o Interrupt :是 IRQ 中断地址;
o Base address :是 I/O 地址。这个 IRQ 与 I/O 在网络卡上面是可以设定的!设定的地方可以在 /etc/lilo.conf 里头来设定呢!如果你的主机上面有多张网络卡的时候,就用的着他了!可以避开问题呦!
总而言之, ifconfig 也是一个很好用的指令啦!但是有一点必须要清楚的,那就是 ifconfig eth0 up 或者是 ifconfig eth0 down 可以使用 ifup eth0 或 ifdown eth0 来替代!不过有一点必须要先说明的,那就是 ifup 与 ifdown 是以 /etc/sysconfig/network-scripts/ifcfg-ethn 的档案来进行激活的!所以 ifcfg-eth0 必须存在才能使用 ifup !OK!底下马上来说说 ifup, ifdown。
· ifup, ifdown
激活与关闭某个网络适配卡
语法:
说明:
这两个指令要比 ifconfig 简单的多!不过他却必须要有相关的档案存在才能激活呦!举个例子来说,上面我们要激活 eth0 这块网络卡的时候,那么你的 Linux 系统当中就必须要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 这个网络适配卡的设定档案才行!同理可证!如果要激活 eth1 ,除了存在 eth1 这个实体网络卡之外,还要存在 ifcfg-eth1 才行!请确实了解呦!因为后面我们提到的一张网卡多 IP 就是用这个观念来达成的!