一、常見的網絡物理組件
路由器
交換機(RJ-45連接器和pc)
pc
pc
交換機(網絡接口卡)
pc
pc
二、網絡應用程序
1、Web瀏覽器(chrome、IE、Firefox等)
2、即時消息(QQ、微信、釘釘等)
3、電子郵件(Outlook、foxmail等)
4、協作(視頻會議、VNC、Netmeeting、WebEx等)
5、web網絡服務(apache、nginx,IIS)
6、文件網絡服務(ftp、nfs、samba)
7、數據庫服務(MySQL、MariaDB、MongoDB)
8、中間件服務(Tomcat、JBoss)
9、安全服務(Netfilter)
三、用戶應用程序對網絡的影響
1、批處理應用程序
1、FTP、TFTP、庫存更新
2、無需直接人工交互
3、帶寬很重要,但并非關鍵因素
2、交互式應用程序
1、庫存查詢、數據庫更新
2、人機交互
3、因為用戶需等待響應,所以響應時間很重要,但并非關鍵性因素,除非等待很長時間
3、實施應用程序
1、VoIP、視頻
2、人與人的交互
3、端到端的延遲至關重要
四、網絡的特征
1、速度
2、成本
3、安全性
4、可用性
5、可擴展性
6、可靠性
7、拓撲
五、物理拓撲分類
1、物理拓撲描述了物理設備的布線方式
1、總線拓撲
總線拓撲的網絡結構是將網絡中的各個節點設備用一根總線(如同軸電纜等)掛接起來,實現計算機網絡的功能。
任何連接在總線上的計算機都能在總線上發信號,并且所有計算機都能接收信號。
終結器的作用,吸收脈沖信號,防止反射,總線拓撲兩邊必須有終結器
2、星型拓撲1、通過中心點傳輸2、單一故障點3、擴展星型拓撲1、比星型拓撲的復原能力更強4、環拓撲1、信號繞環傳輸2、單一故障點5、雙環拓撲信號沿相反方向傳輸比單環的復原能力更強6、全網狀拓撲容錯能力強實施成本高7、比分網狀拓撲
在容錯能力與成本之間尋求平衡
六、了解主機到主機通信
1、舊模型
1、專有產品
2、由一個廠商控制應用程序和嵌入的軟件
2、基于標準的模型
1、多廠商軟件
2、分層方法
七、網絡模型分層
OSI 模型的七層解構
降低復雜性、標準化接口、簡化模塊化設計、確保技術的互操作性、加快發展速度、簡化教學
分層名稱
功能
每層功能概覽
7 應用層
(網絡進程訪問應用層)
為應用程序進程(例如電子郵件、文件傳輸和終端仿真
提供網絡服務)
提供用戶身份驗證
針對每個應用的協議
電子郵件<-------------------->電子郵件協議
遠程登錄<-------------------->遠程登錄協議
文件傳輸<-------------------->文件傳輸協議
6 表示層(數據表示)
確保接收系統可以讀出該數據
格式化數據
構建數據
協商用于應用層的數據傳輸語法
提供加密
(o′┏▽┓`o) ---網絡標準格式--->?????????
接收不同表現形式的信息,如文字流、圖像、聲音等
5 會話層 (主機間通信)
建立、管理和終止在應用程序間的會話
何時建立連接,何時斷開連接以及保持多久的連接
設備<------------------------------------>設備
4 傳輸層(傳輸問題)
確保數據傳輸的可靠性
建立、維護和終止虛擬電路
通過錯誤檢測和恢復
信息流控制來保障可靠性
是否有數據丟失
設備--------->--------->---------->設備
3 網絡層(數據傳輸)
路由數據包
選擇傳遞數據的最佳路徑
支持邏輯尋址和路徑選擇
經過哪個路由器傳送到目標地址
|----路由器-------路由器
設備----路由器------路由器----路由器----設備
2 數據鏈路層(訪問介質)
定義如何格式化數據以便進行傳輸以及如何控制對網絡
的訪問
支持錯誤檢測
數據幀--------->0101--------->比特流
數據幀和比特流之間的轉換
設備----|------|-------->設備
|分段轉發|
1 物理層(二進制傳輸)
為啟動、維護以及關閉物理鏈路定義了電氣規范,機械
規范,過程規范和功能規范
0101---------0101
比特流與電子信號之間的切換
連接器與網線的規格
數據封裝
八、PDU
1、PDU:Protocol Data Unit,協議數據單元,對等層次之間傳遞的數據單位
2、物理層的PDU是數據位 bit
3、數據鏈路層的PDU是數據幀 frame
4、網絡層的PDU是數據包 packet
5、傳輸層的PDU是數據段segment
6、其他更高層次的PDU是消息 message
九、三種通訊模式
1、單播
2、組播
3、廣播
十、TCP包頭
1、源端口、目標端口:計算機上的進程要和其他進程通信是要通過計算機端口的,而一個算機端口某個時刻只能被一個進程占用,所以通過指定源端口和目標端口,就可以知道是哪兩個進程需要通信。源端口、目標端口是用16位表示的,可推算計算機的端口個數為2^16個
2、序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由于序列號由32位表示,所以每2^32個字節,就會出現序列號回繞,再次從 0 開始
3、確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送發:我希望你(指發送方)下次發送的數據的第一個字節數據的編號是這個確認號
4、數據偏移:表示TCP報文段的首部長度,共4位,由于TCP首部包含一個長度可變的選項部分,需要指定這個TCP報文段到底有多長。它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠。該字段的單位是32位(即4個字節為計算單位),4位二進制最大表示15,所以數據偏移也就是TCP首部最大60字節
十一、TCP包頭
1、URG:表示本報文段中發送的數據是否包含緊急數據。后面的緊急指針字段(urgent pointer)只有當URG=1時才有效
2、ACK:表示是否前面的確認號字段是否有效。ACK=1,表示有效。只有當ACK=1時,前面的確認號字段才有效。TCP規定,連接建立后,ACK必須為1,帶ACK標志的TCP報文段稱為確認報文段
3、PSH:提示接收端應用程序應該立即從TCP接收緩沖區中讀走數據,為接收后續數據騰出空間。如果為1,則表示對方應當立即把數據提交給上層應用,而不是緩存起來,如果應用程序不將接收到的數據讀走,就會一直停留在TCP接收緩沖區中
4、RST:如果收到一個RST=1的報文,說明與主機的連接出現了嚴重錯誤(如主機崩潰),必須釋放連接,然后再重新建立連接。或者說明上次發送給主機的數據有問題,主機拒絕響應,帶RST標志的TCP報文段稱為復位報文段
5、SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置為1,帶SYN標志的TCP報文段稱為同步報文段
6、FIN:表示通知對方本端要關閉連接了,標記數據是否發送完畢。如果FIN=1,即告訴對方:“我的數據已經發送完畢,你可以釋放連接了”,帶FIN標志的TCP報文段稱為結束報文段
? 窗口大小:表示現在允許對方發送的數據量,也就是告訴對方,從本報文段的確認號開始允許對方發送的數據量
? 校驗和:提供額外的可靠性
? 緊急指針:標記緊急數據在數據字段中的位置
? 選項部分:其最大長度可根據TCP首部長度進行推算。TCP首部長度用4位表示,選項部分最長為:(2^4-1)*4-20=40字節
常見選項:
? 最大報文段長度:Maxium Segment Size,MSS
? 窗口擴大:Windows Scaling
? 時間戳: Timestamps
1 最大報文段長度指明自己期望對方發送TCP報文段時那個數據字段的長度。默認是536字節。數據字段的長度加上TCP首部的長度才等于整個TCP報文段的長度。MSS不宜設的太大也不宜設的太小。若選擇太小,極端情況下,TCP報文段只含有1字節數據,在IP層傳輸的數據報的開銷至少有40字節(包括TCP報文段的首部和IP數據報的首部)。這樣,網絡的利用率就不會超過1/41。若TCP報文段非常長,那么在IP層傳輸時就有可能要分解成多個短數據報片。在終點要把收到的各個短數據報片裝配成原來的TCP報文段。當傳輸出錯時還要進行重傳,這些也都會使開銷增大。因此MSS應盡可能大,只要在IP層傳輸時不需要再分片就行。在連接建立過程中,雙方都把自己能夠支持的MSS寫入這一字段。 MSS只出現在SYN報文中。即:MSS出現在SYN=1的報文段中
2 窗口擴大
為了擴大窗口,由于TCP首部的窗口大小字段長度是16位,所以其表示的最大數是65535。但是隨著時延和帶寬比較大的通信產生(如衛星通信),需要更大的窗口來滿足性能和吞吐率,所以產生了這個窗口擴大選項
3 時間戳可以用來計算RTT(往返時間),發送方發送TCP報文時,把當前的時間值放入時間戳字段,接收方收到后發送確認報文時,把這個時間戳字段的值復制到確認報文中,當發送方收到確認報文后即可計算出RTT。也可以用來防止回繞序號PAWS,也可以說可以用來區分相同序列號的不同報文。因為序列號用32為表示,每2^32個序列號就會產生回繞,那么使用時間戳字段就很容易區分相同序列號的不同報文
十一、TCP三次握手
SYN-SENT同步已發送
LISTEN收聽
SYN-RCVD同步收到
ESRAB-LISHED已建立連接
十二、TCP的四次揮手
十三、有限狀態機
? CLOSED 沒有任何連接狀態
? LISTEN 偵聽狀態,等待來自遠方TCP端口的連接請求
? SYN-SENT 在發送連接請求后,等待對方確認
? SYN-RECEIVED 在收到和發送一個連接請求后,等待對方確認
? ESTABLISHED 代表傳輸連接建立,雙方進入數據傳送狀態
? FIN-WAIT-1 主動關閉,主機已發送關閉連接請求,等待對方確認
? FIN-WAIT-2 主動關閉,主機已收到對方關閉傳輸連接確認,等待對方發送關閉傳輸連接請求
? TIME-WAIT 完成雙向傳輸連接關閉,等待所有分組消失
? CLOSE-WAIT 被動關閉,收到對方發來的關閉連接請求,并已確認
? LAST-ACK 被動關閉,等待最后一個關閉傳輸連接確認,并等待所有分組消失
? CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認
? 客戶端先發送一個FIN給服務端,自己進入了FIN_WAIT_1狀態,這時等待接收服務端的報文,該報文會有三種可能:
? 只有服務端的ACK
? 只有服務端的FIN
? 基于服務端的ACK,又有FIN
? 1、只收到服務器的ACK,客戶端會進入FIN_WAIT_2狀態,后續當收到服務端的FIN時,回應發送一個ACK,會進入到TIME_WAIT狀態,這個狀態會持續2MSL(TCP報文段在網絡中的最大生存時間,RFC 1122標準的建議值是2min).客戶端等待2MSL,是為了當最后一個ACK丟失時,可以再發送一次。因為服務端在等待超時后會再發送一個FIN給客戶端,進而客戶端知道ACK已丟失
? 2、只有服務端的FIN時,回應一個ACK給服務端,進入CLOSING狀態,然后接收到服務端的ACK時,進入TIME_WAIT狀態
? 3、同時收到服務端的ACK和FIN,直接進入TIME_WAIT狀態
十四:客戶端的典型狀態轉移
? 客戶端通過connect系統調用主動與服務器建立連接connect系統調用首先給服務器發送一個同步報文段,使連接轉移到SYN_SENT狀態
? 此后connect系統調用可能因為如下兩個原因失敗返回:
? 1、如果connect連接的目標端口不存在(未被任何進程監聽),或者該端口仍被處于TIME_WAIT狀態的連接所占用(見后文),則服務器將給客戶端發送一個復位報文段,connect調用失敗。
? 2、如果目標端口存在,但connect在超時時間內未收到服務器的確認報文段,則connect調用失敗。
? connect調用失敗將使連接立即返回到初始的CLOSED狀態。如果客戶端成功收到服務器的同步報文段和確認,則connect調用成功返回,連接轉移至ESTABLISHED狀態
? 當客戶端執行主動關閉時,它將向服務器發送一個結束報文段,同時連接進入FIN_WAIT_1狀態。若此時客戶端收到服務器專門用于確認目的的確認報文段,則連接轉移至FIN_WAIT_2狀態。當客戶端處于FIN_WAIT_2狀態時,服務器處于CLOSE_WAIT狀態,這一對狀態是可能發生半關閉的狀態。此時如果服務器也關閉連接(發送結束報文段),則客戶端將給予確認并進入TIME_WAIT狀態
? 客戶端從FIN_WAIT_1狀態可能直接進入TIME_WAIT狀態(不經過FIN_WAIT_2狀態),前提是處于FIN_WAIT_1狀態的服務器直接收到帶確認信息的結束報文段(而不是先收到確認報文段,再收到結束報文段)
? 處于FIN_WAIT_2狀態的客戶端需要等待服務器發送結束報文段,才能轉移至TIME_WAIT狀態,否則它將一直停留在這個狀態。如果不是為了在半關閉狀態下繼續接收數據,連接長時間地停留在FIN_WAIT_2狀態并無益處。連接停留在FIN_WAIT_2狀態的情況可能發生在:客戶端執行半關閉后
,未等服務器關閉連接就強行退出了。此時客戶端連接由內核來接管,可稱之為孤兒連接(和孤兒進程類似)
? Linux為了防止孤兒連接長時間存留在內核中,定義了兩個內核參數:
? /proc/sys/net/ipv4/tcp_max_orphans 指定內核能接管的孤兒連接數目
? /proc/sys/net/ipv4/tcp_fin_timeout 指定孤兒連接在內核中生存的時間
十五:TCP超時重傳
? 異常網絡狀況下(開始出現超時或丟包),TCP控制數據傳輸以保證其承諾的可靠服務
? TCP服務必須能夠重傳超時時間內未收到確認的TCP報文段。為此,TCP模塊為每個TCP報文段都維護一個重傳定時器,該定時器在TCP報文段第一次被發送時啟動。如果超時時間內未收到接收方的應答,TCP模塊將重傳TCP報文段并重置定時器。至于下次重傳的超時時間如何選擇,以及最多執行多少次重傳,就是TCP的重傳策略
? 與TCP超時重傳相關的兩個內核參數:
? /proc/sys/net/ipv4/tcp_retries1,指定在底層IP接管之前TCP最少執行的重傳次數,默認值是3
? /proc/sys/net/ipv4/tcp_retries2,指定連接放棄前TCP最多可以執行的重傳次數,默認值15(一般對應13~30min)
十六、UDP特性
? 工作在傳輸層
? 提供不可靠的網絡訪問
? 非面向連接協議
? 有限的錯誤檢查
? 傳輸性能高
? 無數據恢復特性
十七、Internet協議特征
? 運行于 OSI 網絡層
? 面向無連接的協議
? 獨立處理數據包
? 分層編址
? 盡力而為傳輸
? 無數據恢復功能
IP PDU報頭
1、 版本:占4位,指 IP 協議的版本目前的IP協議版本號為4
2、首部長度:占4位,可表示的最大數值是15個單位,一個單位為4字節,因此IP 的首部長度的最大值是60字節
3、區分服務:占8位,用來獲得更好的服務,在舊標準中叫做服務類型,但實際上一直未被使用過.后改名為區分服務.只有在使用區分服務(DiffServ)時,這個字段才起作用.一般的情況下都不使用
4、總長度:占16位,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為 65535 字節.總長度必須不超過最大傳送單元 MTU
5、標識:占16位,它是一個計數器,通常,每發送一個報文,該值會加1, 也用于數據包分片,在同一個包的若干分片中,該值是相同的
6、標志(flag):占3位,目前只有后兩位有意義
7、DF: Don‘t Fragment,中間的一位,只有當 DF=0 時才允許分片
8、MF: More Fragment,最高位,MF=1表示后面還有分片。MF=0表示最后一個分片
9、片偏移:占12位,指較長的分組在分片后,該分片在原分組中的相對位置.片偏移以8個字節為偏移單位
10、生存時間:占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值為64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255
11、協議:占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程, 1表示為 ICMP協議, 2表示為 IGMP 協議, 6表示為 TCP 協議, 17表示為UDP 協議
12、首部檢驗和:占16位,只檢驗數據報的首部不檢驗數據部分.這里不采用 CRC 檢驗碼而采用簡單的計算方法
13、源地址和目的地址:都各占4字節,分別記錄源地址和目的地址
14、片偏移以8個字節為偏移單位
15、假定MTU=1400,三個包id=100相同, 前兩個 mf=1,最后一個mf=0
十八、IP地址
1、它們可唯一標識 IP 網絡中的每臺設備
2、每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址
3、IP地址由兩部分組成:
? 網絡ID:
? 標識網絡
? 每個網段分配一個網絡ID
? 主機 ID:
? 標識單個主機
? 由組織分配給各設備
4、IPv4地址格式:點分十進制記法5、IP地址分類A類:0 000 0000 - 0 111 1111: 1-127網絡數:126, 127每個網絡中的主機數:2^24-2默認子網掩碼:255.0.0.0私網地址:10.0.0.0
B類:10 00 0000 - 10 11 1111:128-191網絡數:2^14每個網絡中的主機數:2^16-2默認子網掩碼:255.255.0.0私網地址:172.16.0.0-172.31.0.0
C類:110 0 0000 - 110 1 1111: 192-223網絡數:2^21每個網絡中的主機數:2^8-2默認子網掩碼:255.255.255.0私網地址:192.168.0.0-192.168.255.0
D類:組播1110 0000 - 1110 1111: 224-239
E類:240-2556、公共IP地址7、私有IP地址7、特殊地址1、0.0.0.00.0.0.0不是一個真正意義上的IP地址。它表示一個集合:所有不清楚的主機和目的網絡。2、255.255.255.255限制廣播地址。對本機來說,這個地址指本網段內(同一廣播域)的所有主機3、127.0.0.1~127.255.255.254本機回環地址,主要用于測試。在傳輸介質上永遠不應該出現目的地址為“127.0.0.1”的 數據包。4、224.0.0.0到239.255.255.255組播地址,224.0.0.1特指所有主機,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序5、169.254.x.x如果Windows主機使用了DHCP自動分配IP地址,而又無法從DHCP服務器獲取地址,系統會為主機分配這樣地址。8、保留地址9、子網掩碼10、有子網的子網絡11、子網掩碼的八位12、可變長度子網掩碼13、Subnet地址14、優化IP地址分配15、跨網絡通信1、跨網絡通信:路由2、路由分類:主機路由網絡路由默認路由3、優先級:精度越高,優先級越高16、動態主機配置協議DHCP17、基本網絡配置1、將Linux主機接入到網絡,需要配置網絡相關設置。2、一般包括如下內容:主機名IP/netmask路由:默認網關DNS服務器主DNS服務器次DNS服務器第三DNS服務器18、CentOS 6網卡名稱1、接口命名方式:CentOS 6以太網:eth[0,1,2,...]ppp:ppp[0,1,2,...]2、網絡接口識別并命名相關的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules3、查看網卡:dmesg |grep –i ethethtool -i eth04、卸載網卡驅動:modprobe -r e1000rmmod e10005、裝載網卡驅動:modprobe e100019、網絡配置方式1、靜態指定:ifconfig, route, netstatip: object {link, addr, route}, ss, tcsystem-config-network-tui,setup配置文件2、動態分配:DHCP: Dynamic Host Configuration Protocol20、配置網絡接口ifconfig命令ifconfig [interface]ifconfig -aifconfig IFACE [up|down]ifconfig interface [aftype] options | address ...ifconfig IFACE IP/netmask [up]ifconfig IFACE IP netmask NETMASK注意:立即生效啟用混雜模式:[-]promisc21、route命令1、路由管理命令2、查看:route -n3、添加:route addroute add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]4、目標:192.168.1.3 網關:172.16.0.1route add -host 192.168.1.3 gw 172.16.0.1 dev eth05、目標:192.168.0.0 網關:172.16.0.1route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth06、默認路由,網關:172.16.0.1route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1route add default gw 172.16.0.17、刪除:route delroute del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]8、目標:192.168.1.3 網關:172.16.0.1route del -host 192.168.1.39、目標:192.168.0.0 網關:172.16.0.1route del -net 192.168.0.0 netmask 255.255.255.022、配置動態路由通過守護進程獲取動態路由? 安裝quagga包? 支持多種路由協議:RIP、OSPF和BGP? 命令vtysh配置23、netstat命令1、netstat - Print network connections, routing tables, interface,statistics, masquerade connections, and multicast memberships2、顯示網絡連接:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]-t: tcp協議相關-u: udp協議相關-w: raw socket相關-l: 處于監聽狀態-a: 所有狀態-n: 以數字顯示IP和端口;-e:擴展格式-p: 顯示相關進程及PID3、常用組合:-tan, -uan, -tnl, -unl4、顯示路由表:netstat {--route|-r} [--numeric|-n]-r: 顯示內核路由表-n: 數字格式5、顯示接口統計數據:netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]netstat -inetstat –I=IFACEifconfig -s eth024、ip命令1、配置Linux網絡屬性:ip命令2、ip - show / manipulate routing, devices, policy routing and tunnelsip [ OPTIONS ] OBJECT { COMMAND | help }OBJECT := { link | addr | route }ip link - network device configurationset dev IFACE可設置屬性:up and down:激活或禁用指定接口ifup/ifdownshow [dev IFACE]:指定接口[up]:僅顯示處于激活狀態的接口3、ip addr { add | del } IFADDR dev STRING[label LABEL]:添加地址時指明網卡別名[scope {global|link|host}]:指明作用域global: 全局可用link: 僅鏈接可用host: 本機可用[broadcast ADDRESS]:指明廣播地址4、ip address show - look at protocol addresses[dev DEVICE][label PATTERN][primary and secondary]5、ip address flush - 使用格式同showip addr add 172.16.100.100/16 dev eth0 label eth0:0ip addr del 172.16.100.100/16 dev eth0 label eth0:0ip addr flush dev eth0 label eth0:06、ip route - routing table management添加路由:ip route addip route add TARGET via GW dev IFACE src SOURCE_IPTARGET:主機路由:IP網絡路由:NETWORK/MASKip route add 192.168.0.0/24 via 172.16.0.1ip route add 192.168.1.13 via 172.16.0.1添加網關:ip route add default via GW dev IFACEip route add default via 172.16.0.1刪除路由:ip route deleteip route del TARGET顯示路由:ip route show|list清空路由表:ip route flush [dev IFACE] [via PREFIX]ip route flush dev eth025、ss命令1、格式:ss [OPTION]... [FILTER]2、netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊通信獲取socket信息。3、選項:-t: tcp協議相關-u: udp協議相關-w: 裸套接字相關-x:unix sock相關-l: listen狀態的連接-a: 所有-n: 數字格式-p: 相關的程序及PID-e: 擴展的信息-m:內存用量-o:計時器信息4、FILTER : [ state TCP-STATE ] [ EXPRESSION ]5、TCP的常見狀態:tcp finite state machine:LISTEN: 監聽ESTABLISHED:已建立的連接FIN_WAIT_1FIN_WAIT_2SYN_SENTSYN_RECVCLOSED6、EXPRESSION:dport =sport =示例:’( dport = :ssh or sport = :ssh )’7、常用組合:-tan, -tanl, -tanlp, -uan8、常見用法ss -l 顯示本地打開的所有端口ss -pl 顯示每個進程具體打開的socketss -t -a 顯示所有tcp socketss -u -a 顯示所有的UDP Socektss -o state established '( dport = :ssh or sport = :ssh)' 顯示所有已建立的ssh連接ss -o state established '( dport = :http or sport =:http )' 顯示所有已建立的HTTP連接ss -s 列出當前socket詳細信息26、網絡配置文件1、IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE2、路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE3、/etc/sysconfig/network-scripts/ifcfg-IFACE:說明參考/usr/share/doc/initscripts-9.49.30/sysconfig.txtDEVICE:此配置文件應用到的設備HWADDR:對應的設備的MAC地址BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootpNM_CONTROLLED:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no"4、ONBOOT:在系統引導時是否激活此設備5、TYPE:接口類型;常見有的Ethernet, Bridge6、UUID:設備的惟一標識7、IPADDR:指明IP地址8、NETMASK:子網掩碼9、GATEWAY: 默認網關10、DNS1:第一個DNS服務器指向11、DNS2:第二個DNS服務器指向12、USERCTL:普通用戶是否可控制此設備13、PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中27、主機名和本地解析器1、配置當前主機的主機名:hostname [HOSTNAME]/etc/sysconfig/networkHOSTNAME=2、解析器執行正向和逆向查詢3、/etc/hosts? 本地主機名數據庫和IP地址的映像? 對小型獨立網絡有用? 通常,在使用DNS前檢查? getent hosts 查看/etc/hosts 內容28、dns名字解析1、/etc/resolv.confnameserver DNS_SERVER_IP1nameserver DNS_SERVER_IP2nameserver DNS_SERVER_IP3search magedu.com2、/etc/nsswitch.conf與/etc/hosts相比優先于DNS3、正向解析:FQDN-->IPdig -t A FQDNhost -t A FQDN4、反向解析:IP-->FQDNdig -x IPhost -t PTR IP29、網絡配置文件1、/etc/sysconfig/network-scripts/route-IFACE? 注意:需service network restart生效? 兩種風格:(1) TARGET via GW如:10.0.0.0/8 via 172.16.0.1(2) 每三行定義一條路由ADDRESS#=TARGETNETMASK#=maskGATEWAY#=GW30、網卡別名1、對虛擬主機有用2、將多個IP地址綁定到一個NIC上eth0:1 、eth0:2、 eth0:33、ifconfig命令:ifconfig eth0:0 192.168.1.100/24 upifconfig eth0:0 down4、ip命令:ip addr add 172.16.1.2/16 dev eth0ip addr add 172.16.1.1/16 dev eth0 label eth0:0ip addr add 172.16.1.2/16 dev eth0 label eth0:0ip addr del 172.16.1.1/16 dev eth0 label eth0:0ip addr flush dev eth0 label eth0:031、設備別名1、為每個設備別名生成獨立的接口配置文件? 關閉NetworkManager服務? ifcfg-ethX:xxx? 必須使用靜態聯網DEVICE=eth0:0IPADDR=10.10.10.10NETMASK=255.0.0.0ONPARENT=yes2、注意:service network restart 生效3、參考/usr/share/doc/initscripts-*/sysconfig.txt32、網卡名稱1、基于BIOS支持啟用biosdevname軟件內置網卡:em1,em2pci卡:pYpX Y:slot ,X:port2、名稱組成格式en: Ethernet 有線局域網wl: wlan 無線局域網ww: wwan無線廣域網名稱類型:o<index>: 集成設備的設備索引號s<slot>: 擴展槽的索引號x<MAC>: 基于MAC地址的命名p<bus>s<slot>: enp2s133、采用傳統命名方式1、使用傳統命名方式:2、(1) 編輯/etc/default/grub配置文件GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"或:修改/boot/grub2/grub.cfg3、(2) 為grub2生成其配置文件grub2-mkconfig -o /etc/grub2.cfg4、(3) 重啟系統34、CentOS 7網絡配置工具1、CentOS7主機名2、配置文件:/etc/hostname ,默認沒有此文件,通過DNS反向解析獲取主機名,主機名默認為:localhost.localdomain3、顯示主機名信息hostnamehostnamectl status4、設置主機名hostnamectl set-hostname centos7.magedu.com5、刪除文件/etc/hostname,恢復主機名localhost.localdomain6、CentOS 7網絡配置工具7、圖形工具:nm-connection-editor8、字符配置tui工具:nmtui9、命令行工具:nmcli35、nmcli命令1、地址配置工具:nmcli2、nmcli [ OPTIONS ] OBJECT { COMMAND | help }device - show and manage network interfacesnmcli device helpconnection - start, stop, and manage network connectionsnmcli connection help3、修改IP地址等屬性:nmcli connection modify IFACE [+|-]setting.property valuesetting.property:ipv4.addresses ipv4.gatewayipv4.dns1 ipv4.method manual | auto4、修改配置文件執行生效:systemctl restart networknmcli con reload5、nmcli命令生效: nmcli con down eth0 ;nmcli con up eth036、使用nmcli配置網絡1、NeworkManager是管理和監控網絡設置的守護進程2、設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效3、顯示所有包括不活動連接nmcli con show4、顯示所有活動連接nmcli con show --active5、顯示網絡連接配置nmcli con show "System eth0“6、顯示設備狀態nmcli dev status7、顯示網絡接口屬性nmcli dev show eth08、創建新連接default,IP自動通過dhcp獲取nmcli con add con-name default type Ethernet ifname eth09、刪除連接nmcli con del default10、創建新連接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.25411、啟用static連接配置nmcli con up static12、啟用default連接配置nmcli con up default13、查看幫助nmcli con add help14、修改連接設置nmcli con mod“static” connection.autoconnect nonmcli con mod “static” ipv4.dns 172.25.X.254nmcli con mod “static” +ipv4.dns 8.8.8.8nmcli con mod “static” -ipv4.dns 8.8.8.8nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”nmcli con mod “static” +ipv4.addresses 10.10.10.10/1615、DNS設置,存放在/etc/resolv.conf文件中PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下面命令:nmcli con mod “system eth0” ipv4.ignore-auto-dns yes37、nmcli命令38、網絡配置文件1、設備配置被保存在文本文件中? /etc/sysconfig/network-scripts/ifcfg-<name>? 幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt39、nmcli命令1、修改連接配置后,需要重新加載配置nmcli con reloadnmcli con down “system eth0” 可被自動激活nmcli con up “system eth0”nmcli dev dis eth0 禁用網卡,訪止被自動激活2、圖形工具nm-connection-editor3、字符工具nmtuinmtui-connectnmtui-editnmtui-hostname40、測試網絡工具1、在命令行下測試網絡的連通性 顯示主機名hostname2、測試網絡連通性pingmtr3、顯示正確的路由表ip route4、確定名稱服務器使用: nslookup host dig 5、跟蹤路由? traceroute? tracepath41、網絡客戶端工具1、ftp,lftp:子命令:get、mget、ls、helplftp [-p port] [-u user[,password]] SERVER2、lftpget URL3、wget [option]... [URL]...-q: 靜默模式-c: 斷點續傳-P:保存在指定目錄-O: 保存為指定的文件名--limit-rate=: 指定傳輸速率,單位K,M等4、links URL--dump--source
轉載于:https://blog.51cto.com/13287682/2044869
總結
以上是生活随笔為你收集整理的Python第十课 网络管理的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。