首頁 > 軟體

網路模型,IP命令,SS命令入門基礎

2020-06-16 16:41:27

1. 分層對應關係


OSI七層模型和TCP/IP五層模型都屬於TCP/IP協定棧,而TCP/IP協定棧只有兩種傳輸層協定:TCP、UDP,所以對於Telnet、FTP這些協定,建議稱之為承載在TCP之上的協定,對於TFTP、SNMP這些協定,建議稱之為承載在UDP之上的協定。
-------------------------------------

2. OSI分層描述

  • 物理層(Physical Layer)提供為建立、維護和拆除物理鏈路所需要的機械的、電氣的、功能的和規程的特性;有關的物理鏈路上傳輸非結構的位流以及故障檢測指示。
  • 資料鏈路層(Data Link Layer)在網路層實體間提供資料傳送和接收的功能和過程;提供資料鏈路的流控。
  • 網路層(Network Layer)控制分組傳送系統的操作、路由選擇、使用者控制、網路互連等功能,它的作用是將具體的物理傳送對高層透明。
  • 傳輸層(Transport Layer)提供建立、維護和拆除傳送連線的功能;選擇網路層提供最合適的服務;在系統之間提供可靠的透明的資料傳送,提供端到端的錯誤恢復和流量控制。
  • 對談層(Session Layer)提供兩進程之間建立、維護和結束對談連線的功能;提供互動對談的管理功能,如三種資料流方向的控制,即一路互動、兩路交替和兩路同時對談模式 。
  • 表達層(Presentation Layer)代表應用進程協商資料表示;完成資料轉換、格式化和文字壓縮。
  • 應用層(Application Layer)提供OSI使用者服務。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

3. ip命令:檢視或管理路由、裝置、策略路由和隧道

ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addre| route | netns }   

3.1 ip link:檢視或更改裝置狀態

語法及選項
ip link show [ DEVICE ]

dev NAME:檢視指定名稱的裝置,因為這個引數是預設的,所以可以忽略dev直接輸出裝置名稱。
up and down:檢視狀態。

ip link set [DEVICE]

dev NAME:指定裝置名稱,因為這個引數是預設的,所以可以忽略dev直接輸出裝置名稱。
up and down:更改裝置的狀態為UP或DOWN。
arp on or arp off:介面是否支援ARP。
multicast on or multicast off:介面是否支援廣播。
name NAME:改變裝置的名稱。如果裝置是UP的,或者已經設定了一些地址,則不建議使用此操作。
mtu NUMBER:更改裝置的MTU。
address LLADDRESS:更改介面的MAC地址。
broadcast LLADDRESS:設定介面的廣播地址。

3.2 ip addr命令:管理協定地址

語法及選項
ip addr { add | del } IFADDR dev STRING

dev NAME:指定裝置名稱
local ADDRESS (default):為指定裝置新增IP地址,採用IP_ADDRESS/PREFIX的方式,這是預設選項,可以忽略local直接輸出IP地址/字首。
broadcast ADDRESS:指定廣播地址
label NAME:指定別名,可以為eth1:0、eth1:1這類的(除了使用IP命令建立別名,也可以通過建立名字為ifcfg-eth1:0這樣的組態檔來設定多個地址)。
scope SCOPE_VAL:指定地址的生效範圍:global、site、link、host。

ip addr del與ip addr add的引數一致。ip addr del的裝置名是必需的引數。其餘的都是可選的。如果沒有給出引數,則刪除第一個地址。

ip addr { show | flush } [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ]

dev NAME:檢視指定名稱的裝置,因為這個引數是預設的,所以可以忽略dev直接輸出裝置名稱。
scope SCOPE_VAL:指定地址的生效範圍:global、site、link、host。
to PREFIX:列出匹配指定字首的地址。
label PATTERN:列出label能匹配PATTERN的地址。
primary and secondary:列出primary或secondary地址。

ip addr flush與ip addr show的引數一致。不同之處在於,ip addr fulsh不會在沒有引數的情況下執行。這個命令比較危險,如果設定錯誤會清除所有地址。

3.3 ip route命令:對主機的路由進行操作

