欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ifconfig详解 博客分类: linux命令 ifconfig 

程序员文章站 2024-03-20 12:38:04
...

ifconfig详解

无论是Linux 自动安装还是我们手工安装,Linux 都会向你询问有关网络的问题并配置相关的软件。这个用于配置网卡的基本命令就是ifconfigWindows下相应的命令是ipconfig)。在执行ifconfig 命令后,系统将在内核表中设置必要的参数,这样Linux 就知道如何与网络上的网卡通信。ifconfig 命令有以下两种格式:
ifconfig [interface]
ifconfig interface [aftype] option | address …

你可以使用ifconfig --help查看详细的参数。

.查看系统的网络配置情况

ifconfig 的第一种格式(或使用不带任何参数的ifconfig 命令)可以用来查看当前系统的网络配置情况。现在我们运行一下 ifconfig 命令,不带参数的ifconfig 命令可以显示当前启动的网络接口,其输出结果为:


-----------------------------------------------------------
[root@machine1 /sbin]#ifconfig
eth0 Link encap:Ethernet Hwaddr 52:54:AB D:6F:61
       inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
       RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
       TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:100
       Interrupt:5 Base address:0xece0
lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:3924 Metric:1
    RX packets:44 errors:0 dropped:0 overruns:0 frame:0
    TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
--------------------------------------------------------------------
其中以eth0 为首的部分是本机的以太网卡配置参数,这里显示了网卡在下的设备名/dev/eth0 和硬件的MAC 地址00:0c:29:10:3e:9fMAC 地址是生产厂家定的,每个网卡拥有的唯一地址。不过我们可以手工改动网卡的MAC 地址,只要我们在/etc/rc.d/init.d/中的network 中加入:
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
然后重启,此时再用ifconfig 命令查看一下,我们就会发现网卡的MAC 地址已经变成xx:xx:xx:xx:xx:xx了。
下一行显示本机的IP 地址信息,分别是本机的IP 地址,网络广播地址和子网掩码。必须确认这些信息都是正确无误的,否则Linux 服务器无法与其它网络设备建立连接。我们也可以手工实现IP Mac 地址的捆绑,命令是
arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC)
接下来显示的是设备的网络状态。UP代表网卡已开启;RUNNING代表网卡的网线被接上;MULTICAST代表支持组播;MTU(最大传输单元)和Metric(度量值)字段显示的是该接口当前的M T U 和度量值的值。按照惯例,度量值供某些操作系统所用,用于计算一条路由的成本。
再下来显示接口通信的网络统计值。RX TX 分别表示接收和传送的数据包。如果你的网卡已经完成配置却还是无法与其它设备通信,那么从RX TX 的显示数据上可以简单地分析一下故障原因。在这种情况下,如果你看到接收和传送的包的计数(packets)增加,那有可能是系统的IP 地址出现了混乱;如果你看到大量的错误(errors)和冲突(Collisions),那么这很有可能是网络的传输介质出了问题,例如网线不通或hub 损坏。
再下面的Interrupt:5 Base address:0xece0 显示的是网卡的中断调用号和端口号,这是两个非常重要的硬件配置信息。如果您的网卡是PCI 的,那么Linux 在引导时有可能会自动配置这些信息(也很有可能会让您手工配置)但目前绝大多数网卡都是PnP 的,这就需要我们进行手工配置了。如果您的网卡还没有配置好,那么运行:
[root@machine1 /sbin]#ifconfig
系统只会输出以lo 为首的部分。lo look-back 网络接口,从IP 地址127.0.0.1 就可以看出,它代表"本机"。无论系统是否接入网络,这个设备总是存在的,除非你在内核编译的时候禁止了网络支持,这是一个称为回送设备的特殊设备,它自动由Linux 配置以提供网络的自身连接。IP 地址127.0.0.1 是一个特殊的回送地址(即默认的本机地址),您可以在自己的系统上用 telnet IP 地址127.0.0.1 进行测试。如果有inetd进程在运行的话您会从自己的机器上获得登录提示符。Linux 可以利用这个特征在进程与仿真网络之间进行通信。(您有兴趣的话还可以试试本机的实际IP 地址,如这里的机器就是210.34.6.89,或者试试"localhost",或者"127.0.0.1",同样可以模拟网络通信。这可是Linux 一个非常突出的优点!)
如果你只是关心某个设备是否正常,可以在ifconfig 后面加上接口名字:

 

----------------------------------------------------------------------------------------------------------

[root@machine1 /sbin]# ifconfig eth0

eth0 Link encap:Ethernet HWaddr 52:54:AB D:6F:61
       inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
       RX packets:50568 errors:0 dropped:0 overruns:0 frame:198
       TX packets:3200 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:100
       Interrupt:5 Base address:0xece0

-------------------------------------------------------------------------------------------------------------
表示eth0 设备已经正常工作。

二、配置网络参数

