1、網絡基礎linux
1)ISO/OSI七層模型簡介算法
ISO:國際標準化組織shell
OSI:開放系統互聯模型瀏覽器
IOS:蘋果操做系統(在計算機網絡中,IOS是互聯網操做系統,是思科公司爲其網絡設備開發的操做維護系統)緩存
1:比特(物理層)安全
2:幀(數據鏈路層)裏面保存最主要的信息--硬件地址服務器
在cmd中輸入 ipconfig /all 意思是全部。物理地址;就是計算機MAC地址,也就是計算機網卡地址。每一臺電腦都有一個網卡地址,MAC地址負責局域網通訊,IP地址負責外網通訊。網絡
3:報文(網絡層):IP地址是在網絡層也就是報文層,併發
4:TPDU(傳輸層)是傳輸協議數據單元,dom
5:SPDU(會話層)是會話協議數據單元,
6:PPDU(表示層)是表示層協議數據單元,
7:APDU(應用層)是應用協議數據單元。
一、 物理層:設備之間的比特流(計算機語言0101)的傳輸、物理接口(網線RJ45接口、音頻圓孔接口、視頻9針RS232串口)、電氣特性等。常見設備:網線、網卡。
電氣特性:網線總共8跟線。超五類接口中只有一、三、二、6四根線用來傳輸數據。
二、 數據鏈路層:成幀,用MAC地址訪問媒介,錯誤檢測與修正。
成幀:在數據包寫入自身MAC地址,源和目的地的MAC地址。
三、 網絡層:提供邏輯地址,選路。
邏輯地址:寫入IP地址,源和目的地IP
選路:選擇通過哪些路徑傳輸數據
四、 傳輸層:可靠與不可靠的傳輸、傳輸前的錯誤檢測、流控(流量控制)
肯定傳輸協議是否可靠
TCP:傳輸控制協議 可靠,傳送的數據必定不丟
UDP:用戶數據報協議 更快,可是可能會丟失數據
用來肯定端口號 (IP門牌號,端口號收件人)
網頁端口:80;郵件端口:25(發送端口),110(接受端口);FTP端口:21
每種傳輸協議,都有65536個端口
五、 會話層:對應用會話的管理、同步
六、 表示層:數據的表示形式,特定功能的實現如:加密、壓縮。
翻譯:將漢字或英文字母翻譯成計算機語言(0101)。英文經過ASCII碼翻譯,漢字經過GB2312翻譯成計算機語言,圖片經過jpg翻譯計算機語言等
七、 應用層:用戶接口
舉個例子:用戶A給用戶B發送郵件,應用層扮演的角色就是打開瀏覽器,輸入郵箱網址;登陸之後寫文字內容,上傳圖片、音頻,點發送數據就傳遞給表示層進行表示翻譯成計算機語言(0101);數據傳給會話層判斷是否會進行網絡傳遞,例如本身編寫的PPT無需網絡傳遞,放入硬盤保存,不傳給傳輸層;判斷是須要網絡傳遞就會發給傳輸層,傳輸層接到數據以後,寫入郵件端口號,肯定協議;到網絡層以後,寫入本身的IP地址,目標IP地址即收件人;到數據鏈路層以後,導入源MAC地址和目的地的MAC地址(負責局域網裏傳輸);以上完成以後,接下來就到物理層。
2)TCP/IP四層模型
OSI七層模型至關於車的模型,TCP/IP四層模型至關於原型車,先有車的模型,才能生產原型車,而後進行批量生產。
OSI七層模型 |
TCP/IP四層模型 |
應用層 |
應用層 |
表示層 |
|
會話層 |
|
傳輸層 |
傳輸層 |
網絡層 |
網際互聯層 |
數據鏈路層 |
網絡接口層 |
物理層 |
一、網絡接口層
他負責監視數據在主機與網絡之間的交換。事實上,TCP/IP本事併爲定義該層的協議,而由參與互連的各網絡使用本身的物理層和數據鏈路層協議,而後與TCP/IP的網絡接入層進行鏈接。地址解析協議(ARP)(就是將IP翻譯成網卡物理地址)工做在此層,即OSI參考模型的數據鏈路層.
二、國際互聯層
主要解決主機到主機的通訊問題。它所包含的協議設計數據包在整個網絡上的邏輯傳輸。該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)和互聯網控制報文協議(ICMP:主要是ping命令在使用)
三、傳輸層
爲應用層實體提供端到端的通訊功能,保證了數據包的順序傳送及數據的完整性。該層定義了兩個主要協議:傳輸控制協議(TCP)和用戶數據報協議(UDP)。
注:TCP協議與UDP協議最大的區別是:TCP協議是可靠的、面向鏈接到的協議;UDP協議是不可靠的、面向無鏈接的協議。TCP協議就像打電話,在數據傳輸時可時刻告訴傳輸方某個數據傳輸錯誤,要求從新傳輸。UDP協議就像發短信,只要發出去就行了,無論對方是否受到或者看見。平時瀏覽網頁用的就是TCP,而Q Q用的則是UDP協議 。TCP有一個三次握手會話
四、應用層
爲用戶提供各類服務,如:FTP、Telnet、DNS、SMTP等
數據封裝過程
共同點:一、都採用了層次結構的概念
二、都可以提供面向鏈接和無鏈接兩種通訊服務機制
不一樣點:一、前者是四層結構,後者是七層模型
二、對可靠性要求不一樣(前者要求高)
三、OSI模型是在協議開發前設計的,具備通用性。TCP/IP是先有協議集而後創建模型,不適用於非TCP/IP網絡。
四、實際市場應用不一樣(前者已是國際標準,後者是理論模型,並未成熟的產品)
3)IP地址
0 15 16 31
版本(4) |
頭部長度(4) |
優先級和服務類型(8) |
總長度(16) |
|
標識(16) |
標誌(3) |
片偏移(13) |
||
生存時間(8) |
協議(8) |
頭部校驗和(16) |
||
源IP地址(32) |
||||
目的IP地址(32) |
||||
選項(若是有) |
||||
數據 |
注:字段後面括號中的數字是指該字段在IP數據包頭部信息中所佔的位(bit)數。
IPv4包頭的大小不固定(20字節+可選數據),形成接收端接收時都要檢測包頭大小,再進行處理,性能低。
IPv6改進了這點,採用了固定大小的包頭。
00000000.00000000.00000000.00000000
11111111.11111111.11111111.11111111
換算成10進制,則
0.0.0.0~255.255.255.255(咱們把IP地址分爲ABCDE五大類,D、E類不對
民用組織開放)
網絡類別 |
最大網絡數 |
IP地址範圍 |
最大主機數 |
私有IP地址範圍 |
A |
126 (2^7-2) |
1.0.0.0—126.255.255.255 |
2^24-2 |
10.0.0.0—10.255.255.255 |
B |
16384(2^14) |
128.0.0.0—191.255.255.255 |
2^16-2 |
172.16.0.0—172.31.255.255 |
C |
2097152(2^21) |
192.0.0.0—223.255.255.255 |
2^8-2 |
192.168.0.0—192.168.255.255 |
A類用第一個數來表示不一樣的網段,也就是說1.0.0.0和2.0.0.0表明不一樣的網絡,不一樣的網絡若是要通訊須要用路由器(路由器是用來跨網絡通訊的),同網絡段裏通訊使用交換機。後三位表明不一樣的主機數,也就是2^24-2,減2是由於A類:1.0.0.0爲網絡自己(不能分配),1.255.255.255爲廣播地址(不能分配)。
B類用前兩個數表示同一個網段,後二位表明不一樣的主機數。
C類用前三個數表示同一個網段,後一位表明不一樣的主機數。
4)子網掩碼
子網掩碼決定IP的網段個數和主機個數。子網掩碼能夠寫成255.0.0.0、255.255.0.0和255.255.255.0這是標準的寫法。子網掩碼的特徵是不能與IP地址分開使用,必須同時使用。
5)端口做用
IP至關於門牌號,端口號至關於收件人
TCP協議包頭
UDP協議包頭
0 15 16 31
源端口(16) |
目的端口(16) |
長度(16) |
校驗和(16) |
數據 |
常見端口號
FTP(文件傳輸協議):端口號20(數據傳遞) 21(登陸傳輸命令)
SSH(安全shell協議):端口號 22
telnet(遠程登陸協議):端口號 23(禁止開啓,明文傳遞無需破解)
DNS(域名系統):端口號 53
http(超文本傳輸協議):端口號 80
SMTP(簡單郵件傳輸協議):端口號 25(發送)
POP3(郵局協議3代):端口號 110(接收)
查看本機啓用的端口
netstat -an
選項:
-a:查看全部鏈接和監聽端口
-n:顯示IP地址和端口號,而不顯示域名和服務名
6)DNS做用
背景:在互聯網中,經過IP地址來進行通訊,IP地址用數字表示記憶起來困難,對域名比較好記,因此採用DNS(域名系統)的縮寫,或名稱解析。
Hosts是作靜態IP和域名對應,而且hosts文件的優先級是高於DNS解析的。早期Hosts文件是解析域名的,可是效能低,主機維護困難,而DNS服務具備層次性和分佈式的特色。
做用:將域名解析爲IP地址。首先客戶機向DNS服務器發送域名查詢請求,DNS服務器告知客戶機Web服務器的IP地址,客戶機與Web服務器通訊。
查詢類型:從查詢方式上,遞歸查詢要麼作出成功響應,要麼做出查詢失敗的響應。通常客戶機和服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求後,若DNS服務器本事不能解析,則會向另外的DNS服務器發出查詢請求,獲得結果後轉交給客戶機。迭代查詢是服務器收到一次迭代查詢回覆一次結果,這個結果不必定是目標IP與域名的映射關係,也能夠是其它DNS服務器的地址;從查詢內容上,正向查詢由域名查找IP地址,反向查詢由IP地址查找域名。
7)網關做用
交換機(數據鏈路層)不認識IP,只認識mac 地址。局域網中交換數據。
路由器:不一樣網絡中進行數據交換
網關:硬件設備,具備路由功能的機器,能夠是路由器,也能夠是服務器。
做用:
1.非本網段的數據包交由網關處理
2.網關負責將內網IP轉換爲公網IP,公網IP轉換爲內網IP。
2、Linux網絡配置
1) Linux配置IP地址
一、 ifconfig命令臨時配置IP地址(臨時的,重啓無效)
# 若是在局域網中有可自動分配IP的服務器(DHCP 服務器), 則可設置自動獲取IP. 若是沒有DHCP服務器則須要手動設置IP.
# 臨時配置, 重啓計算機或服務, 即失效.
# 通常用於作實驗和測試.
# 主要用於查看網絡狀態
lo : Local Loopback 本地網卡
# 任何計算機都有
eth : 實際網卡
encap : 網卡類型
HWaddr : MAC地址
Bcast : 廣播地址
UP BROADCAST... : 網卡參數
RX : 當前接收數據包數量
TX : 當前發送數據包數量
Base address : 網卡在內存中實際地址
# 有時, 經過配置修改後未必生效, 會有IP衝突, 網卡損壞等緣由形成, 必須是在命令中可查看到的, 視爲生效。
臨時配置IP 和 子網掩碼的命令:
# ifconfig eth0 192.168.0.200 netmask 255.255.255.0
二、 setup工具永久配置IP地址(RedHat專用)
# 屬於radhat系列專有命令
# 配置成功後需重啓服務 : service network restart
2) Linux網絡配置文件
一、 網卡信息文件
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #網卡設備名稱,此處的名稱與文件名中的後半部分名字要相同
BOOTPROTO=none#是否自動獲取IP(none不指定、static靜態、dhcp動態)
HWADDR=00:23:54:68:84:DA #MAC地址
NM_CONTROLLED=yes #是否能夠由Network Manager圖形管理工具託管
ONBOOT=yes #是否隨網絡服務啓動(即開機時自動激活此網絡接口),eth0生效
TYPE=Ethernet #類型,類型爲以太網
UUID=674a7aa6-8829-431b-84c8-b2daf6cfa7bc #惟一識別碼
IPADDR=192.168.0.37 #IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.0.1 #網關
DNS1=202.168.0.20 #DNS
IPV6INIT=no #IPv6是否啓用
USERCTL=no #不容許非root用戶控制此網卡
PEERDNS={yes|no} #是否在BOOTPROTO爲dhcp時接受由DHCP服務器指定的DNS地址
#不會當即生效,但重啓網絡服務或主機都會生效
二、 主機名文件
[root@localhost ~]# vi /etc/sysconfig/network #永久修改,重啓生效
NETWORKING=yes #網絡服務是否工做,如改no,IP地址無論怎麼設置都無論用,是本機啓動網絡功能的總開關
HOSTNAME=localhost.localdomain
[root@localhost ~]# hostname 主機名 #臨時修改,重啓失效
三、 DNS配置文件
[root@localhost ~]# vi /etc/resolv.conf
nameserver 202.168.0.20 #名稱服務器(DNS)
search localhost #默認域名
#若是沒有DNS服務器,又想用主機名訪問另外一個主機,此時要用到指定本地解析
指定本地解析:
編輯/etc/hosts這個文件,例如:
主機IP 主機名 主機別名
本地DNS解析的時候,當用主機名訪問某個主機時,先找本地的/etc/hosts文件,沒有再找DNS緩存
DNS--->/etc/hosts--->DNS緩存
四、路由添加方法
在/etc/sysconfig/network-scripts/目錄下建立一個route-ethx(後半部分名字與網卡名相同)文件
文件中的書寫的格式有兩種:
添加格式一:
DEST via NEXTHOP(下一跳)
例如:192.168.10.0/24 via 10.10.10.254
添加格式二:
#添加第一條
ADDRESS0=
NETMASK0=
GATEWAY0=
#添加第二條
ADDRESS1=
NETMASK1=
GATEWAY1=
五、比ifconfig功能更增強大的工具包iprouter2
格式:ip
link:網絡接口屬性
addr:協議地址
route:路由
例如:
[crm@localhost ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
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 pfifo_fast state UP qlen 1000
link/ether 52:54:00:65:f0:20 brd ff:ff:ff:ff:ff:ff
[crm@localhost ~]$
#一個網卡可使用多個地址,網絡設備能夠用別名設置
以下圖,只有一個網卡eth0
設置一個別名:
格式:ifconfig ethx:x IP/NETMASK
[root@localhost ~]# ifconfig eth0:0 10.105.80.56/16,以下圖:
#永久配置方法
在/etc/sysconfig/network-scripts/目錄下建立一個ifcfg-ethx:x(後半部分名字與網卡名相同)文件
DEVICE=ethx:x
注:別名地址不能使用DHCP動態獲取
3) 虛擬機網絡參數配置
一、setup 修改IP地址
二、若是看不到eth0,啓動網卡 配置文件改成ONBOOT=yes以後service network restart重啓網絡服務,若是仍是看不到多是Ip衝突
三、修改UUID
①vi /etc/sysconfig/network-scripts/ifcfg-eth0刪除MAC地址行
②rm -rf /etc/udev/rules.d/70-persistent-net.rules刪除網卡和MAC地址綁定文件
③重啓系統
四、設置虛擬機網絡鏈接方式
五、修改橋接網卡
3、Linux網絡命令
1) 網絡環境查看命令
Ifdown:網卡設備名 #禁用該網卡設備
Ifup:網卡設備名 #啓動該網卡設備
選項:
-t:列出TCP協議端口
-u:列出UDP協議端口
-n:不使用域名與服務名,而使用IP地址和端口號
-l:僅列出在監聽狀態網絡服務(等待訪問的端口)
-a:列出全部的網絡鏈接
例如:[root@localhost ~]#netstat -tuln 查看開了哪些端口,從而判斷開了哪些服務,其中狀態爲LISTEN是監聽,狀態爲ESTABLISHED表明鏈接已經存在,即已經和本機創建鏈接的主機。
例如:[root@localhost ~]#netstat -an | grep ESTABLISHED | wc -l
統計estabished狀態的鏈接的行數(l是統計行數的)看有誰鏈接到咱們的服務器上
注:遠程管理鏈接後,必定要注意正確關閉遠程連接,而不能直接把ssh關了,用logout關閉便可
netstat -rn (-r:列出路由列表,功能和route命令一致,可查看網關)
route -n #查看路由列表(能夠看到網關)
route add default gw 192.168.1.1(通常不用)#臨時設定網關
ss -nt | sed -rn '/^ESTAB/s#.*[[:space:]]+([0-9.]+):[0-9]+.*#\1#p' | sort |uniq -c |sort -nr | head -5(當前主機鏈接數最多的排名前5的IP)
注意:
①在一臺服務器裏,連內網的網卡是不能設置網關的,只有鏈接外網的網卡才能設置,並且這個網關是由運營商(網通、電信等)設置好,它會告訴我,個人下一級網關在哪。
②隨便設置一個網關是不行的,由於與外網通訊時,要把消息轉發到網關,網關負責把內網IP轉換成公網IP,隨便設置則將找不到這個網關,致使呈現網絡鏈接失敗狀態。
nslookup [主機名或IP]
#進行域名與IP地址解析
[root@localhost ~]# nslookup
>server
#查看本機DNS服務器
2) 網絡測試命令
一、 ping命令
ping [選項] ip或域名 #探測指定IP或域名的網絡情況
運用ICMP(Internet控制報文協議)協議進行探測
選項:
-c次數:指定ping包的次數
二、 telnet命令
telnet [域名或IP] [端口] #遠程管理與端口探測命令(明文傳遞、未加密)
由於遠程管理不安全,因此不少計算機系統已經禁止使用telnet命令來進行遠程管理,如今已經被linux中ssh安全帶殼協議所取代,可是咱們可使用下面的工具來查看咱們要訪問的服務器的某個端口是否是開放的
#telnet 192.168.0.252 80
若是鏈接成功,將會進入鏈接狀態,按ctrl+]退出到telnet,在輸入quit返回命令行狀態。
三、 traceroute命令
taceroute [選項] IP或域名 #路由跟蹤命令
選項:
-n 使用IP,不使用域名,速度更快
預先記錄路由路徑,等沒法訪問時可使用這個命令判斷究竟是哪個節點出故障,這個traceroute利用的ICMP協議,和ping是同樣的。
四、 wget命令
wget url地址(網址) #下載命令
五、 tcpdump命令(抓包命令)
tcpdump -i eth0 -nnx port 21
選項:
-i 指定網卡接口
-nn 將數據包中的域名與服務轉爲IP和端口
-X 以十六進制和ASCII碼顯示數據包內容
port 指定監聽的端口
4、遠程登陸工具
1)SSH協議原理
一、對稱加密算法
採用單鑰密碼系統的加密方法,同一個密鑰能夠同時用做信息的加密和解密,這種加密方法稱爲對稱加密,也稱爲單密鑰加密
二、非對稱加密算法
非對稱加密算法又名「公開密鑰加密算法」,非對稱加密算法須要兩個密鑰:公開密鑰和私有密鑰
實現原理:
①首先屌絲和高富帥須要先生成公鑰和私鑰(分別爲公鑰A、私鑰A和公鑰B、私鑰B)。
②屌絲要進行加密,對方高富帥須要將其公鑰B先給屌絲用於加密。
③進行非對稱加密要兩把鎖(公鑰A和公鑰B),對應着解密須要私鑰A和私鑰B。
④加密後的文件,屌絲須要用私鑰A打開,而高富帥須要私鑰B才能打開。
三、SSH安全外殼協議
# 在非對稱加密算法之上演變而來
# 密碼足夠複雜強壯可下降暴力破解的成功性
# SSH 保護數據傳遞過程當中的安全, 但若在傳遞以前中病毒則不可避免
# 通用的遠程管理協議
3-1) 過程原理, A 須要發送數據包給 B
3-1-1) A 持有 公鑰A 和 私鑰A
3-1-2) B 持有 公鑰B 和 私鑰B
3-1-3) A 向 B 尋要公鑰B, 再結合自身的公鑰A 對數據包進行加密, 併發送給B
3-1-4) B 收到數據包以後, 可根據自身 私鑰B 對數據包進行解密
四、SSH命令
#遠程管理指定linux服務器(用戶名可省略,省略即用當前用戶登陸)
4-1-1) 通過遠程以後,公鑰下載在家目錄中的.ssh文件夾know_hosts文件中保存着 鏈接成功的目標信息
# 地址 加密算法 公鑰
4-1-2) 若目計算機進行了重裝系統, 或地址被另外一臺機器佔用, 此時已下載的公鑰沒法使用,使用vi 對該行進行刪除, 當再次鏈接時會再次提示是否進行下載公鑰。
#下載文件(網絡複製命令, 下載文件無需加-r,下載目錄須要加-r)
#上傳文件
# 網絡複製命令, 上傳文件無需加-r,上傳文件夾(目錄)就須要加-r。
# 此爲linux 與 linux之間進行文件傳輸的最簡單方式。
2)SecureCRT遠程管理工具
SecureCRT鏈接Linux亂碼的解決方法:
Session Option-Emulation-Font-選擇中文字體-字符集(只有選擇了中文字體纔有中文字符集選項)
另外:Windows不支持SSH協議,SecureCRT是用於Windows下可支持SSH協議鏈接Linux的應用軟件。
3)Xshell工具和WinSCP文件傳輸工具
Xshell是一個遠程管理服務器的軟件,主要是在Windows上操做遠程的linux服務器;
winSCP是一個遠程傳輸文件的軟件,傳輸軟件的工具。