运维日记016 -- RHEL6基础网络配置总结

本文是RHEL6基础网络配置的总结,涵盖网卡名称、查看配置、网络配置文件等内容。介绍了如何查看和设置IP地址、别名、子网掩码、网关及DNS,强调了/etc/hosts文件和/etc/resolv.conf的重要性,并讲解了网络配置的基本流程。同时,讨论了网卡别名的配置方法,包括启用和配置别名IP地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运维日记016 – RHEL6基础网络配置总结

Linux下的基础网络配置主要包含网卡IP地址、网卡别名、子网掩码、网关以及DNS等的配置,以使得Linux主机可以和网络上的其他主机互联互通。以下对相关内容做一总结。

网卡名称

Linux内核将其检测到的网卡自动命名为ethX(X为数字,0,1,2…)。Linux下一个网卡也可以有多个名称,这叫做别名(aliases)。比如eht0网卡的别名通常命名为eth0:1、eht0:2等,每个别名都会被当做一个独立的网卡对待。当需要为一个物理网卡绑定多个IP地址时候,就需要使用网卡别名来实现。

查看当前的网卡配置

  • IP

通常用ifconfig或者ip命令查看当前网卡IP地址配置。如:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:F1:3F:CA  
          inet addr:192.168.1.115  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fef1:3fca/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10369 (10.1 KiB)  TX bytes:9375 (9.1 KiB)

而ip命令则更加强大灵活。首先它也可以查看当前的网卡配置信息:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00: 00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff

$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.115/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::a00:27ff:fef1:3fca/64 scope link
       valid_lft forever preferred_lft forever

这里首先用ip link命名查看了当前系统内的所有网卡(lo是本地回环网卡),然后用ip addr命令查看eth0的具体配置信息。这里的stat UP表示该网卡已启用,qlen 1000表示eth0是一个千兆网卡。

  • Route

我们可用ip route命令查看当前路由:

# ip route
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.111 
169.254.0.0/16 dev eth0  scope link  metric 1002 
default via 192.168.1.1 dev eth0 

我们看到最后一行default via 192.168.1.1 dev eth0,含义是eth0网卡使用默认路由是192.168.1.1。

也可用route命令查看路由表:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
  • DNS

DNS配置信息保存在/etc/resolv.conf文件中。

# cat /etc/resolv.conf
search sailor.com
nameserver 192.168.1.1

其中search sailor.com表示DNS后缀。

另外DNS可以分为默认的DNS和仅对某网卡生效的DNS。/etc/resolv.conf保存的是全局DNS,对所有网卡都有效。而网卡还可以设置仅仅对该网卡有效的DNS,例如:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.254

显然,192.168.1.254这个DNS仅仅当eth0激活时对eth0有效,它可以覆盖默认DNS。

  • Hostname

Hostname即主机名,可用通过hostname命令查看:

# hostname
sailor-m.sailor.com
  • 本地的名称解析

Linux主机应该确保可以将自身主机名解析为正确的IP地址,这是通过/etc/hosts文件实现的。

# cat /etc/hosts
192.168.1.111   sailor-m.sailor.com     sailor-m
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

网络配置文件

传统UNIX的网络配置文件保存在/etc/sysconfig/network-scripts目录下,RHEL6也继承了这一传统。但是RHEL6还有另一套网络配置文件保存在/etc/sysconfig/networking目录下。如何两者配置不一致,系统优先采用前者的配置。如果手工配置网络,则需确保这两套配置体系的一致和同步,否则系统会产生紊乱。因此,推荐用户使用Redhat开发的网络配置工具system-config-network或者system-config-network-tui,可以自动同步两套配置文件,节省了不少工作量也避免了出错。

其中system-config-network-tui可以在字符终端界面下运行,而system-config-network则依赖XWidnows,推荐安装前者。

# yum install system-config-network-tui

启动system-config-network-tui,配置完成后,使用service network restart,则网络配置生效。

另外,RHEL6提供了一个NetworkManager服务用于自动化的对网络进行配置。这个服务对于网络环境经常变化(如笔记本电脑)的情形提供了很大便利,但对于服务器应用,最好将该服务关闭,避免它自动对网络进行设置。

