CentOS7下的網絡配置管理

一、讓配置永久有效的辦法:修改配置文件

  1. 與網卡相關(課配置網卡的IP,掩碼,網關,DNS)

    /etc/sysconfig/network-scripts/ifcfg-INTERFACE

ifcfg-eno.png

字段解釋:

TYPE            #接口類型 常見Ethernet,Bridge
BOOTPROTO       #分配ip時候采用的協議,一般有dhcp或者static。設定為static的時候,還要提供IPADDR和NETMASK
DNS1            #在這個文件里面,我們也可以指定dns服務器,局域網內一般是填網關的ip,可以定義3個。
NM_CONTROLED    #是否由NetworkManager控制,Centos6上建議為no。
USERCTL         #是否可由用戶激活該設備,建議為no
ONBOOT          #是否開機啟動
PEERDNS         #如果BOOTPROTO為dhcp,是否允許dhcp服務器分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf

網卡命名機制

systemd對網絡設備的命名方式 CentOS7

a.如果固件(Firmware)或BIOS為主板上集成的設備(即,板載設備),如eno1。如果不成立,則方案b備選生效。    #集成網卡
b.如果Firmware或BIOS為PCI-E擴展槽,如ens1。如果也不成立,則方案c備選生效。                       #獨立網卡
c.如果硬件接口的物理位置拓撲信息可用,如enp2s0。如果也不成立,則方案e備選生效。                    #usb網卡
d.如果用戶顯式啟動,也可根據MAC地址進行命名,如enx237a1dc56                                      #默認關閉
e.以上都不成立,傳統命名方式,如eth0

延伸:通過配置文件來給網卡,配置多IP地址

配置文件:新建一個ifcfg-別名 (注意:需要關閉NetworkManager)

cp ifcfg-eth0 ifcfg-eth0:0

網卡別名1.png

首先我們復制一份網卡的配置,用作修改。

網卡別名2.png

接著使用vim刪除一些不必要的信息,添加一行onparent=yes來表示設備附屬于eno16777736

然后使用service network restart 來重啟一下服務。

網絡別名3.png

我們可以看見接口那里多了一個eno16777736:0,而且物理地址和eno16777736相同。

接著我們使用ping命令來嘗試一個能不能使用端口連通外網

網卡別名4_ping.png

ping命令

    -c    #指定次數
    -I    #指定源ip

ssh.png

甚至ssh連上去再ping

不過需要注意的是給網卡拿多一個ip(ip別名)不支持dhcp自動獲取,要手動指定靜態ip。

2.路由相關的配置文件 (路由就是指路,告訴別人路怎么走)

    /etc/sysconfig/network-scripts/route-INTERFACE (route-eth0)#默認不存在
        兩種定義路由的風格:
      1. Target via GW
      #要訪問Target的ip,就要走GW這個網關。
      #按照格式來說的話就是,如果你的目標是Target,那么你的下一跳(via)就去找GW這個ip。
                
       2.每三行定義一條路由
       ADDRESS0=192.168.0.0
       NETMASK0=255.255.255.0
       GATEWAY0=192.168.0.1
                    
      #這三行的意思是:想要與這個網段(ipAddress+Netmask)的ip通信的話,就要從指定的網關(GATEWAY)走
      #所以就是每三條定義一個路由。

route -n.png

首先,我們使用route -n來查看當前的路由有哪些。

我們可以看見,

第一行表示,假如目標是外部網絡(Destination 0.0.0.0),則走192.168.2.1這個網關(Gateway)。U表示啟用,G是網關。

第二行表示,如果目的地是192.168.2.0/24的這個私有地址網段,則不需要網關。則可以進行內部通信。 

3.dns服務器指定

        /etc/resolv.conf            #最多可以出現三次,不僅可以在這里配置,也可以在網卡那里單獨指定DNS服務器
        nameserver DNS_SERVER_IP1
        nameserver DNS_SERVER_IP2
        nameserver DNS_SERVER_IP3
        
