inux網絡篇第三章:地址配置工具nmcli

  • 談到nmclin那就要說到NetworkManager
  • NetworkManager最初由 Redhat 公司開發,現在由 GNOME 管理
  • nmcli是命令行的NetworkManager工具,會自動把配置寫到/etc/sysconfig/network-scripts/目錄下面
  • nmcli說簡單就是個配置文件,一個硬件可以有多個配置文件,用NetworkManager來管理而已
  • 簡單理解就是,一個連接就是(connection)就是/etc/sysconfig/network-scripts/目錄下的一個配置文件,接口(device)是物理設備,一個物理設置可以擁有多個配置文件,但只能有一個配置文件屬于使用(active)狀態;配置文件的生成與使用狀態均由NetworkManager控制

nmcli命令表

命令 使用
nmcli dev status List all devices
nmcli con show List all connections
nmcli con up "ID" Activate a connection
nmcli con down "ID" Deactivate a connection . The connection will restart if autoconnect is yes.
nmcli dev dis "DEV" Disble all managed interfaces
nmcli con add... Add anew connection
nmcli con mod "ID"... Modify a copnnection
nmcli con del "ID" Delite a connection...

配置文件和文件的對應關系

nmcli con mod ifcfg-*
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24
192.0.2.254 IPADDR0=192.0.2.1
PREFIX0=24
GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .

動態和靜態配置文件

動態配置 靜態配置
DEVICE=ethX DEVICE=ethX
HWADDR=0:02:8A:A6:30:45 HWADDR=0:02:8A:A6:30:45
BOOTPROTO=dhcp IPADDR=192.168.0.123
ONBOOT=yes NETMASK=255.255.255.0
type=Ethernet GATEWAy=192.168.0.254
ONBOOT=yes
type=Ethernet

nmcli的使用

  • 首先我們先用 nmcli connection show 命令來查看當前計算機有幾套配置,換句話說就是幾個鏈接
[root@localhost ~]# nmcli connection show 
NAME                UUID                                  TYPE            DEVICE     
Wired connection 1  7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1   <<<這是套配置  
eno33554960         eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  --         
eno16777736         da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
virbr0-nic          45f38f6d-fb8b-49f4-a261-daa9ff952746  generic         virbr0-nic 
virbr0              3ce60a22-a7d8-4e7d-9997-6813be97eead  bridge          virbr0     <<<這是虛擬網卡
Wired connection 2  46f4952d-ecd7-4a58-afd2-feea00d087fa  802-3-ethernet  eth0 
  • 我們來修改以上的Wired connection 1的名字,用nmcli connection modify Wired\ connection\ 1 connection.id eth1-office 命令
[root@localhost ~]# nmcli connection modify Wired\ connection\ 1 connection.id eth1-office
  • 在用nmcli connection show來查看下
[root@localhost ~]# nmcli connection show 
NAME                UUID                                  TYPE            DEVICE     
eth1-office         7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1  <<<看已經改了     
eno33554960         eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  --         
eno16777736         da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
virbr0-nic          45f38f6d-fb8b-49f4-a261-daa9ff952746  generic         virbr0-nic 
virbr0              3ce60a22-a7d8-4e7d-9997-6813be97eead  bridge          virbr0     
Wired connection 2  46f4952d-ecd7-4a58-afd2-feea00d087fa  802-3-ethernet  eth0 
  • 最后一行Wired connection 2我們也可以把他改了或刪掉,那我們來刪掉吧
  • 運行命令nmcli con delete Wired\ connection\ 2
[root@localhost ~]# nmcli con delete Wired\ connection\ 2 
Connection 'Wired connection 2' (46f4952d-ecd7-4a58-afd2-feea00d087fa) successfully deleted.
  • 我們來查看下是否刪除
