linux 网络配置、测试及故障诊断方法和工具 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

介绍了 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 <HW> MAC地址 netmask 掩码地址 broadcast 广播地址 [up/down]

实例一:
比如我们用 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

第一行: ifconfig eth0 down 表示如果 eth0 是激活的,就把它 DOWN 掉。此命令等同于 ifdown 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

其中 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

对于激活其它类型的网络接口也是如此,比如 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

如果您是指定 IP ,一般内容是类似下面的;

DEVICE=eth0 注:网络接口
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的办法来更改吧;