2021-05-12 14:32:11
網路模型,IP命令,SS命令入門基礎
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)
相關文章