[root@localhost ~]# nmcli connection show 
NAME         UUID                                  TYPE            DEVICE     
eth1-office  7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1       
eno33554960  eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  --         
eno16777736  da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
virbr0-nic   45f38f6d-fb8b-49f4-a261-daa9ff952746  generic         virbr0-nic 
virbr0       3ce60a22-a7d8-4e7d-9997-6813be97eead  bridge          virbr0   
  • 我們在不同的環境,創建不同的鏈接,下圖已經創建成功
[root@localhost ~]# nmcli connection add con-name  eyh1-lan type ethernet ifname  eth1
Connection 'eyh1-lan' (077284ec-39f6-47f8-becd-168b8bd3b64c) successfully added.
  • 我們可以查看下
[root@localhost network-scripts]# ls
ifcfg-eno16777736  ifdown       ifdown-ipv6    ifdown-sit       ifup-aliases  ifup-ipv6   ifup-ppp       ifup-tunnel
ifcfg-eno33554960  ifdown-bnep  ifdown-isdn    ifdown-Team      ifup-bnep     ifup-isdn   ifup-routes    ifup-wireless
ifcfg-eth1-office  ifdown-eth   ifdown-post    ifdown-TeamPort  ifup-eth      ifup-plip   ifup-sit       init.ipv6-global
ifcfg-eyh1-lan     ifdown-ib    ifdown-ppp     ifdown-tunnel    ifup-ib       ifup-plusb  ifup-Team      network-functions
ifcfg-lo           ifdown-ippp  ifdown-routes  ifup             ifup-ippp     ifup-post   ifup-TeamPort  network-functions-ipv6
  • 我們只是創建一套配置而已,里面還沒有IP地址,我們來cat來查看下我們創建的配置文件
[root@localhost network-scripts]# cat ifcfg-eyh1-lan 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eyh1-lan
UUID=077284ec-39f6-47f8-becd-168b8bd3b64c
DEVICE=eth1
ONBOOT=yes
  • 我們在用nmcli connection show來查看下
[root@localhost network-scripts]# nmcli  connection show 
NAME         UUID                                  TYPE            DEVICE     
eth1-office  7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1       
eno33554960  eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  --         
eno16777736  da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
eyh1-lan     077284ec-39f6-47f8-becd-168b8bd3b64c  802-3-ethernet  --         
virbr0-nic   45f38f6d-fb8b-49f4-a261-daa9ff952746  generic         virbr0-nic 
virbr0       3ce60a22-a7d8-4e7d-9997-6813be97eead  bridge          virbr0  
  • 接下來我們往里面添加IP設置
[root@localhost network-scripts]# nmcli connection modify eyh1-lan connection.autoconnect yes ipv4.addresses 172.17.100.11/16 ipv4.method manual  <<<使用了這條命令 ,這項很重要記住了,不然配置文件不會生效 
  • 接下來我們要看看我們創建的配置文件修改了沒有
[root@localhost network-scripts]# cat ifcfg-eyh1-lan 
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eyh1-lan
UUID=077284ec-39f6-47f8-becd-168b8bd3b64c
DEVICE=eth1
ONBOOT=yes
IPADDR=172.17.100.11
PREFIX=16
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
  • 他還需要網管我們來給他加網關和DNS
[root@localhost network-scripts]# nmcli connection modify eyh1-lan connection.autoconnect yes ipv4.addresses 172.17.100.11/16 ipv4.method manual ipv4.gateway 172.17.0.1 ipv4.dns 172.17.0.1
  • 我們在來查看下配置文件
[root@localhost network-scripts]# cat ifcfg-eyh1-lan 
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eyh1-lan
UUID=077284ec-39f6-47f8-becd-168b8bd3b64c
DEVICE=eth1
ONBOOT=yes
IPADDR=172.17.100.11
PREFIX=16
GATEWAY=172.17.0.1
DNS1=172.17.0.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
  • 接下來我們啟用配置文件,是否生效
