Red Hat Enterprise Linux 6.4网络操作系统详解
上QQ阅读APP看书,第一时间看更新

7.2 任务2 熟练使用常用的网络配置命令

7.2.1 子任务1 配置主机名

确保主机名在网络中是唯一的,否则通信会受到影响,建议设置主机名时要有规则地进行设置(比如按照主机功能进行划分)。

(1)打开Linux的虚拟终端,使用vim编辑/etc/hosts文件,修改主机名localhost为RHEL6。

修改后的效果如图7-1所示。

图7-1 修改主机名后的效果

(2)通过编辑/etc/sysconfig/network文件中的HOST NAME字段修改主机名。

        NETWORKING=yes
        NETWORKING_ipv6=no
        HOSTNAME=rhel6.localdomain
        GATEWAY=192.168.0.254

此处修改主机名为RHEL6。

注意:如果hosts文件中没有设置本地解析就可以不用修改主机名。修改主机名后需要重启系统使之生效。

我们设置完主机名生效后,可以使用hostname查看当前主机的名称。

        [root@rhel6~]# hostname
        RHEL6

(3)可以使用两个简单的命令临时设置主机名。

① 最常用的是使用hostname来设置,格式如下:

        hostname  主机名

② 使用sysctl命令修改内核参数,格式如下:

        sysctl kernel.hostname=主机名

这样两个设置是临时的,重启系统后设置失效。

7.2.2 子任务2 使用ifconfig配置IP地址及辅助IP地址

大多数Linux发行版都会内置一些命令来配置网络,而ifconfig是最常用的命令之一。它通常用来设置IP地址和子网掩码以及查看网卡相关的配置。

1.配置IP地址

格式:

        ifconfig网卡名ip地址netmask子网掩码

我们使用ifconfig命令来设置IP地址,修改IP地址为192.168.0.168。

        [root@rhel6~]#ifconfig eth0192.168.0.168  netmask  255.255.255.0

直接使用ifconfig命令可以查看网卡配置信息,如IP地址、MAC地址、收发数据包情况等,以此可以查看修改是否成功,如图7-2所示。

图7-2 使用ifconfig命令可以查看网卡配置信息

执行命令后,ifconfig命令会显示所有激活网卡的信息,其中eth0为物理网卡,lo为回环测试接口。每块网卡的详细情况通过标志位表示。

2.配置虚拟网卡的IP地址

在实际工作中,可能会出现一块网卡需要拥有多个IP地址的情况,可以通过设置虚拟网卡来实现。

命令格式如下:

        ifconfig网卡名:虚拟网卡ID IP地址netmask子网掩码

为第一块网卡eth0设置一个虚拟网卡,IP地址为192.168.0.208,子网掩码为255. 255.255.0。如果不设置netmask,则使用默认的子网掩码。

        [root@rhel6~]#ifconfig eth0:1192.168.0.208 netmask  255.255.255.0

7.2.3 子任务3 禁用和启用网卡

(1)对于网卡的禁用和启用,依然可以使用ifconfig命令。

命令格式如下:

        ifconfig  网卡名称  down           #禁用网卡
        ifconfig  网卡名称  up             #启用网卡

使用ifconfig eth0 down命令后,在Linux主机上还可以ping通eth0的IP地址,但是在其他主机上就ping不通eth0地址了。

使用ifconfig eth0 up命令后启用eth0网卡。

(2)使用ifdown eth0和ifup命令也可以实现禁用和启用网卡的效果。

命令格式如下:

        ifdown  网卡名称                     #禁用网卡
        ifup    网卡名称                      #启用网卡

注意:如果使用ifdown eth0禁用eth0网卡,在Linux主机上也不能ping通eth0的IP地址。

7.2.4 子任务4 更改网卡的MAC地址

MAC地址也叫物理地址或者硬件地址。它是全球唯一的地址,由网络设备制造商生产时写在网卡内部。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每两个十六进制数之间用冒号隔开,比如00:0C:29:EC:FD:83就是一个MAC地址。其中前6位十六进制数00:0C:29代表网络硬件制造商的编号,它由IEEE(电气电子工程师学会)分配,而后3位16进制数EC:FD:83代表该制造商所制造的某个网络产品(如网卡)的系列号。