# service NetworkManager stop
# chkconfig NetworkManager off

网络配置基本流程

网络配置可依据以下流程对各项进行设置:

  1. IP Address
  2. Network mask
  3. Gateway
    # need to have network restarted after modify 1, 2, 3
  4. DNS
  5. DNS suffix
    # no need to restart network after modify 4, 5
  6. Hostname
    # usually need to restart the machine after modify 6
  7. /etc/hosts (hostname must be resolved anytime)
    # no need to restart the network after modify 7

其中,步骤1~3可以用system-config-network-tui工具进行设置,配置完成后需要重启网络服务以生效。当然也可以通过ip、ifconfig命令或者直接修改配置文件进行设置,但较复杂容易出错,不推荐。


对于步骤4、5即全局的DNS和DNS后缀,可以直接修改/etc/resolv.conf文件,修改完成后无需重启网络服务而立即生效。


对于步骤6即hostname,可以通过修改/etc/sysconfig/network文件实现。

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=wjm.rhel_sailor.com
GATEWAY=192.168.1.1

这个文件中的NETWORKING=yes可以开启或者关闭整个系统的网络;HOSTNAME=wjm.rhel_sailor.com设置了系统的主机名;GATEWAY=192.168.1.1设置了系统的默认路由,而在/etc/sysconfig/network-scripts/ifcfg-ethX(X为数字)文件中配置的是针对该网卡的路由,它可以覆盖默认路由,如果ifcfg文件没有设置路由,则默认路由生效。修改了hostname之后,通常需要重启整个系统才能生效。


对于步骤7即/etc/hosts文件,这个文件实现了在本地对主机名称进行解析。当Linux主机需要进行主机名解析时,会先访问/etc/hosts文件,如果本地解析不成功,再查询DNS。可以将自身的主机名和一些经常需要解析的主机名放在/etc/hosts文件中,用以加快解析速度。这里给出一个/etc/hosts文件的例子:

# cat /etc/hosts
127.0.0.1   localhost.localdomain    localhost
192.168.1.100    linumu100.com    linumu100
192.168.1.120   ftpserver    ftp120

一般情况下hosts文件的每行尾一个主机,每行由三部分组成,每个部分由空格隔开。第一部分:网络IP地址;第二部分:主机名或域名;第三部分:主机名别名。

网卡别名

当需要为一块物理网卡绑定多个IP地址时,需要使用网卡别名(alias)。简单的方法可以手动配置ifcfg文件来实现。

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.254

下面对这个配置文件的主要项进行解释。DEVICE="eth0"表示设备名为eht0;BOOTPROTO="none"表示是否启用DHCP,none表示不启用;ONBOOT="yes"表示启动时激活该网卡;IPADDR、DNS1、GATEWAY几项分别设置该网卡的IP、DNS和网关;USERCTL=no表示不允许非root用户控制该网卡。另外还可以有NM_CONTROLLED="yes"表示该网卡受Network Manager服务的控制,实时生效而无需重启网络服务,这其实是很大的安全隐患,很容易造成网络中断,建议设置为no。

接下来演示如何设置网卡子卡(别名):

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:0
# vi ifcfg-eth0:0

首先将ifcfg-eth0文件复制一份命名为ifcfg-eth0:0,然后vi打开ifcfg-eht0:0文件,修改其中的设备名称和IP地址项:

# cat ifcfg-eth0:0
DEVICE="eth0:0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.112
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.1

可以看到,设备名改为eht0:0(必须和文件命一致),IP地址改为192.168.1.112。重启网络即可生效。

# service network restart

# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.111/24 brd 192.168.1.255 scope global eth0
    inet 192.168.1.112/24 brd 192.168.1.255 scope global secondary eth0:0
    inet6 fe80::a00:27ff:fef1:3fca/64 scope link 
       valid_lft forever preferred_lft forever

这里可以看到eth0网卡已有了192.168.1.111/24和192.168.1.112/24两个IP地址。另外请记住,子卡必须使用静态IP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值