resolv.conf的關鍵字主要有四個,分別是:
nameserver             #定義DNS服務器的IP地址
domain               #定義本地域名
search               #定義域名的搜索列表
sortlist              #對返回的域名進行排序

resolv.conf.png

因為網卡那里開啟了PEERDNS,所以網卡啟動的時候讀取到的DNS服務器已經輸入到這個文件中。

4.主機名相關

/etc/hostname

二、讓配置即時(臨時)生效的辦法:使用命令管理

ip命令        #功能強大,可以用于替換ifconfig和nmcli

使用ip help來獲得幫助。而且這個命令,可以省略輸入,或者使用tab鍵來補全,所以忘記的時候,可以盡情地按tab鍵。

常用的子選項

link    #管理網絡設備的

常用組合

ip link set DEVICE [ up | down ]

需要注意的是,如果把ip別名設置為down的話,整個設備都會變成down。

ip link set eno16777736:0 down

那么eno16777736這個網卡也會down掉。

在練習使用ip命令的時候,推薦直接使用虛擬機,不要用xshell等工具連接。

因為使用ip link和ip addr flush等命令會經常斷線。

addr    #配置ip地址

Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ]
                                    [ CONFFLAG-LIST ]
       ip addr del IFADDR dev STRING [mngtmpaddr]
       ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ]
                            [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up]
       ip addr {showdump|restore}
名詞解釋:    #|表示多選一,[]表示可選選項
IFADDR := PREFIX | ADDR peer PREFIX
          [ broadcast ADDR ] [ anycast ADDR ]
          [ label STRING ] [ scope SCOPE-ID ]
SCOPE-ID := [ host | link | global | NUMBER ]
FLAG-LIST := [ FLAG-LIST ] FLAG
FLAG  := [ permanent | dynamic | secondary | primary |
           tentative | deprecated | dadfailed | temporary |
           CONFFLAG-LIST ]
CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG
CONFFLAG  := [ home | nodad | mngtmpaddr | noprefixroute ]
LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ]
LFT := forever | SECONDS

常用組合:

1.給設備添加ip,并設置ip別名。

ipaddr add IP_ADDRESS dev DEVICE label IP_ALIAS   ip別名可以通過ifconfig看到。

ip-addr-add label.png

2.刪除指定的ip

ip addr del.png

3.指定并查看特定狀態的設備

ipaddr show_.png

ip addr show表示顯示全部設備的ip地址,可以簡寫成ip a。

或者用選項來篩選,如上面這條命令則是表示顯示第二子網,scope類型為global的ip。

    scope 作用域(一般很少主動設置)

    global    #ip全局有效#ip在內核上,能相應外部的請求
    link     #僅配置的那個設備有相應#ip只在設備上,接受請求的網卡有這個ip才會響應,否則不會轉發。
    host     #僅本機內部有有響應#ip只在本機通信中有用,就像被人ping不到我們的127.0.0.1一樣

4.替換IP地址

ip-addr-replace.png

5..清空所有ip

ip addr flush dev DEVICE

ip addr flush.png

注意:連接了xshell做ip命令的練習的話,會經常斷開很麻煩。

所以練習的時候還是不要用xshell,直接在虛擬機那里做試驗。


route    #配置路由

常用組合:

add TARGET via GW  dev INTERFACE src SOURCE_IP   #添加路由條目
add default via GW dev INTFACE                     #設置默認網關
1.添加默認路由。

iproute default.png

這個案例中,我們可以看出只有兩個私有地址地址的路由

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
#第一條是,訪問192.168.0.0/24這個網段的ip,往eno16777736這個接口走。
#第二條是,訪問192.168.2.0/24這個網段的ip,往eno16777736這個接口走。
所以訪問外網地址的時候,我們便無處可走。
所以要添加一條路由,訪問外網要怎么走。
#添加ip route add default via 192.168.2.1 dev eno16777736則是告訴大家:
#如果不是訪問上面兩個私有網段的地址,則其余的都讓192.168.2.1這個ip作為網關幫忙轉發。

