nmcli命令使用及網絡配置

分類:IT技術 時間:2016-10-16

  Red Hat Enterprise linux 7 與 CentOS 7 中默認的網絡服務由 NetworkManager 提供,這是動態控制及配置網絡的守護進程,它用於保持當前網絡設備及連接處於工作狀態,同時也支持傳統的 ifcfg 類型的配置文件。

 NetworkManager 可以用於以下類型的連接:Ethernet,VLANS,Bridges,Bonds,Teams,Wi-Fi,mobile boradband(如移動3G)以及 IP-over-InfiniBand。針對與這些網絡類型,NetworkManager 可以配置他們的網絡別名,IP 地址,靜態路由,DNS,VPN連接以及很多其它的特殊參數。

 可以用命令行工具 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

wKioL1fP3L-g1fdXAAAvAZncXO0325.png

修改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

wKioL1fPxtqSu1_hAAAjahZ1LsY726.png

  其中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

wKiom1fP0KbzGZnSAABPvSEyMws504.png

可以看到直接生成配置文件,但是網卡沒有綁定,所以並沒有生效。

我們需要將這個接口啟用

  •  啟用static連接配置

   nmcli con up static

  •  啟用default連接配置

   nmcli con up default

  •  查看幫助

   nmcli con add help

[root@CentOS 7 ~]# nmcli connection up home

wKioL1fP0XjDROK9AAA-2G0fY_E685.png

這樣,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

命令修改與配置文件對照表:

wKioL1fP3FXi2jAsAACIm7HpmF0103.png

設備配置被保存在文本文件中

  • /etc/sysconfig/network-scripts/ifcfg-<name>

  • 幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt

模板:

wKioL1fP3UzRk4CCAABKL-c2x-A407.png

修改連接配置後,需要重新加載配置

 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

wKiom1fP2ayyNYNEAAAxvjgYCBc384.png

網絡組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

wKiom1fQEQKyKW7yAAA2ryk-Hqo011.png

使用nmcli配置主機名

rhel6之前主機名配置文件:/etc/sysconfig/network

rhel7.0主機名配置文件:/etc/hostname ,默認沒有這個文件,通過DNS反向解析獲取主機名,主機名默認為:localhost.localdomain

顯示主機名信息

    hostname

    hostnamectl status

wKiom1fQG7Oytc8DAABAj56w640106.png

創建並修改文件並生效

    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=: 指定傳輸速率



本文出自 “I'm Groot” 博客,請務必保留此出處http://groot.blog.51cto.com/11448219/1847482


Tags:

文章來源:


ads
ads

相關文章
ads

相關文章

ad