Linux 基礎教程 27-ss和ip命令

Surpassme發表於2018-07-23

什麼是netstat

    在Linux系統中輸入 man netstat,顯示的結果如下所示:

netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

    從上面可以看出netstat命令的主要功能為:

  • 顯示網路連線資訊
  • 顯示路由表資訊
  • 顯示網路卡統計資訊
  • 顯示無效的連線資訊
  • 顯示組播成員資訊

   當我們看完介紹往下的時候,會看到如下的提示資訊:

This program is obsolete.  Replacement for netstat is ss.  Replacement for netstat -r is ip route.  Replacement for netstat -i is ip  -s  link.
Replacement for netstat -g is ip maddr.

    從上面這段話可以看到netstat已經不再維護被ssip命令所代替了。詳細代替命令如下所示:

01netstat替代方案.jpg

ss命令

    ss是Socket Statistics的縮寫,是用於統計socket資訊。幾乎所有的Linux系統都會預設包含netstat命令,但並非所有的系統都會預設包含ss命令。netstat是net-tool的成員,而ss是iproute2的成員,如果出現無法使用ss命令時,可以使用

yum -y install iproute iproute-doc

進行安裝。iproute2是一套可以支援IPv4/IPv6網路且用於管理TCP/UDP/IP網路的軟體包,因此iproute2幾乎可以代替net-tool的軟體包。以下是對比結果:

用途 net-tool iproute2
地址和鏈路配置 ifconfig ip addr ,ip link
路由表 route ip route
arp表 arp ip neigh
VLAN vconfig ip link
隧道 iptunnel ip tunnel
組播 ipmaddr ip maddr
統計 netstat ss

基本語法

ss [選項] [引數]

常用選項引數如下所示:

選項 說明
-h,–help 顯示幫助資訊
-V,–version 顯示版本資訊
-n,–numeric 以數字形式顯示,不解析服務名稱
-r,–resolve 解析主機名稱和埠
-a,–all 顯示所有資訊,包含監聽和非監聽的資訊
-l,–listening 僅顯示監聽資訊
-o,–options 顯示計時器資訊
-e,–extended 顯示詳細的Socket資訊
-m,–memore 顯示Socket的記憶體使用資訊
-p,–processes 顯示使用Socket的程式資訊
-i,–info 顯示TCP內部資訊
-s,–summary 顯示Socket的使用概況
-4,–ipv4 僅顯示ipv4的Socket資訊
-6,–ipv4 僅顯示ipv6的Socket資訊
-t,–tcp 僅顯示TCP的Socket資訊
-u,–udp 僅顯示UDP的Socket資訊
-d,–dccp 僅顯示DCCP的Socket資訊
-w,–raw 僅顯示RAW的Socket資訊
-s,–sctp 僅顯示SCTP的Socket資訊
-K,–kill 嘗試強制關閉Socket

示例

1.檢視當前伺服器的網路連線資訊

02ss-s.jpg

當伺服器有大量的Socket連線時,可以用來做巨集觀統計

2.檢視所有開啟的網路埠

03ss-l.jpg

ip命令

    ip命令用來顯示或配置Linux主機的路由、網路裝置、策略路由和隧道。

基本語法

ip [選項] 物件 {命令 | 幫助}

常用選項引數如下所示:

選項 說明
-V,–Version 顯示版本資訊
-h,–human 以易於讀取的方式輸出資訊
-s,–statistics 顯示詳細的統計資訊
-f,–family 指定使用的協議型別,協議型別主要有:inet,inet6,bridge,ipx, dnet,mpls,link ,如果未指定協議型別,則系統根據後面的引數自行決定所採用的協議型別
-4 –family inet的簡寫
-6 –family inet6的簡寫
-B –family bridge的簡寫
-0 –family link的簡寫
-o,–oneline 每條記錄單獨一行輸出
-r,–resolve 查詢DNS解析系統,使用主機名代替主機IP地址
-c,–color 對顯示的資訊進行顏色標識
-t,–timestamp 增加時間戳
-ts,–tshort 與-t引數類似,以短時間形式顯示
-iec 以易於讀取的形式顯示速率資訊,如1Ki=1024

    物件是要管理或獲取資訊的物件,常用的物件如下所示:

物件 說明
address 裝置上的協議(IPv4/IPv6)地址
l2tp IP上面的隧道(L2TPv3)
link 網路裝置
maddress 多播地址
mroute 多播路由緩衝條目
route 路由表條目
rule 路由規則
tcp_metrics/tcpmetrics tcp轉發優先順序
tunnel IP上的隧道

   命令是用於指定物件上的操作行為,常見的命令如下所示:

命令 說明
add 增加操作
del 刪除操作
show/list 顯示操作
如果命令使用者沒有指定,則系統會自動指定操作行為,如show或list

示例

1.新增IP地址:

ip addr add 192.168.8.8/24 dev ens0

2.顯示IP地址

ip addr show
或
ip addr list
或
ip addr

3.刪除IP地址

ip addr del 192.168.8.8/24 dev ens0

4.啟用/禁用網路卡

啟用網路卡
ip link set ens0 up
禁用網路卡
ip link set ens0 down

5.顯示路由資訊

ip route show

6.增加路由資訊

ip route add 192.168.8.8/24 via 192.168.8.1
via 192.168.8.1 後面是閘道器

7.設定網路卡僅轉發

ip route add 192.168.8.8 dev ens0

8.刪除路由

ip route del 192.168.8.8/24 via 192.168.8.1
ip route del 192.168.8.8 dev ens0

9.指定預設閘道器

ip route add default via 192.168.8.1

預設閘道器作用很簡單明確,當一臺主機找不到匹配的轉發規則,則把資料轉發給預設閘道器,由該閘道器進行處理。

10.刪除預設閘道器

ip route del default

11.為不同的源IP指定路由選擇

   當一個主機有多個網路卡且配置了多個IP的時候,對於不同網路卡產生的網路資料包,則需要根據其源IP地址選擇不同的路由資訊,如下所示:

ip route add 192.168.8.0/0 via 192.168.8.1 src 192.168.8.8

   上面這個命令的意思就是發到192.168.8.0/0網段的所有網路包,下一跳的路由器IP是192.168.8.1,包的源IP地址為:192.168.8.8

本文同步在微信訂閱號上釋出,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼新增關注:
MyQRCode.jpg

相關文章