2.刪除特定路由條目

iproute del.png

三、查看網絡狀態的工具

網絡狀態查看

1.netstat

        -n        #num,不解析域名,顯示為ip狀態
        -t        #顯示tcp相關的狀態
        -u        #顯示udp相關的狀態
        -l        #listen,顯示狀態為監聽的鏈接
        -p        #program,顯示相關進程
        -e        #擴展格式
        -r        #raw socket,裸套接字
        -a        #顯示監聽狀態和非監聽狀態

常用組合:

tnl-nul.png

netstat -tnl    #把以tcp協議傳輸且處于監聽狀態的端口,以ip形式輸出。
netstat -unl    #把以udp協議傳輸且處于監聽狀態的端口,以ip形式輸出。

tan-uan.png

netstat -tan    #輸出tcp協議的端口狀態
netstat -uan    #輸出udn協議的端口狀態

顯示路由表

    -r     #顯示路由表

    -n     #ip格式

netstat-nr.png

2.ifconfig

-a          #什么都不加,或者-a的時候,表示顯示當前所有設備的ip,包括ip別名。
DEVICE IPADDRESS    #為設備指定ip地址,立即生效。但重啟網絡之后還是按配置文件來。

ifconfig.png

重啟網卡之后,ip別名還是取回網卡設置192.168.2.133這個ip。

3.nmcli    (NetworkManager的rpm安裝而來) 

如果關了NetworkManager服務的話,是不能用的。

這個命令有一個很有趣的地方,就是子命令可以省略輸入

nmcli.png

而且我們可以看到,這個device子命令,顯示的是實體的設備。

之前配置的eno16777736:0的IP別名,在這里只會顯示成設備的一個ip。

這點與ifconfig的不一樣。

4.hostnamectl,hostname查看主機名或獲得本機的IP

hostnamectl.png


原創文章,作者:菠菜,如若轉載,請注明出處:http://www.www58058.com/13528

(1)
菠菜菠菜
上一篇 2016-03-27
下一篇 2016-03-28

相關推薦

  • 如何實現本地yum源的共享

    上一篇關于Linux yum客戶端的配置的博客,介紹了如何通過修改本機yum配置文件來訪問網絡或者本地的yun sever, 本文就來介紹一下,如何把我們的本地RPM包像yum sever一樣通過http或ftp網絡方式共享出去。 一、準備好發行版光盤,包,元數據    CentOS-6.8-x86_64-bin-DVD1.iso二、準備…

    2017-06-17
  • 程序包管理

    Windows與Linux不兼容 庫級別虛擬化: Linux:WINE Windows:Cygwin   程序包管理器: debian:deb,dpt redhat:rpm,rpm   Archlinux Gentoo   獲取rpm程序包的途徑: 1、系統發行版光盤或官方的服務器 centos鏡像: http://mirror…

    Linux干貨 2018-01-04
  • shell腳本編程

    一、編程基礎: shell腳本是包含一些命令或聲明,并符合一定格式的文本文件 shell腳本的用途有: 自動化常用命令 執行系統管理和故障排除 創建簡單的應用程序 處理文本或文件 1)     第一步:使用文本編輯器來創建文本文件 script.sh 并編寫內容 格式要求:首行shebang &nb…

    Linux干貨 2016-08-15
  • DNS和BIND配置(第二部分)

    接第一部分課后練習 三、課后練習: 2、配置反向解析: 步驟一:寫主配置文件:改成與上個實驗相同,也可以自己寫一個簡單的配置文件,如下: [root@localhost tmp]# cat named.conf.new options { directory  "/var/named&qu…

    Linux干貨 2016-10-17
  • bash腳本編程練習:判斷、循環

      1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i sumlogin=0 declare -i sumnologin=0 for&nbs…

    Linux干貨 2016-11-22
  • 網絡班N22期第五周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@bogon ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&nb…

    Linux干貨 2016-09-15
欧美性久久久久