語法及選項

ip route { add | change | replace} ROUTE

to TYPE PREFIX:新增目的路由的字首,格式為IP_ADDRESS/PREFIX。如果不輸入字首,則相當於建立主機路由。
dev NAME:指定下一跳。
src ADDRESS:當本機存取這個網段的時候,使用的源地址是哪個IP。
mtu MTU:指定mtu大小。

ip route del和ip route add有一樣的引數,但是語意略有不同。如果存在可選屬性,ip驗證它們是否與要刪除的路由的屬性一致。如果找不到具有包含指定屬性的路由條目,則ip route del將失敗。

ip route { show | flush } ROUTE

to SELECTOR:要檢視的路由,輸入IP和字首。
dev NAME:檢視指定出介面的路由。
via PREFIX:檢視指定下一跳的路由。
src PREFIX:檢視指定源地址的路由。
type TYPE:檢視指定型別的路由。

ip route flush和ip route show有著相同的引數,但是flush不會列出路由,指揮清除。

ip route netns ROUTE

ip netns add NAME:建立指定的netns;
ip netns del NAME:刪除指定的netns;
ip link set IFACE netns NETNAMESPACE_NAME:把指定介面移動到指定網路名稱空間中;
ip netns list:列出所有的netns;
ip netns exec NAME COMMAND:在指定的netns中執行命令;

4. ss命令:檢視socket狀態

語法
ss [options] [ FILTER ]

選項

-n:不解析服務服務名。
-r:嘗試解析地址與埠。
-a:檢視所有socket。
-l:檢視處於listen狀態的socket。
-o:檢視計時器資訊。
-e:檢視詳細的socket資訊。
-m:檢視socket記憶體使用情況。
-p:檢視socket使用的進程。
-i:檢視內部的TCP資訊。
-s:列印匯總統計,該選項不解析從各種來源獲取摘要的通訊端列表。
-4:僅檢視ipv4的socket資訊(alias for -f inet4)。
-6:僅檢視ipv6的socket資訊(alias for -f inet6)。
-0:檢視封包的socket資訊(alias for -f link).。
-t:檢視TCP的socket。
-u:檢視UDP的socket。
-d:檢視DCCP的socket。
-x:檢視Unix domain的sockets。
-f FAMILY:Display  sockets  of type FAMILY,Currently the following families are supported: unix, inet, inet6, link, netlink.
FILTER := [ state TCP-STATE ] [ EXPRESSION ]:Please take a look at the official documentation  (Debian  package  iproute doc) for details regarding filters.

例如

[leju_tianbao1@~]$sudo ss -antup
sudo: ldap_sasl_bind_s(): Can't contact LDAP server
dNetid  State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
udp    ESTAB      0      0                              10.207.0.150:45570                         10.207.0.190:8649   users:(("gmond",1257,3))
tcp    LISTEN     0      128                                      :::22                                      :::*      users:(("sshd",1219,4))
tcp    LISTEN     0      128                                       *:22                                       *:*      users:(("sshd",1219,3))
tcp    ESTAB      0      164                            10.207.0.150:22                           10.207.69.144:11681  users:(("sshd",29779,3),("sshd",29781,3))

[leju_tianbao1@~]$ss -o state established ' ( sport = :22 or dport = :23423 ) ' dst 10.207.69.0/24
Recv-Q Send-Q                              Local Address:Port                                  Peer Address:Port   
0      52                                   10.207.0.150:ssh                                  10.207.69.144:11681    timer:(on,438ms,0)

[leju_tianbao1@~]$ss -o state established ' ( sport = :22 ) '
Recv-Q Send-Q                              Local Address:Port                                  Peer Address:Port   
0      52                                   10.207.0.150:ssh                                  10.207.69.144:11681    timer:(on,454ms,0)

[leju_tianbao1@~]$ss -o state established '( dport = :ssh or sport = :ssh )'
Recv-Q Send-Q                              Local Address:Port                                  Peer Address:Port   
0      52                                   10.207.0.150:ssh                                  10.207.69.144:11681    timer:(on,525ms,0)

IT145.com E-mail:sddin#qq.com