linux中nmcli及IP命令使用及網絡配置

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
linux中nmcli及IP命令使用及網絡配置

修改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
linux中nmcli及IP命令使用及網絡配置

其中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
linux中nmcli及IP命令使用及網絡配置

能夠看到直接生成配置文件,可是網卡沒有綁定,因此並無生效。

咱們須要將這個接口啓用

啓用static鏈接配置

nmcli con up static

啓用default鏈接配置

nmcli con up default

查看幫助

nmcli con add help

[root@CentOS 7 ~]# nmcli connection up home
linux中nmcli及IP命令使用及網絡配置
這樣,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

命令修改與配置文件對照表:
linux中nmcli及IP命令使用及網絡配置

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

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

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

模板:
linux中nmcli及IP命令使用及網絡配置
修改鏈接配置後,須要從新加載配置

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
linux中nmcli及IP命令使用及網絡配置
網絡組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
linux中nmcli及IP命令使用及網絡配置
使用nmcli配置主機名

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

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

顯示主機名信息

hostname

hostnamectl status

linux中nmcli及IP命令使用及網絡配置

建立並修改文件並生效

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命令使用及網絡配置

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″
—————————

  1. ip neighbour–neighbour/arp表管理命令
    縮寫 neighbour、neighbor、neigh、n
    命令 add、change、replace、delete、fulsh、show(或者list)
    6.1 ip neighbour add — 添加一個新的鄰接條目
    ip neighbour change–修改一個現有的條目
    ip neighbour replace–替換一個已有的條目
    縮寫:add、a;change、chg;replace、repl
    示例1: 在設備eth0上,爲地址10.0.0.3添加一個permanent ARP條目:
    ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm
    示例2:把狀態改成reachable
    ip neigh chg 10.0.0.3 dev eth0 nud reachable
    6.2.ip neighbour delete–刪除一個鄰接條目
    示例1:刪除設備eth0上的一個ARP條目10.0.0.3
    ip neigh del 10.0.0.3 dev eth0
    6.3.ip neighbour show–顯示網絡鄰居的信息. 縮寫:show、list、sh、ls
    示例1: ip -s n ls 193.233.7.254
    193.233.7.254. dev eth0 lladdr 00:00:0c:76:3f:85 ref 5 used 12/13/20 nud reachable
    6.4.ip neighbour flush–清除鄰接條目. 縮寫:flush、f
    示例1: (-s 能夠顯示詳細信息)
    ip -s -s n f 193.233.7.254
    —————————
  2. 路由表管理
    7.1.縮寫 route、ro、r
    7.5.路由表
    從Linux-2.2開始,內核把路由概括到許多路由表中,這些表都進行了編號,編號數字的範圍是1到255。另外,
    爲了方便,還能夠在/etc/iproute2/rt_tables中爲路由表命名。
    默認狀況下,全部的路由都會被插入到表main(編號254)中。在進行路由查詢時,內核只使用路由表main。
    7.6ip route add — 添加新路由
    ip route change — 修改路由
    ip route replace — 替換已有的路由
    縮寫:add、a;change、chg;replace、repl
    示例1: 設置到網絡10.0.0/24的路由通過網關193.233.7.65
    ip route add 10.0.0/24 via 193.233.7.65
    示例2: 修改到網絡10.0.0/24的直接路由,使其通過設備dummy
    ip route chg 10.0.0/24 dev dummy
    示例3: 實現鏈路負載平衡.加入缺省多路徑路由,讓ppp0和ppp1分擔負載(注意:scope值並不是必需,它只不過是告訴內核,這個路由要通過網關而不是直連 的。實際上,若是你知道遠程端點的地址,使用via參數來設置就更好了)。
    ip route add default scope global nexthop dev ppp0 nexthop dev ppp1
    ip route replace default scope global nexthop dev ppp0 nexthop dev ppp1
    示例4: 設置NAT路由。在轉發來自192.203.80.144的數據包以前,先進行網絡地址轉換,把這個地址轉換爲193.233.7.83
    ip route add nat 192.203.80.142 via 193.233.7.83
    示例5: 實現數據包級負載平衡,容許把數據包隨機從多個路由發出。weight 能夠設置權重.
    ip route replace default equalize nexthop via 211.139.218.145 dev eth0 weight 1 nexthop via 211.139.218.145 dev eth1 weight 1
    7.7.ip route delete– 刪除路由
    縮寫:delete、del、d
    示例1:刪除上一節命令加入的多路徑路由
    ip route del default scope global nexthop dev ppp0 nexthop dev ppp1
    7.8.ip route show — 列出路由
    縮寫:show、list、sh、ls、l
    示例1: 計算使用gated/bgp協議的路由個數
    ip route ls proto gated/bgp |wc
    1413  9891  79010
    示例2: 計算路由緩存裏面的條數,因爲被緩存路由的屬性可能大於一行,以此須要使用-o選項
    ip -o route ls cloned |wc
    159  2543  18707
    示例3: 列出路由表TABLEID裏面的路由。缺省設置是table main。TABLEID或者是一個真正的路由表ID或者是/etc/iproute2/rt_tables文件定義的字符串,
    或者是如下的特殊值:
    all — 列出全部表的路由;
    cache — 列出路由緩存的內容。
    ip ro ls 193.233.7.82 tab cache
    示例4: 列出某個路由表的內容
    ip route ls table fddi153
    示例5: 列出默認路由表的內容
    ip route ls
    這個命令等於傳統的: route
    7.9.ip route flush — 擦除路由表
    示例1: 刪除路由表main中的全部網關路由(示例:在路由監控程序掛掉以後):
    ip -4 ro flush scope global type unicast
    示例2:清除全部被克隆出來的IPv6路由:
    ip -6 -s -s ro flush cache
    示例3: 在gated程序掛掉以後,清除全部的BGP路由:
    ip -s ro f proto gated/bgp
    示例4: 清除全部ipv4路由cache
    ip route flush cache
    *** IPv4 routing cache is flushed.
    7.10 ip route get — 得到單個路由 .縮寫:get

測試網絡

在命令行下測試網絡的連通性

顯示主機名

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=: 指定傳輸速率
相關文章
相關標籤/搜索