更改网卡MAC地址时,需要先禁用该网卡,然后使用ifconfig命令进行修改。

命令格式如下:

        ifconfig网卡名hw ether MAC地址

将eth0网卡的MAC地址修改为00:11:22:33:44:55,命令如下。

        [root@rhel6~]# ifdown eth0
        [root@rhel6~]# ifconfig  eth0  hw  ether  00:11:22:33:44:55

通过ifconfig命令可以看到eth0的MAC地址已经被修改成00:11:22:33:44:55了。

注意:①如果不先禁用网卡会发现提示错误,修改不生效。②ifconfig命令修改IP地址和MAC地址都是临时生效的,重新启动系统后设置失效。可以通过修改网卡配置文件使其永久生效。具体可以参看后面的网卡配置文件。

7.2.5 子任务5 使用route命令

route命令可以说是ifconfig命令的黄金搭档,也像ifconfig命令一样几乎所有的Linux发行版都可以使用该命令。route通常用来进行路由设置,比如添加或者删除路由条目以及查看路由信息,当然也可以设置默认网关。

1)route命令设置网关

route命令格式如下:

        route add default gw ip地址              #添加默认网关
        route del default gw ip地址              #删除默认网关

我们把Linux主机的默认网关设置为192.168.1.254,设置好后可以使用route命令查看网关及路由情况,如图7-3所示。

图7-3 设置网关

在图7-3中,Flags用来描述该条路由条目的相关信息,如是否活跃、是否为网关等,U表示该条路由条目为活跃,G表示该条路由条目要涉及网关。

注意:te命令设置网关也是临时生效的,重启系统后失效。

2)查看本机路由表信息

        [root@RHEL6~]# route
        Kernel IP routing table
        Destination   Gateway          Genmask        Flags  Metric  Ref  Use  Iface
        192.168.1.0  *             255.255.255.0  U     0      0   0   eth0
        169.254.0.0  *             255.255.0.0    U     0      0   0   eth0
        default       192.168.1.254    0.0.0.0         UG     0       0    0    eth0

各项信息的含义如下。

• Destination:目标网络的IP地址,可以是一个网络地址,也可以是一个主机地址。

• Gateway:网关地址,即该路由条目中下一跳的路由器IP地址。

• Genmask:路由项的子网掩码,与Destination信息进行“与”运算后得出目标地址。

• Flags:路由标志。其中U表示路由项是活动的,H表示目标是单个主机,G表示使用网关,R表示对动态路由进行复位,D表示路由项是动态安装的,M表示动态修改路由,“! ”表示拒绝路由。

• Metric:路由开销值,用于衡量路径的代价。

• Ref:依赖于本路由的其他路由条目。

• Use:该路由项被使用的次数。

• Iface:该路由项发送数据包使用的网络接口。

3)添加/删除路由条目

在路由表中添加路由条目,其命令语法格式为:

        route add -net/host网络/主机地址  netmask子网掩码 [dev网络设备名] [gw网关]

在路由表中删除路由条目,其命令语法格式为:

        route del -net/host网络/主机地址  netmask

下面是几个配置实例。

(1)添加到达目标网络192.168.1.0/24的网络路由,经由eth1网络接口,并由路由器192.168.2.254转发。(命令如果在一行写不下,可以使用转义符。)

        [root@RHEL6~]# route add -net 192.168.1.0 netmask 255.255.255.0\
                      >gw 192.168.2.254 dev eth1

(2)添加到达192.168.1.10的主机路由,经由eth1网络接口,并由路由器192.168.2.254转发。

        [root@RHEL6~]# route add -host 192.168.1.10 gw 192.168.2.254 dev eth1

(3)删除到达目标网络192.168.1.0/24的路由条目。

        [root@RHEL6~]# route del -net 192.168.1.0 netmask 255.255.255.0

(4)删除到达主机192.168.1.10的路由条目。

        [root@RHEL6~]# route del -host 192.168.1.10

