REHL系Linux的网络管理涉及主要内容如图所示
1. 配置工具
主要有两组工具,一个是net-tools系列,一个是iproute2系列。其中net-tools是一组很经典但同时很古老的工具,已经很长时间没人维护了。但是还必要学它,因为还有很多人在使用它。当别人在代码中用到它的时候,你至少需要知道它在干什么。
iproute2是目前主流的网络管理工具,各种网络资源(如网卡、IP地址、路由和隧道等)的配置,均是ip命令的二级对象,命令接口更直观,另外它仍然处于开发状态,版本已经迭代到3.x。
命令基本使用方法可以在[Linux命令大全]这个网站搜到。
二者的区别,可以通过[iproute2 对决 net-tools]这篇文章了解到。
2. 配置文件
通过配置工具所设置的配置信息是直接通知内核调整工作状态的,因此会立即生效,但是副作用是系统或是网络服务重启就会失效。而通过配置文件所设置的配置信息刚好相反,不会立即生效,只会在系统或网络服务重启时载入生效。
/etc/hosts是本地域名解析库,结构如下。需要做域名解析时,主机会在请求DNS服务器帮忙解析之前,先检查此本地域名解析库,如果有相应结果,就直接使用,而不用再去找DNS服务器了。
127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar 146.82.138.7 master.debian.org master 209.237.226.90 www.opensource.org
/etc/resolv.conf是配置DNS服务器地址的配置文件。
[root@localhost ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 172.18.0.1
/etc/sysconfig/network-scripts/ifcfg-IFACE是网卡配置文件,其中IFACE是网卡名。以下是基本配置项的含义。
DEVICE:此配置文件对应的设备的名称; ONBOOT:在系统引导过程中,是否激活此接口; UUID:此设备的惟一标识; IPV6INIT:是否初始化IPv6; BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none; TYPE:接口类型,常见的有Ethernet, Bridge; DNS1:第一DNS服务器指向; DNS2:备用DNS服务器指向; DOMAIN:DNS搜索域; IPADDR: IP地址; NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码; GATEWAY:默认网关; USERCTL:是否允许普通用户控制此设备; PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许; HWADDR:设备的MAC地址; NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
/etc/sysconfig/network-scripts/route-IFACE是与网卡相关的路由配置,有两种配置方式。
10.10.10.0/24 via 172.18.0.1 default via 192.168.0.1
或者
ADDRESS1=10.10.10.0 NETMASK1=255.255.255.0 GATEWAY1=172.18.0.1 ADDRESS2=0.0.0.0 NETMASK2=0.0.0.0 GATEWAY2=192.168.0.1
3. CentOS-7中引入的新特性
NetworkManager服务,其实在CentOS-6中就已经引入了该服务,希望用来接管network服务,但是由于它很不稳定,所以基本上CentOS-6安装完的第一件事就是把NetworkManager服务关了,换回network服务。而在CentOS-7中NetworkManager已趋于稳定,所以需要掌握它,它提供了两个命令接口,一个是nmcli命令行接口,一个是nmtui文本图形化接口。
nmcli的使用方式参照[ RedHat/CentOS 7.x 中使用 nmcli 命令管理网络]
nmtui和CentOS-6及以前的setup和system-config-network使用方法差不多,界面比较友好,使用简单。
主机名配置,使用hostnamectl来替代以前的hostname。hostnamectl修改主机名是立即生效,且重启不会失效的,因为它将配置结果写入的配置文件。CentOS-7中主机名的配置文件也由之前的/etc/sysconfig/network变为了/etc/hostname,不过仍然保留了/etc/sysconfig/network。
另外是网卡的命令方式也发生很大变化,之前的版本都是类似于eth0、eth1这样的,CentOS-7中引入了新的命名规则,参照[Centos 7 网卡命名规则]。