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 網卡命名規則]。