注意:如果添加/删除的是主机路由,则不需要子网掩码netmask。

7.2.6 子任务6 网卡配置文件

在更改网卡MAC地址时已经说过,ifconfig设置IP地址和修改网卡的MAC地址以及后面的route设置路由和网关时,配置都是临时生效的。也就是说,在重启系统后配置都会失效。怎么解决这个问题来让配置永久生效呢?可以直接编辑网卡的配置文件,通过参数来配置网卡,让配置永久生效。网卡配置文件位于/etc/sysconfig/network-scripts/目录下。

每块网卡都有一个单独的配置文件,可以通过文件名来找到每块网卡对应的配置文件。例如:ifcfg-eth0就是eth0这块网卡的配置文件。可以通过编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件进行配置来查看效果,如图7-4所示。

图7-4 eht0网卡的配置效果

        [root@RHEL6~]# vim  /etc/sysconfig/network-scripts/ifcfg-eth0
        [root@rhel6~]# vim  ifcfg-eth0

每个网卡配置文件都存储了网卡的状态,每一行代表一个参数值。系统启动时通过读取该文件所记录的情况来配置网卡。常见的参数解释如表7-1所示。

表7-1 网卡配置文件常参数

修改过网卡配置文件后,需要重新启动network服务或重新启用设置过的网卡,使配置生效。

注意:重启网卡时,如果出现“正在关闭接口eth0”“错误:断开设备‘eth0'(/org/freedesktop/NetworkManager/Devices/0)”“失败:This device is not active”等信息说明网卡没法工作,未被激活,检查网卡配置文件,一定保证“ONBOOT”的值是“yes”。然后再使用“service network start”启动网卡即可。

7.2.7 子任务7 使用setup命令

RHEL6支持以文本窗口的方式对网络进行配置,CLI命令行模式下使用setup命令就可以进入文本窗口,如图7-5所示(替代命令为system-config-network)。

图7-5 在文本窗口三项式下对网络进行配置

        [root@RHEL6~]# setup

用Tab键或Alt+Tab组合键在元素间进行切换,选择“网络配置”选项,按Enter键确认进入配置界面。可以对主机上的网卡eth0进行配置,界面简易明了,不再详述。

7.2.8 子任务8 图形界面配置工具

在Red Hat Enterprise Linux 6中图形化的网络配置,是在桌面环境下的主菜单中选择“系统”→“首选项”→“网络连接”命令,打开“网络配置”对话框,选中System eth0,然后单击“编辑”,可以给eth0配置静态IP地址、子网掩码、网关、DNS等,如图7-6所示。

图7-6 配置网络

7.2.9 子任务9 修改resolv.conf并设置DNS

Linux中设置DNS客户端时可以直接编辑/etc/resolv.conf,然后使用nameserver参数来指定DNS服务器的IP地址。

        [root@RHEL6~]# vim /etc/resolv.conf
        search  RHEL6-1
        nameserver  192.168.0.1

192.168.0.1是首选DNS服务器地址,如果下面还有nameserver字段,则为备用DNS地址,也可以指定更多的DNS服务器地址在下面,当指定的DNS服务器超过3台时,只有前3台DNS服务器地址是有效的。客户端在向服务器发送查询请求时,会按照文件中的顺序依次发送,当第1台DNS服务器没有响应时,就会去尝试向下一台DNS服务器查询,直到发送到最后一台DNS服务器为止。所以建议将速度最快、稳定性最高的DNS服务器设置在最前面,以确保查询不会超时。

7.2.10 子任务10 使用service

/etc/service是一个脚本文件,利用service命令可以检查指定网络服务的状态,启动、停止或者重新启动指定的网络服务。/etc/service通过检查/etc/init.d目录中的一系列脚本文件来识别服务名称,否则会显示该服务未被认可。service命令的语法格式如下:

        service服务名start/stop/status/restart/reload

例如,要重新启动network服务,则命令及运行结果如下所示:

        [root@RHEL6~]# service network restart

注意:利用service命令中的“服务名”只能是独立守护进程而不能是被动守护进程。