3.3 Linux网络配置

Linux系统在服务器占用较大份额,使用计算机首先要了解网络配置,本节主要介绍Linux系统的网络配置。

3.3.1 Linux网络相关配置文件

Linux网络配置相关的文件根据不同的发行版目录名称有所不同,但大同小异,主要有以下目录或文件。

(1)/etc/hostname:主要功能在于修改主机名称。

(2)/etc/sysconfig/network-scrips/ifcfg-enoN:是设置网卡参数的文件,比如IP地址、子网掩码、广播地址、网关等,N为一串数字。

(3)/etc/resolv.conf:此文件设置了DNS相关的信息,用于将域名解析到IP。

(4)/etc/hosts:计算机的IP对应的主机名称或域名对应的IP地址,通过设置/etc/nsswitch.conf中的选项可以选择是DNS解析优先还是本地设置优先。

(5)/etc/nsswitch.conf(name service switch configuration,名字服务切换配置):规定通过哪些途径,以及按照什么顺序通过这些途径来查找特定类型的信息。

3.3.2 配置Linux系统的IP地址

要设置主机的IP地址,可以直接通过终端命令设置,如想设置在系统重启后依然生效,可以通过设置对应的网络接口文件,如【示例3-11】所示。

【示例3-11】

  [root@CentOS network-scripts]# cat ifcfg-eno33554984
  TYPE=Ethernet
  BOOTPROTO=none
  IPADDR0=192.168.146.150
  PREFIX0=24
  GATEWAY0=192.168.146.2
  DNS1=61.139.2.69
  DNS2=192.168.146.2
  DEFROUTE=yes
  IPV4_FAILURE_FATAL=no
  IPV6INIT=yes
  IPV6_AUTOCONF=yes
  IPV6_DEFROUTE=yes
  IPV6_PEERDNS=yes
  IPV6_PEERROUTES=yes
  IPV6_FAILURE_FATAL=no
  NAME=eno33554984
  UUID=3af72fa2-8186-4d54-83d7-8074fe8c057c
  ONBOOT=yes

主要字段的含义如表3.7所示。

表3.7 网卡设置参数说明

设置完ifcfg-eth0文件后,需要重启网络服务才能生效,重启后使用ifconfig查看设置是否生效:

  [root@CentOS network-scripts]# service network restart

同一个网络接口可以使用子接口的方式设置多个IP地址,如【示例3-12】所示。

【示例3-12】

  [root@CentOS ~]# ifconfig eno33554984:2 192.168.146.152 netmask 255.255.255.0
up
  [root@CentOS network-scripts]# ifconfig
  eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
          inet 192.168.146.150  netmask 255.255.255.0  broadcast 192.168.146.255
          inet6 fe80::20c:29ff:fe0b:780  prefixlen 64  scopeid 0x20<link>
          ether 00:0c:29:0b:07:80  txqueuelen 1000  (Ethernet)
          RX packets 6453  bytes 6525511 (6.2 MiB)
          RX errors 0  dropped 0  overruns 0  frame 0
          TX packets 2023  bytes 167541 (163.6 KiB)
          TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  eno33554984:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
          inet 192.168.146.152  netmask 255.255.255.0  broadcast 192.168.146.255
          ether 00:0c:29:0b:07:80  txqueuelen 1000  (Ethernet)

当服务器重启或网络服务重启后,子接口配置将消失,如需重启后依然生效,可以将配置子接口命令加入/etc/rc.local文件中。

3.3.3 设置主机名

主机名是识别某个计算机在网络中的标识,设置主机名可以使用hostname命令即可。在单机情况下主机名可任意设置,如以下命令,重新登录后发现主机名已经改变。

  [root@CentOS network-scripts]# hostname www.example.com

如要修改重启后依然生效,可以将主机名写入文件/etc/hostname中。如【示例3-13】所示。

【示例3-13】

  [root@www ~]# hostname
  www.example.com

3.3.4 设置默认网关

设置好IP地址以后,如果要访问其他的子网或Internet,用户还需要设置路由,在此不做介绍,这里采用设置默认网关的方法。在Linux中,设置默认网关有两种方法:

(1)第1种方法就是直接使用route命令,在设置默认网关之前,先用route –n命令查看路由表。执行如下命令设置网关。

  [root@CenOS /]# route add default gw 192.168.1.254

如果不想每次开机都执行route命令,则应该把要执行的命令写入/etc/rc.d/rc.local文件中。

(2)第2种方法是在/etc/sysconfig/network-scripts/ifcfg-接口文件中添加如下字段:

  GATEWAY=192.168.10.254

同样,只要是更改了脚本文件,必须重启网络服务来使设置生效,可执行下面的命令:

  [root@CentOS /]# service network restart

使用service命令时需要注意,由于CentOS 7中使用的是systemd,因此开启和停止服务通常使用systemctl代替,但也可以使用service。

提示

使用命令方式配置默认路由通常适用于临时测试。

3.3.5 设置DNS服务器

设置DNS服务器需修改/etc/resolv.conf文件即可。下面是一个resolv.conf文件的示例。

【示例3-14】

  [root@CentOS ~]#  cat /etc/resolv.conf
  nameserver  192.168.3.1
  nameserver  192.168.3.2
  options rotate
  options timeout:1 attempts:2

其中192.168.3.1为第一名字服务器,192.168.3.2为第二名字服务器,option rotate选项指在这2个dns server之间轮询,option timeout:1表示解析超时时间1s(默认为5s),attempts表示解析域名尝试的次数。如需添加DNS服务器,可直接修改此文件,需要注意的是使用nameserver指定的DNS服务器只有前三条生效。