Linux學習之路-Centos7-nmcli命令及網橋【21】---20180127
一、nmcli命令
1、地址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help
修改IP地址等屬性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway
ipv4.dns1 ipv4.method manual | auto
修改配置文件執行生效:systemctl restart network
nmcli con reload
nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
2、使用nmcli配置網絡
NeworkManager是管理和監控網絡設置的守護進程
設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效
顯示所有包括不活動連接
nmcli con show
顯示所有活動連接
nmcli con show --active
顯示網絡連接配置
nmcli con show "System eth0“
顯示設備狀態
nmcli dev status
顯示網絡接口屬性
nmcli dev show eth0
創建新連接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 ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
啟用static連接配置
nmcli con up static
啟用default連接配置
nmcli con up default
查看幫助
nmcli con add help
修改連接設置
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
DNS設置,存放在/etc/resolv.conf文件中PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價於下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
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.25 |
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 |
802-3-ethernet.mac-address . . . | HWADDR= . . . |
3、網絡配置文件及其他設置
設備配置被保存在文本文件中
/etc/sysconfig/network-scripts/ifcfg-<name>
幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt
動態配置 | 靜態配置 |
DEVICE=ethX HWADDR=0:02:8A:A6:30:45 BOOTPROTO=dhcp ONBOOT=yes Type=Ethernet | DEVICE=ethX HWADDR=0:02:8A:A6:30:45 IPADDR=192.168.0.123 NETMASK=255.255.255.0 GATEWAY=192.168.0.254 ONBOOT=yes Type=Ethernet |
修改連接配置後,需要重新加載配置
nmcli con reload
nmcli con down “system eth0” 可被自動激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用網卡,訪止被自動激活
圖形工具
nm-connection-editor
字符工具
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
配置不同的網卡配置文件環境
#查看由幾個網卡 [root@Router~]#nmcli device DEVICE TYPE STATE CONNECTION ens32 ethernet connected ens33 ens33 ethernet connected ens34 lo loopback unmanaged -- #配置一個網卡環境 [root@Router~]#nmcli connection add con-name ens32-sc type ethernet ifname ens32 ipv4.method manual ipv4.addresses 172.18.68.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114 Connection 'ens32-sc' (e5740d61-6f39-4af1-81f2-b062cddbf202) successfully added. [root@Router~]#nmcli connection show NAME UUID TYPE DEVICE ens33 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet ens32 ens34 94aea789-efb3-ef4c-81b0-e8b18ecc9797 802-3-ethernet ens33 ens32-sc e5740d61-6f39-4af1-81f2-b062cddbf202 802-3-ethernet -- #切換網卡配置 [root@Router~]#nmcli connection up ens32-sc Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5) #如果手動增加的配置文件,需要手動加載下配置文件 [root@Router~]#nmcli connection reload #邏輯上斷開或連接網卡 [root@Router~]#nmcli device disconnect ens33 Device 'ens33' successfully disconnected [root@Router~]#nmcli device connect ens33 Device 'ens33' successfully activated with 'a62b80b1-2533-4e38-84c4-bd690837adcc'
二、nmcli實現bonding
添加bonding接口
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
添加從屬接口
nmcli con add type bond-slave ifname ens7 master mybond0
nmcli con add type bond-slave ifname ens3 master mybond0
註:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成
要啟動綁定,則必須首先啟動從屬接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
啟動綁定
nmcli con up mybond0
[root@Router~]#nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 172.18.0.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114 [root@Router~]#nmcli connection add con-name bond0-slave0 type bond-slave ifname ens33 master bond0 [root@Router~]#nmcli connection add con-name bond0-slave1 type bond-slave ifname ens33 master bond0 [root@Router~]#nmcli connection up bond0-slave0 [root@Router~]#nmcli connection up bond0-slave1 [root@Router~]#cat /proc/net/bonding/bond0
#Centos6實現網卡別名
#實現在一塊網卡上有兩個ip地址,一個動態獲取、一個靜態地址,服務器重啟地址不丟失 [root@VSservernetwork-scripts]#cp ifcfg-eth1{,:1} [root@VSservernetwork-scripts]#cp ifcfg-eth1{,:2} [root@VSservernetwork-scripts]#vim ifcfg-eth1:1 DEVICE=eth1:1 IPADDR=172.18.0.6 PREFIX=16 GATEWAY=172.18.0.1 DNS1=114.114.114.114 DOMAIN=magedu.com [root@VSservernetwork-scripts]#vim ifcfg-eth1:2 DEVICE=eth1:2 IPADDR=172.18.0.7 PREFIX=16 GATEWAY=172.18.0.1 DNS1=114.114.114.114 DOMAIN=magedu.com [root@VSservernetwork-scripts]#vim ifcfg-eth1 DEVICE=eth1 BOOTPROTO=dhcp GATEWAY=172.18.0.1 DNS1=114.114.114.114 DOMAIN=magedu.com [root@VSservernetwork-scripts]#service network restart #註意:別名不能自動獲取ip地址,必須是靜態地址
三、網絡組Network Teaming及網橋
網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
網絡組不同於舊版中bonding技術,提供更好的性能和擴展性
網絡組由內核驅動和teamd守護進程實現.
多種方式(模式)runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol)
啟動網絡組接口不會自動啟動網絡組中的port接口
啟動網絡組接口中的port接口總會自動啟動網絡組接口
禁用網絡組接口會自動禁用網絡組中的port接口
沒有port接口的網絡組接口可以啟動靜態IP連接
啟用DHCP連接時,沒有port接口的網絡組會等待port接口的加入
1、創建網絡組接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 連接名,INAME 接口名
JSON 指定runner方式
格式:'{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp
2、創建port接口
nmcli con 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接口
3、網絡組示例
nmcli con add type team con-name team0 ifname team0 config ‘{"runner": {"name": "loadbalance"}}'
nmcli con mod team0 ipv4.addresses 192.168.1.100/24
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
nmcli con up team0
nmcli con up team0-eth1
nmcli con up team0-eth2
teamdctl team0 state; nmcli dev dis eth1
實驗:創建網絡組
[root@Router~]#ip link [root@Router~]#nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}' [root@Router~]#nmcli con mod team0 ipv4.addresses '172.18.0.123/16' [root@Router~]#nmcli con mod team0 ipv4.method manual [root@Router~]#nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0 [root@Router~]#nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0 [root@Router~]#nmcli con up team0-port1 [root@Router~]#nmcli con up team0-port2 [root@Router~]#ping -I team0 172.18.68.100 #-I 是指定從哪個網卡往出ping [root@Router~]#teamdctl team0 state setup: runner: activebackup ports: eth0 link watches: link summary: up instance[link_wathc_0] name: ethtool link: up down count: 0 eth1 link watches: link summary: up instance[link_wathc_0] name: ethtool link: up down count: 0 runner: active port: eth0 [root@VSservernetwork-scripts]#nmcli connection delete team0 [root@VSservernetwork-scripts]#nmcli connection delete team0-slave0 [root@VSservernetwork-scripts]#nmcli connection delete team0-slave1
4、管理網絡組配置文件
[root@Router~]#/etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0 DEVICETYPE=Team TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}" BOOTPROTO=none IPADDR0=172.25.5.100 PREFIX0=24 NAME=team0 ONBOOT=yes [root@Router~]#/etc/sysconfig/network-scripts/ifcfg-team0-eth1 DEVICE=eth1 DEVICETYPE=TeamPort TEAM_MASTER=team0 NAME=team0-eth1 ONBOOT=yes
5、刪除網絡組
[root@Router~]#nmcli connection down team0 [root@Router~]#teamdctl team0 state [root@Router~]#nmcli connection show [root@Router~]#nmcli connectioni delete team0-eth0 [root@Router~]#nmcli connectioni delete team0-eth1 [root@Router~]#nmcli connection show
6、網橋
橋接:把一臺機器上的若幹個網絡接口“連接”起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。網橋就是這樣一個設備,它有若幹個網口,並且這些網口是橋接起來的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。
主機A發送的報文被送到交換機S1的eth0口,由於eth0與eth1、eth2橋接在一起,故而報文被復制到eth1和eth2,並且發送出去,然後被主機B和交換機S2接收到。而S2又會將報文轉發給主機C、D。
#創建軟件網橋 [root@Router~]#nmcli con add type bridge con-name br0 ifname br0 [root@Router~]#nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall [root@Router~]#nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0 #查看網橋 [root@Router~]#cat /etc/sysconfig/network-scripts/ifcfg-br0 [root@Router~]#cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 [root@Router~]#brctl show #刪除網橋 [root@Router~]#brctl delbr br0 #刪除網橋中網卡 [root@Router~]#brctl delif eth0 #註意:NetworkManager只支持以太網接口接口連接到網橋,不支持聚合接口
四、測試網絡工具
在命令行下測試網絡的連通性
顯示主機名
hostname
測試網絡連通性
ping
mtr(跟蹤路由器,動態跟蹤)
顯示正確的路由表
ip route
確定名稱服務器使用:
nslookup
host
dig
跟蹤路由
traceroute
tracepath
五、網絡客戶端工具
ftp,lftp(帶顏色並且支持命令補全)
子命令:
get(下載指定的一個文件)
mget(下載多個文件)
put(是上傳)
ls(看的是ftp服務器裏的文件)
!ls(看的是本機的文件)
lcd(切換目錄)
help
?(是查看所能使用的命令)
lftp [-p port] [-u user[,password]] SERVER
[root@Router~]#yum install ftp lftp -y [root@Router~]#ftp 172.18.0.1 ftp>pwd 257 "/" #這個是指ftp服務器文件所在的根,不是當前系統的根 ftp>ls ftp>mget ubu* #可以下載多個文件 #實現自動上傳文件或者下載文件 [root@Router~]#ftp -n <<EOF >open 172.18.0.1 >user ftp >password xxx >get a >EOF
lftpget URL
wget [option]... [URL]...
-q: 靜默模式
-c: 斷點續傳
-P:保存在指定目錄
-O: 保存為指定的文件名
--limit-rate=: 指定傳輸速率,單位K,M等
links URL
--dump(抓網頁文字)
--source(抓網頁源碼)
[root@Router~]#yum install elinks #可以下載不讓轉載的文字 [root@Router~]#links 192.168.1.100 --dump > a.tx
Linux學習之路-Centos7-nmcli命令及網橋【21】---20180127