如果我们使用了带有参数的 ifconfig 命令,那就可以手动设置网卡的配置参数了。有效的ifconfig 命令参数及其意义为(选项对应的特性可以打开也可以取消,只在选项名前加一个破折号(-)即可)

1.为单个网卡配置多个IP地址
有时需要为某个设备接口配置多个IP 地址,办法是使用设备别名,例如,eth0 设备可以有eth0eth0:0eth0:1....多个别名,每个都可以有一个独立的IP 地址:
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 210.34.6.88 netmask 255.255.255.128 broadcast 210.34.6.127
这样,210.34.6.89 210.34.6.88 都会被绑定在eth0 设备上,使用同样的网络设备,不同的IP 地址。

2.禁用与启用网卡
如果你要禁用某个网络接口,使用down 参数:
ifconfig eth0 down
将禁用eth0 网络接口。与之对应的是有一个参数up,不过由于是缺省值,所以从来不用。
up 标志接口处于" up"状态,也就是说, IP 层可以对其进行访问。这个选项用于命令行上给出一个地址之时。如果这个接口已被" down"选项临时性取消的话(与该选项对应的标记是UP RUNNING),还可以用于重新启用一个接口。down 标标志接口处于" down"状态,也就是说, IP 层不能对其进行访问。这个选项有效地禁止了IP 通信流通这个接口。注意,它并没有自动删除利用该接口的所有路由信息。如果永久性地取消了一个接口,就应该删除这些路由条目,并在可能的情况下,提供备用路由。

3.其他参数

-a :该选项告诉ifconfig显示所有接口信息,包括活动的和非活动的。

-s :这是一个短列表选项,它为每个接口显示一行摘要数据。该返回信息是有关接口活动性的,并且没有配置。该输出和netstat -i命令的返 回内容是一样的。

 

 

netmask addr :使用“netmask”选项使得你可以为一个给定接口设置网络掩码。要么给一个前面是0x 32 位十六进制号码,要么采用只适用于两台主机所用的点分四段式号码 例如,要为eth0设置网络掩码可以通过输入ifconfig eth0 netmask 255.255.255.0来完成。对于SLIP PLIP 接口来说,这个选项是必须配置的。

broadcast addr :当“broadcast”选项后面跟随一个地址参数,比如ifconfig eth0 broadcast 192.168.2.255,那么将设置指定接口 的广播地址。broadcast address 广播地址通常源于网络编号,通过设置主机部分的所有位得来。如果已经设置了广播地址, ifconfig 就会显示出一个BROADCAST 标记。

hw class addr :设置指定接口设备的MAC 地址,关键字的后面必须跟硬件名或者与之等价的ASCII码。目前支持的硬件类有ether, ax25, ARCnet netrom
metric number :该选项可用于为接口创建的路由表分配度量值。路由信息协议( RIP)利用度量值来构建网络路由表。ifconfig 所用的默认度量值是0。如果不运行RIP 程序,就没必要采用这个选项。如果要运行RIP 程序,就尽量不要改变这个默认的度量值。
mtu bytes 该选项用于设置最大传输单元,也就是接口一次能处理的最大字节数。对以太网接口来说, MTU的默认设置是1500 个字节;对SLIP 接口来说,则是296 个字节。
arp :这个选项专用于以太网或包广播之类的广播网络。它启用ARP(地址解析协议)来保护网络上各台主机的物理地址。对广播网来说,默认设置是" on"(开)。
promisc 将接口置入promiscuous(混乱)模式。广播网中,这样将导致该接口接收所有的数据包,不管其目标是不是另一台主机。该选项允许利用包过滤器和所谓的以太网窥视技术,对网络通信进行分析。通常情况下,这对揪出网络故障的元凶来说,是相当有用的。但另一方面,如果有人蓄意攻击你的网络,也可浏览到你的通信数据,进而获得密码,破坏你的网络。一项重要的保证措施是杜绝任何人将他们的计算机接入你的以太网。另一个选项用于保护某些身份验证协议的安全,比如 Kerberos SRA 登录套件(该选项对应的标记是PROMISC)。
traIlers 开或关闭跟踪器。目前在某些Linux 系统中还无法实现此功能。
allmulti :多播地址即是向不在同一个子网上的一组主机广播数据。多播地址尚未获得内核支持(该选项对应的标记是ALLMULTI)。

txqueuelen len :设置指定接口设备的发送队列长度。
由此可以看出有大量的参数可用于配置网卡,下面是在这台计算机上使用ifconfig 命令的实例:
------------------------------------------------------------------------------
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
------------------------------------------------------------------------------
该命令的作用是设置网卡eth0 IP 地址,网络掩码和网络的本地广播地址。同样的方式可以用来配置eth1eth2 等等,通常netmask broadcast 只要设置一个就可以了

摘自:http://blog.chinaunix.net/u1/49221/showart_404650.html

         http://hi.baidu.com/pavelliu/blog/item/1d63a464ceb445f0f63654ee.html

 

相关标签: ifconfig