ip、ss、nmcli命令的使用

配置Linux網絡屬性:ip命令

ip命令:

ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }

link OBJECT:

ip link - network device configuration

set

dev IFACE
可設置屬性:up and down:激活或禁用指定接口;

ip link set eth0 up

[root@localhost ~]# ip link set eth0 up

ip link set eth0 down

[root@localhost ~]# ip link set eth0 down

show

[dev IFACE]:指定接口	
[up]:僅顯示處于激活狀態的接口

ip link show eth0

[root@localhost ~]# ip link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff

ip link show up eth0

[root@localhost ~]# ip link show up eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff

ip address – protocol address management

ip addr { add | del } IFADDR dev STRING[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 僅鏈接可用;
host: 本機可用;
[broadcast ADDRESS]:指明廣播地址

ip addr add 10.0.0.10 dev eth0

[root@localhost ~]# ip addr add 10.0.0.10 dev eth0

ip addr add 192.168.2.10/24 dev eth0 label eth0:0

[root@localhost ~]# ip addr add 192.168.2.10/24 dev eth0 label eth0:0

ip addr add 10.0.0.11 dev eth0 scope link

[root@localhost ~]# ip addr add 10.0.0.11 dev eth0 scope link

ip addr add 10.0.0.11 dev eth0 broadcast 10.0.0.240

[root@localhost ~]# ip addr add 10.0.0.11 dev eth0 broadcast 10.0.0.240

ip address show – look at protocol addresses

[dev DEVICE]
[label PATTERN]
[primary and secondary]

ip address show dev eth0

[root@localhost ~]# ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.2/8 brd 10.255.255.255 scope global eth0
    inet6 fe80::20c:29ff:fe47:be80/64 scope link 
       valid_lft forever preferred_lft forever

ip address show primary

[root@localhost ~]# ip address show primary 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:be:80 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.2/8 brd 10.255.255.255 scope global eth0
    inet6 fe80::20c:29ff:fe47:be80/64 scope link 
       valid_lft forever preferred_lft forever

ip address flush – flush protocol addresses 使用格式同show

ip address flush eth0

[root@localhost ~]# ip address flush eth0

ip route add

添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IPTARGET:
主機路由:IP								網絡路由:NETWORK/MASK
添加網關:ip route add defalt via GW dev IFACE

ip route add 10.0.0.1 via 10.0.0.2 dev eth0

[root@localhost ~]# ip route add 10.0.0.1 via 10.0.0.2 dev eth0

ip route add default via 10.0.0.1 dev eth0

[root@localhost ~]# ip route add default via 10.0.0.1 dev eth0

ip route delete

刪除路由:ip route del TARGET

[root@localhost ~]# ip route del 10.0.0.0/8

ip route show

[root@localhost ~]# ip route show 10.0.0.1 via 10.0.0.2 dev eth0 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.2  metric 1 default via 10.0.0.1 dev eth0

ip route flush

[dev IFACE]

[via PREFIX]

[root@localhost ~]# ip route  flush dev eth0
  • ss命令:

  • 格式:ss [OPTION]… [FILTER]

  • 選項:

-t: tcp協議相關-u: udp協議相關-w: 裸套接字相關-x:unix sock相關-l: listen狀態的連接-a: 所有-n: 數字格式-p: 相關的程序及PID-e: 擴展的信息-m:內存用量-o:計時器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
tcp finite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接
FIN_WAIT_1:主動關閉
FIN_WAIT_2:主動關閉
SYN_SENT:等待連接請求
SYN_RECV:確認連接請求
CLOSED:連接結束
EXPRESSION:
dport = 
sport = 
示例:’( dport = :ssh or sport = :ssh )’

常用組合:

-tan, -tanl, -tanlp, -uan

ss -tal

[root@localhost ~]# ss -tal State       Recv-Q Send-Q    Local Address:Port        Peer Address:Port   
LISTEN      0      128                   *:38941                  *:*       
LISTEN      0      128                  :::39596                 :::*       
LISTEN      0      128                  :::sunrpc                :::*       
LISTEN      0      128                   *:sunrpc                 *:*       
LISTEN      0      128                  :::ssh                   :::*       
LISTEN      0      128                   *:ssh                    *:*       
LISTEN      0      128           127.0.0.1:ipp                    *:*       
LISTEN      0      128                 ::1:ipp                   :::*       
LISTEN      0      100                 ::1:smtp                  :::*       
LISTEN      0      100           127.0.0.1:smtp                   *:*

ss -ual

[root@localhost ~]# ss -ual State       Recv-Q Send-Q                                                 Local Address:Port                                                     Peer Address:Port   
UNCONN      0      0                                                                  *:787                                                                 *:*       
UNCONN      0      0                                                                  *:49202                                                               *:*       
UNCONN      0      0                                                          127.0.0.1:849                                                                 *:*       
UNCONN      0      0                                                                  *:sunrpc                                                              *:*       
UNCONN      0      0                                                                  *:ipp                                                                 *:*       
UNCONN      0      0                                                                 :::787                                                                :::*       
UNCONN      0      0                                                                 :::51988                                                              :::*       
UNCONN      0      0                                                                 :::sunrpc                                                             :::*

Linux網絡屬性配置(3): 修改配置文件

IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議為“no”;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的惟一標識;
IPADDR:指明IP地址;
NETMASK:子網掩碼;GATEWAY: 默認網關;
DNS1:第一個DNS服務器指向;
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;

/etc/sysconfig/network-scripts/route-IFACE

兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGETNETMASK#=maskGATEWAY#=GW

Linux網絡屬性配置的tui(text user interface):

ystem-config-network-tui
也可以使用setup找到;
注意:記得重啟網絡服務方能生效;
配置當前主機的主機名:
hostname [HOSTNAME]/etc/sysconfig/network
HOSTNAME=
網絡接口識別并命名相關的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules
卸載網卡驅動:
modprobe -r e1000  lsmod
裝載網卡驅動:
modprobe e1000

CentOS 7網絡屬性配置

傳統命名:以太網eth[0,1,2,...], wlan[0,1,2,...]
可預測功能
udev支持多種不同的命名方案:
Firmware, 拓撲結構
(1) 網卡命名機制
systemd對網絡設備的命名方式:
(a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1;
(b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1; 
(c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0;
(d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56; 
(e) 上述均不可用時,則使用傳統命名機制;		上述命名機制中,有的需要biosdevname程序的參與;

(2) 名稱組成格式

en: ethernet :以太網接口
wl: wlan   :無線局域網設備
ww: wwan:無線廣域網設備
名稱類型:
o<index>: 集成設備的設備索引號;
s<slot>: 擴展槽的索引號;
x<MAC>: 基于MAC地址的命名;
p<bus>s<slot>: enp2s1
pci總線上第二個總線上第一個插槽設備

網卡設備的命名過程:

第一步:
udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules第二步:
biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules第三步:
通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-descriptionID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH

回歸傳統命名方式:

(1) 編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"(2) 為grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重啟系統

地址配置工具:nmcli

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
如何修改IP地址等屬性:#nmcli connection modify IFACE [+|-]setting.property valuesetting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.methodmanual

將 NetworkManager 的所有狀態都打印出來

[root@localhost ~]# nmcli general status狀態                CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN   
已連接(只在本地)  全部          已啟用   已啟用  已啟用   已啟用

顯示所有連接

[root@localhost ~]# nmcli connection show 名稱         UUID                                  類型            設備        
virbr0       34523c12-6df4-4f6e-80cf-0159d8837b87  bridge          virbr0      
有線連接 1   ddc20fc4-543d-49c4-8fef-b3d325b39b61  802-3-ethernet  --          
eno16777728  af4505d8-c76c-4cd9-b9d7-1bedf3df789d  802-3-ethernet  eno16777728

僅顯示當前活動的連接

[root@localhost ~]# nmcli connection show -a 名稱         UUID                                  類型            設備        
virbr0       34523c12-6df4-4f6e-80cf-0159d8837b87  bridge          virbr0      
eno16777728  af4505d8-c76c-4cd9-b9d7-1bedf3df789d  802-3-ethernet  eno16777728

列出 NetworkManager識別出的設備列表及他們的狀態

[root@localhost ~]# nmcli device status 設備         類型      狀態    CONNECTION  
virbr0       bridge    連接的  virbr0      
eno16777728  ethernet  連接的  eno16777728 
virbr0-nic   ethernet  已斷開  --          lo           loopback  未管理  --

停止某個接口

[root@localhost ~]#  nmcli device disconnect eno16777728

啟動接口

[root@localhost ~]# nmcli device connect eno16777728

添加一個靜態IP地址的以太網連接

nmcli connection add type ethernet con-name NAME_OF_CONNECTION ifname interface-name ip4 IP_ADDRESS gw4 GW_ADDRESS
[root@localhost ~]#  nmcli connection add type ethernet con-name NEW ifname eno16777736 ip4 192.168.1.141 gw4 192.168.1.1

設置DNS服務器

[root@localhost ~]# nmcli connection modify NEW ipv4.dns "8.8.8.8 8.8.4.4"

啟動新的 Ethernet 連接

[root@localhost ~]# nmcli connection up NEW ifname eno16777729

查看新連接的配置信息

[root@localhost ~]# nmcli -p connection show NEW

原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/26480

(0)
N21_ DominicN21_ Dominic
上一篇 2016-07-29 10:40
下一篇 2016-07-29 11:06

相關推薦

  • N21_第7周_磁盤及文件系統管理

    N21_第7周_磁盤及文件系統管理 作業題目: 1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳…

    Linux干貨 2016-09-26
  • Linux網絡屬性配置的幾個命令

    Linux網絡屬性配置命令 ifcfg命令家族:ifconfig,route,netstat ifconfig命令:接口及地址查看和管理 ifconfig [INTERFACE] #ifconfig -a : 顯示所有接口,包括inactive狀態的接口 ifconfig interface [aftype] options | address … #i…

    Linux干貨 2017-05-09
  • LVM(邏輯卷管理)

    LVM 邏輯卷管理 概述:      LVM是將一個或多個硬盤的分區在邏輯上集合,相當于一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對于普通的磁盤分區有很大的靈活性。與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的為…

    Linux干貨 2016-09-05
  • N25第一周作業

    1、描述計算機的組成及其功能。 硬件部分: 軟件(系統)組成部分 功能模塊劃分: 進程管理:系統資源的分配單位(線程是CPU分配單位) 存儲管理:內存分配,存儲保護,虛擬存儲 設備管理:管理外設接口 文件管理:保存程序和數據等軟件信息 程序接口:提供指令或函數的調用方式,使程序能夠調用系統的資源 用戶界面:為用戶提供操作環境    &nb…

    Linux干貨 2016-12-12
  • 第四天作業

    1 、創建 用戶gentoo ,附加組為bin 和root ,默認shell為/bin/csh ,注釋信息為"Gentoo Distribution" 1 useradd -G bin,root -s /bin/csh -c "Gentoo Distribut…

    Linux干貨 2016-08-04
  • Samba服務

    一 服務端配置 1 安裝所需軟件 [root@centos7 ~]# yum install samba samba-common -y samba主要提供SMB服務所需的各項服務程序、相關的文件及其他和Samba相關的設置等 samba-common提供服務端和客戶端都會用的的數據,包括主配置文件、語法檢查等 2 添加Samba用戶 添加smb1、smb2…

    Linux干貨 2017-06-13

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-29 10:49

    排版不錯,但內容可以再充實一點,加油。

欧美性久久久久