linux
网络配置、测试及故障诊断方法和工具
介绍了
ifconfig
、
ping
和
traceroute
的用法。
一、网络调试工具;
如果我们把一台机器接入网络中,通过网络配置工具的配置这时就要用到网络调试工具,目的是判断机器是否已经接入到网络以及网络连接是否正常。我们常用的在各个发行版通用的网络配置工具是
ifconfig
和
netconfig
,
ADSL
猫的拔号工具
rp-pppoe
,普通猫的拔号工具
kppp
和
wvdial
,
当然
Linux
各大发行版本又有自己的配置工具,这些特定发行版特别的配置工具是非常有效的,大多是图形界面的,操作也非常之简单。
1
、
关于网络接口及配置工具;
网络接口
(interface)
是网络硬件设备在操作系统中的表示方法,比如网卡在
Linux
操作系统中用
ethX,
是由
0
开始的正整数,比如
eth0
、
eth1...... ethX
。而普通猫和
ADSL
的接口是
pppX
,比如
ppp0
等;
在
Linux
操作系统中配置网络接口,一般是通过网络配置工具实现的,但最终目的还是通过网络配置工具来达到修改与网络相关的配置文件而起作用的。
由此说来,我们配置网络可以直接修改配置文件。比如网络网络接口(网卡)的
IP
地址、子掩码、网关,在
Redhat/Fedora
等或以
Redhat/Fedora
为基础的发行版中,一般要涉及到好几个文件,比如包括
/etc/sysconfig/network-scripts/ifcfg-eth0
等。
了解
Linux
网络配置文件是极为重要的,我们通过工具修改了什么,是怎么生效的,只有了解网络配置文件才能搞清楚。
由于
Linux
存在很多的发行和版本,大多发行版本都有自己的专用配置工具。主要是为了方便用户配置网络;但也有通用的配置工具,比如
ifconfig
、
ifup
、
ifdown
;
2
关于网络硬件设备的驱动
;
网络硬件,比如网卡(包括有线、无线),猫包括普通猫和
ADSL
猫等,都是需要内核支持的,所以我们首先得知道自己的网络设备是不是已经被硬内核支持了。如果不支持,我们得找驱动(或通过内核编译)来支持它,常见的通过安装驱动就可以解决,尤其是常用的网络硬件设备,现在发行的
linux
发行版几乎都支持;
3
、
ifconfig
配置网络接口的工具介绍;
ifconfig
是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。比如我们可以用这个工具来临时性的配置网卡的
IP
地址、掩码、广播地址、网关等。
ifconfig
查看网络接口状态;
ifconfig
如果不接任何参数,就会输出当前网络接口的情况;
[root@localhost]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:C0:9F:94:78:0E
inet addr:192.168.1.88 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:9fff:fe94:780e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:850 errors:0 dropped:0 overruns:0 frame:0
TX packets:628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:369135 (360.4 KiB) TX bytes:75945 (74.1 KiB)
Interrupt:10 Base address:0x3000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8121 (7.9 KiB) TX bytes:8121 (7.9 KiB)
eth0
表示第一块网卡,
其中
HWaddr
表示网卡的物理地址,
inet addr
用来表示网卡的
IP
地址;
lo
是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口;
如果我们想知道主机所有网络接口的情况,请用下面的命令;
[root@localhost]# ifconfig -a
如果我们想查看某个端口,比如我们想查看
eth0
的状态,就可以用下面的方法;
[root@localhost]# ifconfig eth0
ifconfig
配置网络接口;
ifconfig
可以用来配置网络接口的
IP
地址、掩码、网关、物理地址等;
用
ifconfig
为网卡指定
IP
地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。
如果您想把网络接口的
IP
地址固定下来,目前有三个方法:
一是通过各个发行和版本专用的工具来修改
IP
地址;
二是直接修改网络接口的配置文件;
三是修改特定的文件,加入
ifconfig
指令来指定网卡的
IP
地址,比如在
redhat
或
Fedora
中,把
ifconfig
的语名写入
/etc/rc.d/rc.local
文件中;
ifconfig
配置网络端口的方法:
ifconfig
工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;
ifconfig
网络端口 IP地址 hw MAC 地址 netmask 掩码地址 broadcast 广播地址 [up/down]
*
实例一:
比如我们用 ifconfig 来调试 eth0 网卡的地址
比如我们用 ifconfig 来调试 eth0 网卡的地址
[root@localhost]# ifconfig eth0 down
[root@localhost]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0
[root@localhost]# ifconfig eth0 up
[root@localhost]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:00:00:11:11
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x3400
[root@localhost]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0
[root@localhost]# ifconfig eth0 up
[root@localhost]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:11:00:00:11:11
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0x3400
第一行:
ifconfig eth0 down
表示如果
eth0
是激活的,就把它
DOWN
掉。此命令等同于
ifdown eth0
;
第二行:用 ifconfig 来配置 eth0 的 IP 地址、广播地址和网络掩码;
第三行:用 ifconfig eth0 up 来激活 eth0 ; 此命令等同于 ifup eth0
第四行:用 ifconfig eth0 来查看 eth0 的状态;
第二行:用 ifconfig 来配置 eth0 的 IP 地址、广播地址和网络掩码;
第三行:用 ifconfig eth0 up 来激活 eth0 ; 此命令等同于 ifup eth0
第四行:用 ifconfig eth0 来查看 eth0 的状态;
当然您也可以用直接在指定
IP
地址、网络掩码、广播地址的同时,激活网卡;要加
up
参数;比如下面的例子;
[root@localhost]# ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up
*
实例二:
设置网卡的物理地址(
MAC
地址);
比如我们设置网卡
eth1
的
IP
地址、网络掩码、广播地址,物理地址并且激活它;
[root@localhost]# ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up
或
[root@localhost]# ifconfig eth1 hw ether 00:11:00:00:11:22
[root@localhost]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up
或
[root@localhost]# ifconfig eth1 hw ether 00:11:00:00:11:22
[root@localhost]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up
其中
hw
后面所接的是网络接口类型,
ether
表示以太网,
同时也支持
ax25
、
ARCnet
、
netrom
等;
如何用
ifconfig
来配置虚拟网络接口;
虚拟网络接口指的是为一个网络接口指定多个
IP
地址,虚拟接口是这样的
eth0:0
、
eth0:1
、
eth0:2 ... .. eth1N
;
其实用
ifconfig
为一个网卡配置多个
IP
地址比较简单;看下面的例子;
[root@localhost]# ifconfig eth1:0 192.168.1.251 hw ether 00:11:00:00:11:33 netmask 255.255.255.0 broadcast 192.168.1.255 up
注意:
指定时,要为每个虚拟网卡指定不同的物理地址;
在
Redhat/Fedora
或与
Redhat/Fedora
类似的系统,您可以把配置网络
IP
地址、广播地址、掩码地址、物理地址以及激活网络接口同时放在一个句子中,写入
/etc/rc.d/rc.local
中。
如何用
ifconfig
来激活和终止网络接口的连接;
激活和终止网络接口的用
ifconfig
命令,后面接网络接口,然后加上
down
或
up
参数,就可以禁止或激活相应的网络接口了。当然也可以用专用工具
ifup
和
ifdown
工具;
[root@localhost]# ifconfig eth0 down
[root@localhost]# ifconfig eth0 up
[root@localhost]# ifup eth0
[root@localhost]# ifdown eth0
[root@localhost]# ifconfig eth0 up
[root@localhost]# ifup eth0
[root@localhost]# ifdown eth0
对于激活其它类型的网络接口也是如此,比如
ppp0
,
wlan0
等;不过只是对指定
IP
的网卡有效。
Redhat/Fedora
网络接口配置工具
;
由于
ifconfig
用起来比较麻烦,而且是用来测试网络之用,但这个工具并不能修改网络接口的相应配置文件。虽然也能通过把
ifconfig
配置网络接口的语句写入类似
/etc/rc.d/rc.local
文件中,但相对来说还是写入关于网络接口的配置文件中更为安全和可靠;但对于虚拟网络接口写入类似
/etc/rc.d/rc.local
中还是可以的;
网络接口配置文件
在
Redhat/Fedora
中,与以太网卡相关的配置文件位于
/etc/sysconfig/network-scripts
目录中,比如
ifcfg-eth0
、
ifcfg-eth1 .... ....
比如在
Fedora 5.0
中,
ifcfg-eth0
;
如果您用
DHCP
服务器来自动获取
IP
的,一般情况下
ifcfg-eth0
的内容是类似下面这样的;
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
如果您是指定
IP
的
,一般内容是类似下面的;
DEVICE=eth0
注:网络接口
ONBOOT=yes 注:开机引导时激活
BOOTPROTO=static 注:采用静态IP地址;
IPADDR=192.168.1.238 注:IP地址
NETMASK=255.255.255.0 注:网络掩码;
GATEWAY=192.168.1.1 注:网关;
ONBOOT=yes 注:开机引导时激活
BOOTPROTO=static 注:采用静态IP地址;
IPADDR=192.168.1.238 注:IP地址
NETMASK=255.255.255.0 注:网络掩码;
GATEWAY=192.168.1.1 注:网关;
下面的几个选项也可以利用;
HOSTNAME=linux
注:指定主机名;
DOMAIN=localdomain 注:指定域名;
HWADDR=00:00:11:22:00:aa 注:指定网卡硬件地址 (MAC地址), 也可以省略,不过这在这里来更改MAC地址一般是不能生效的。还是通过前面所说的ifconfig的办法来更改吧;