Red Hat Enterprise Linux 7 與 CentOS 7 中默認的網絡服務由 NetworkManager 提供,這是動態控制及配置網絡的守護進程,它用於保持當前網絡設備及鏈接處於工做狀態,同時也支持傳統的 ifcfg 類型的配置文件。linux
NetworkManager 能夠用於如下類型的鏈接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移動3G)以及 IP-over-InfiniBand。針對與這些網絡類型,NetworkManager 能夠配置他們的網絡別名,IP 地址,靜態路由,DNS,×××鏈接以及不少其它的特殊參數。緩存
能夠用命令行工具 nmcli 來控制 NetworkManager。服務器
在CentOS / RHEL 7中網絡管理命令行工具,也叫nmcli。常用ifconfig的用戶應該在CentOS 7中避免使用ifconfig了。nmcli的功能要強大、複雜的多。網絡
地址配置工具:nmclidom
nmcli – command-line tool for controlling NetworkManageride
命令語法:工具
nmcli[ OPTIONS ] OBJECT { COMMAND | help }性能
OBJECT和COMMAND能夠用全稱也能夠用簡稱,最少能夠只用一個字母,建議用頭三個字母。OBJECT裏面咱們平時用的最多的就是connection和device,這裏須要簡單區分一下connection和device。測試
device叫網絡接口,是物理設備命令行
device -show and manage network interfaces nmcli device help
connection是鏈接,偏重於邏輯設置
connection -start, stop, and manage network connections nmcli connection help
多個connection能夠應用到同一個device,但同一時間只能啓用其中一個connection。這樣的好處是針對一個網絡接口,咱們能夠設置多個網絡鏈接,好比靜態IP和動態IP,再根據須要up相應connection
修改IP地址等屬性:
# nmcli connection modify IFACE [+|-]setting.propertyvalue
setting.property: ipv4.addresse ipv4.gateway ipv4.dns1 ipv4.methodmanual | auto
修改配置文件執行生效:systemctl restart network 或 nmcli con reload
nmcli命令生效:nmclicon down eth0 ; nmclicon up eth0
使用nmcli配置網絡:
NeworkManager是管理和監控網絡設置的守護進程
設備即網絡接口,鏈接是對網絡接口的配置。一個網絡接口可有多個鏈接配置,但同時只有一個鏈接配置生效。
顯示全部包括不活動鏈接
nmcli con show
顯示全部活動鏈接
nmcli con show –active
顯示網絡鏈接配置
nmcli con show "System eth0「
顯示設備狀態
nmcli dev status
顯示網絡接口屬性
nmcli dev show eno16777736
使用示例:
顯示全部包括不活動鏈接:
[root@CentOS 7 ~]# nmcli connection show
其中NAME內容爲網卡配置文件中定義的NAME內容,修改配置文件NAME項,能夠更更名稱,修改後能夠選擇重啓網絡服務:「命令:systemctl restart network」 ;或者重讀配置文件「命令:nmcli con reload」,使其生效。
上圖中「Wired connection 1」爲一個有線鏈接,因爲DEVICE選項爲空,沒有與網卡綁定,使其並未生效。
建立新鏈接default,IP自動經過dhcp獲取
# nmcli con add con-name default type Ethernet ifname eth0
刪除鏈接
# nmcli con del default
建立新鏈接static ,指定靜態IP,不自動鏈接
# nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ip4 172.25.X.10/24 gw4 172.25.X.254
con add – 添加新的鏈接
con-name – 鏈接名 type – 設備類型 ifname – 接口名 autoconnect no – 禁止開機自動啓動
因爲命令過長,要善於使用TAB鍵補全,命令完成後,會在/etc/sysconfig/network-scripts/下生成一個配置文件,可是並未生效。如:
[root@slave ~]# nmcli con add con-name ens38_static ifname ens38 type ethernet autoconnect no ipv4.method manual ipv4.addresses 192.168.111.2/24 ipv4.gateway 192.168.111.254 ipv4.dns 8.8.8.8
例:建立以個名字爲home的,類型爲以太網卡,綁定網卡爲eth1,開機自動啓動,定義ipv4地址和網關
[root@CentOS 7 ~]# nmcli connection add con-name home type ethernet ifname
eth1 autoconnect yes ip4 10.1.252.60/24 gw4 10.1.0.254
能夠看到直接生成配置文件,可是網卡沒有綁定,因此並無生效。
咱們須要將這個接口啓用
啓用static鏈接配置
nmcli con up static
啓用default鏈接配置
nmcli con up default
查看幫助
nmcli con add help
[root@CentOS 7 ~]# nmcli connection up home
這樣,home接口已經生效,能夠正常使用。但同一時間只能綁定在一個接口上。平時若是工做須要,能夠多設置幾套配置文件,環境須要時能夠進行臨時的切換。
當不須要再用時可使用:nmcli connection delete home刪除
[root@CentOS 7 ~]# nmcli connection delete home
Connection 'home' (2443d6ec-f92e-4402-b15c-9eec15405852) successfully deleted.
修改鏈接設置
nmcli con mod「static」 connection.autoconnect no
nmcli con mod 「static」 ipv4.dns 172.25.X.254
nmcli con mod 「static」 +ipv4.dns 8.8.8.8
nmcli con mod 「static」 -ipv4.dns 8.8.8.8
nmcli con mod 「static」 ipv4.addresses 「172.25.X.10/24 172.25.X.254」
nmcli con mod 「static」 +ipv4.addresses 10.10.10.10/16
命令修改與配置文件對照表:
設備配置被保存在文本文件中
/etc/sysconfig/network-scripts/ifcfg-<name>
幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt
模板:
修改鏈接配置後,須要從新加載配置
nmcli con reload
nmcli con down 「system eth0」 可被自動激活
nmcli con up 「system eth0」
nmcli dev dis eth0 禁用網卡,訪止被自動激活
圖形工具
nm-connection-editor
例:
[root@CentOS 7 ~]# nmcli con mod home +ipv4.addresses 10.1.114.114/24
[root@CentOS 7 ~]# nmcli con up home
[root@CentOS 7 ~]# ip addr
網絡組Network Teaming
網絡組是將多塊 網卡 邏輯地鏈接到一塊兒從而容許故障轉移或者提升吞吐率的方法。提升服務器網絡可用性的一個方式是使用多個網卡。Linux 綁定驅動程序提供了一種將多個網卡聚合到一個邏輯的綁定接口的方法。這是個新的實現綁定的方法,並不影響 linux 內核中舊綁定驅動。
網絡組:是將多個網卡聚合在一塊兒方法,從而實現冗錯和提升吞吐量
網絡組不一樣於舊版中bonding技術,提供更好的性能和擴展性
網絡組由內核驅動和teamd守護進程實現.
多種方式
runner broadcast roundrobin activebackup loadbalance lacp(implements the 802.3ad Link Aggregation Control Protocol)
啓動網絡組接口不會自動啓動網絡組中的port接口
啓動網絡組接口中的port接口不會自動啓動網絡組接口
禁用網絡組接口會自動禁用網絡組中的port接口
沒有port接口的網絡組接口能夠啓動靜態IP鏈接
啓用DHCP鏈接時,沒有port接口的網絡組會等待port接口的加入
建立網絡組接口
nmcli con add type team con-name CNAME ifname INAME [configJSON]
CNAME鏈接名,INAME接口名 JSON指定runner方式 格式:'{"runner": {"name": "METHOD"}}' METHOD能夠是broadcast,roundrobin, activebackup,loadbalance, lacp
建立port接口
nmclicon add type team-slave con-name CNAME ifname INAME master TEAM
CNAME鏈接名 INAME網絡接口名 TEAM網絡組接口名
鏈接名若不指定,默認爲team-slave-IFACE
nmcli dev dis INAME
nmcli con up CNAME
INAME設備名CNAME網絡組接口名或port接口
實驗:建立網絡組
一、建立網絡組team0,會在/etc/sysconfig/network-scripts/目錄下生成ifcfg-team0文件
# nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}' ipv4.addr 10.1.252.60/16 ipv4.gw4 10.1.0.1
二、添加DNS
# nmcli connection modify team0 ipv4.dns 8.8.8.8
三、加入組成員
# nmcli connection add con-name team0-eth0 type team-slave ifname eth0 master team0
# nmcli connection add con-name team0-eth1 type team-slave ifname eth1 master team0
四、啓動
nmcli connection up team0
nmcli connection up team0-eth0
nmcli connection up team0-eth1
五、查看狀態
# teamdctl team0 stat
使用nmcli配置主機名
rhel6以前主機名配置文件:/etc/sysconfig/network
rhel7.0主機名配置文件:/etc/hostname ,默認沒有這個文件,經過DNS反向解析獲取主機名,主機名默認爲:localhost.localdomain
顯示主機名信息
hostname hostnamectl status
建立並修改文件並生效
hostnamectl set-hostname desktopX.example.com
刪除文件,恢復主機名localhost.localdomain
DNS設置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示當IP經過dhcp自動獲取時,dns還是手動設置,不自動獲取。等價於下面命令:
nmclicon mod 「system eth0」 ipv4.ignore-auto-dns yes
ip是iproute2軟件包裏面的一個強大的網絡配置工具,它可以替代一些傳統的網絡管理工具。
例如:ifconfig、route等,
上面的示例徹底能夠用下面的ip命令實現,並且ip命令能夠實現更多的功能.下面介紹一些示例:
4.0 ip命令的語法
ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
4.1 ip link set–改變設備的屬性. 縮寫:set、s
示例1:up/down 起動/關閉設備。
ip link set dev eth0 up
這個等於傳統的
ifconfig eth0 up
ifconfig eth0 down
示例2:改變設備傳輸隊列的長度。
參數:txqueuelen NUMBER或者txqlen NUMBER
ip link set dev eth0 txqueuelen 100
示例3:改變網絡設備MTU(最大傳輸單元)的值。
ip link set dev eth0 mtu 1500
示例4: 修改網絡設備的MAC地址。
參數: address LLADDRESS
ip link set dev eth0 address 00:01:4f:00:15:f1
4.2 ip link show–顯示設備屬性. 縮寫:show、list、lst、sh、ls、l
-s選項出現兩次或者更屢次,ip會輸出更爲詳細的錯誤信息統計。
示例:
ip -s -s link ls eth0
這個命令等於傳統的
ifconfig eth0
—————————
5.1 ip address add–添加一個新的協議地址. 縮寫:add、a
示例1:爲每一個地址設置一個字符串做爲標籤。爲了和Linux-2.0的網絡別名兼容,這個字符串必須以設備名開頭,接着一個冒號,
ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0
等價於
ifconfig eth0:5 192.168.4.1/28
ip addr add local 192.168.4.1/28 dev eth0
示例2: 在以太網接口eth0上增長一個地址192.168.20.0,掩碼長度爲24位(155.155.155.0),標準廣播地址,標籤爲 eth0:Alias:
ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1
這個命令等於傳統的:
ifconfig eth1:1 192.168.4.2/24
5.2 ip address delete–刪除一個協議地址. 縮寫:delete、del、d
ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:Alias1
5.3 ip address show–顯示協議地址. 縮寫:show、list、lst、sh、ls、l
ip addr ls eth0
5.4.ip address flush–清除協議地址. 縮寫:flush、f
示例1 : 刪除屬於私網10.0.0.0/8的全部地址:
ip -s -s a f to 10/8
示例2 : 取消全部以太網卡的IP地址
ip -4 addr flush label 「eth0″
—————————
測試網絡
在命令行下測試網絡的連通性
顯示主機名
hostname
測試網絡連通性
ping mtr
顯示正確的路由表
iproute
肯定名稱服務器使用:
nslookup host dig
跟蹤路由:
traceroute Tracepath
網絡客戶端工具
lftp, ftp, lftpget, wget
lftp:
lftp命令是一款優秀的文件客戶端程序,它支持ftp、SETP、HTTP和FTPs等多種文件傳輸協議。lftp支持tab自動補全,記不得命令雙擊tab鍵,就能夠看到可能的選項了。
語法: lftp[-p port] [-u user[,password]] SERVER
子命令:
get、mget、ls、help
# ftp:
ftp命令用來設置文件系統相關功能。ftp服務器在網上較爲常見,Linux ftp命令的功能是用命令的方式來控制在本地機和遠程機之間傳送文件,這裏詳細介紹Linux ftp命令的一些常用的命令,相信掌握了這些使用Linux進行ftp操做將會很是容易。
# lftpget URL :lftpget命令經過調用lftp指令下載指定的文件
# wget:
wget命令用來從指定的URL下載文件。wget很是穩定,它在帶寬很窄的狀況下和不穩定網絡中有很強的適應性,若是是因爲網絡的緣由下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。若是是服務器打斷下載過程,它會再次聯到服務器上從中止的地方繼續下載。這對從那些限定了連接時間的服務器上下載大文件很是有用。
語法:wget[option]… [URL]…
-q: 靜默模式 -c: 斷點續傳 -O: 保存位置 –limit-rates=: 指定傳輸速率