[root@localhost Desktop]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:4f:db:89  txqueuelen 1000  (Ethernet)
        RX packets 3  bytes 276 (276.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.100.11  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::20c:29ff:fe4f:db93  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4f:db:93  txqueuelen 1000  (Ethernet)
        RX packets 2078  bytes 207195 (202.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 133  bytes 20881 (20.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 如果你覺得命令長可以使用cp復制創建
[root@localhost network-scripts]# cp  ifcfg-eyh1-lan    ifcfg-eyh1-home 
  • 只需要改幾個文件即可看下圖
[root@localhost network-scripts]# vi  ifcfg-eyh1-home    
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eyh1-lan      <<<<名字
UUID=077284ec-39f6-47f8-becd-168b8bd3b64c   UID:必須改
DEVICE=eth1
ONBOOT=yes
IPADDR=172.17.100.11     <<<IP:自己看情況改
PREFIX=16
GATEWAY=172.17.0.1
DNS1=172.17.0.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
  • 我們來查看下我們的IP配置
[root@localhost network-scripts]# nmcli connection show 
NAME         UUID                                  TYPE            DEVICE     
eyh1-lan     077284ec-39f6-47f8-becd-168b8bd3b64c  802-3-ethernet  --         
eno16777736  da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
eth1-office  7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1       
virbr0-nic   46e06189-1049-446e-bd47-255f006d02e3  generic         virbr0-nic 
virbr0       69e7fc2c-61e8-4a6d-9a11-ffa5905d1302  bridge          virbr0     
eno33554960  eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  -- 
  • 上圖沒有顯示我剛復制的配置文件,需要執行一條命令來讀一下,nmcli connection reload
[root@localhost network-scripts]# nmcli connection reload           
  • 這樣他就顯示了 ,他會自動會給他分配個UID
[root@localhost network-scripts]# nmcli connection show     
NAME         UUID                                  TYPE            DEVICE     
eyh1-lan     077284ec-39f6-47f8-becd-168b8bd3b64c  802-3-ethernet  --         
eno16777736  da0d66c1-91b9-456e-8a51-f0e0772212bc  802-3-ethernet  --         
eth1-office  7f8ee0f7-41b8-41c3-a922-49266a2b9303  802-3-ethernet  eth1       
eyh1-home    c9b75b5d-6975-b4e8-0e17-d32f44f56ef2  802-3-ethernet  --         
virbr0-nic   46e06189-1049-446e-bd47-255f006d02e3  generic         virbr0-nic 
virbr0       69e7fc2c-61e8-4a6d-9a11-ffa5905d1302  bridge          virbr0     
eno33554960  eb15cda5-85ec-44d9-8ea4-fc5dd7ea76c3  802-3-ethernet  --  
  • 我們還可以用nmcli connection delete eth1-office把他刪除了,他會自動找個配置文件來頂替
[root@localhost network-scripts]# nmcli connection delete eth1-office 
Connection 'eth1-office' (7f8ee0f7-41b8-41c3-a922-49266a2b9303) successfully deleted.
  • 這就是多套配置,我們可以準備多套配置,只需要使用一個就可以了,可以根據環境來使用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • CentOS 6之前,網絡接口使用連續號碼命名:eth0、eth1等,當 增加或刪除網卡時,名稱可能會發生變化 ?...
    楠人幫閱讀 773評論 0 0
  • 采用傳統的命名方式 vim /etc/default/grub 編輯此文件 運行此命令grub2-mkconfig...
    塵曦的雨閱讀 498評論 0 0
  • 多網卡同IP技術 將多個網卡端口綁定為一個,可以提升網絡的性能。在linux系統上有兩種技術可以實現,Linux ...
    geekdeedy閱讀 10,494評論 0 4
  • 本文整理了在實踐過程中使用的Linux網絡工具,這些工具提供的功能非常強大,我們平時使用的只是冰山一角,比如lso...
    老夫劉某閱讀 3,557評論 0 7
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,826評論 18 139