可以用命令行工具 nmcli 來控制 NetworkManager。
在CentOS / RHEL 7中網絡管理命令行工具,也叫nmcli。經常使用ifconfig的用戶應該在CentOS 7中避免使用ifconfig了。nmcli的功能要強大、復雜的多。
地址配置工具:nmcli
nmcli – command-line tool for controlling NetworkManager
命令語法:
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?ifnameeth0
- 刪除連接
#?nmcli?con?del?default
- 創建新連接static ,指定靜態IP,不自動連接
#?nmcticon?add?con-name?static?ifnameeth0?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/下生成一個配置文件,但是并未生效。如:
例:創建以個名字為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接口
實驗:創建網絡組
1、創建網絡組team0,會在/etc/sysconfig/network-scripts/目錄下生成ifcfg-team0文件
#?nmcli?connection?add?con-name?team0?type?team?ifname?team0?config ?'{"runner":{"name":"activebackup"}}'?ip4?10.1.252.60/16?gw4?10.1.0.1
2、添加DNS
#?nmcli?connection?modify?team0?ipv4.dns?8.8.8.8
3、加入組成員
#?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
4、啟動
nmcli?connection?up?team0 nmcli?connection?up?team0-eth0 nmcli?connection?up?team0-eth1
5、查看狀態
#?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
測試網絡
在命令行下測試網絡的連通性
顯示主機名
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=: 指定傳輸速率
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97571