Linux網絡基礎
這是Linux網絡基礎的筆記,首先介紹了計算機網絡的基礎知識,然后是Linux的網絡設置
參考資料
- 主要為視頻資料:慕課網
- 輔助書籍:Linux從入門到精通(劉憶智 清華大學出版社)
- 網絡地址分為A,B,C,D,E類,這樣的分類有什么意義,各類別有什么區別嗎?
ISO/OSI
容易弄混的幾個概念:
- ISO:國際標準化組織
- OSI:開放系統互聯模型
- IOS:蘋果操作系統

7,6,5是面向應用程序提供的服務,4,3,2,1是面向數據提供服務。
幀存儲的是MAC地址,即硬件地址,每個網卡上的唯一的標識,負責局域網(內網)數據通信
-
報文存儲的是IP地址,IP地址負責公網(外網)數據通信
應用層 用戶接口
表示層 數據的表現形式、特定功能的實現如加密
會話層 對應用會話的管理、同步
傳輸層 可靠與不可靠的傳輸、傳輸前的錯誤檢測、流控、確定端口
網絡層 提供邏輯地址、選路
數據鏈路層 成幀、用MAC地址訪問媒介、錯誤檢測與修正
物理層 設備之間的比特流的傳輸、物理接口、電氣特性等
示例(發送郵件):
應用層:打開163等郵件網站,編輯郵件
表示層:點擊發送后,把郵件的內容轉換為數據,例如轉換為ASCII的0101,還有實現加密功能
會話層:確定數據是在本機上使用的例如PPT,還是需要發送出去的郵件。如果是PPT就不用下面4層,直接保存起來就可以了。
傳輸層:寫入郵件的發送端口號:25,接收端口號:110.是個TCP協議
網絡層:把本機IP地址和目標IP地址寫入
數據鏈路層:把本機MAC和目標MAC寫入
物理層:完成實際的數據傳輸
TCP/IP

網絡接口層
網絡接入層與OSI參考模型中的物理層和數據鏈路從相對應。它負責監視數據在主機和網絡之間的交換。事實上,TCP/IP本身并為定義蓋層的協議,而由參與互聯的個網絡使用自己的物理層和數據鏈路從協議,然后與TCP/IP的網絡 接入層進行連接。地址解析協議(ARP)工作在此層,即OSI參考模型的數據鏈路層。網際互聯層
網際互聯層對應于OSI參考模型的網絡層,主要解決主機到主機通信問題。它所包含的協議涉及數據包在整個網絡上的邏輯傳輸。該層有三個主要協議:網際協議(IP)、互聯網組管理協議(IGMP)和互聯網控制報文協議(ICMP)。傳輸層
傳輸層對應于OSI參考模型的傳輸層,為應用層實體提供端到端的通信功能,保證了數據包的順序傳送及數據的完整性。該層定義了兩個主要的協議:傳輸控制協議TCP和用戶數據報協議UDP。
TCP/IP三次握手應用層
應用層對應于OSI參考模型的高層,為用戶提供所需要的各種服務,例如:FTP、Telnet、DNS、SMTP等。

-
TCP/IP模型和OSI模型的比較
- 共同點
- OSI參考模型和TCP/IP參考模型都采用了層次結構的概念
- 都能夠提供面向連接和無連接兩種通信服務機制
- 不同點
- 一個是七層一個是四層結構
- 對可靠性要求不同(后者更高)
- OSI模型是在協議開發前設計的,具有通用型。TCP/IP是現有協議集后再建立模型,不適用于非TCP/IP網絡
- 共同點
IP地址
IP包頭

IP地址分類

- A類地址第1字節為網絡地址,其它3個字節為主機地址。另外第1個字節的最高位固定為0。
- A類地址范圍:1.0.0.1到126.255.255.254。
A類地址中的私有地址和保留地址: 10.0.0.0到10.255.255.255是私有地址(所謂的私有地址就是在互聯網上不使用,而被用在局域網絡中的地址)。127.0.0.0到127.255.255.255是保留地址,用做循環測試用的。 - B類IP地址是指,在IP地址的四段號碼中,前兩段號碼為網絡號碼,剩下的兩段號碼為本地計算機的號碼。如果用二進制表示IP地址的話,B類IP地址就由2字節的網絡地址和2字節主機地址組成,網絡地址的最高位必須是“10”。B類IP地址中網絡的標識長度為14位,主機標識的長度為16位,B類網絡地址適用于中等規模規模的網絡,每個網絡所能容納的計算機數為6萬多臺。
- 一個C類IP地址是指,在IP地址的四段號碼中,前三段號碼為網絡號碼,剩下的一段號碼為本地計算機的號碼。如果用二進制表示IP地址的話,C類IP地址就由3字節的網絡地址和1字節主機地址組成,網絡地址的最高位必須是“110”。
- 除了上面三種類型的IP地址外,還有幾種特殊類型的IP地址,TCP/IP協議規定,凡IP地址中的第一個字節以“lll0”開始的地址都叫多點廣播地址。因此,任何第一個字節大于223小于240的IP地址是多點廣播地址;IP地址中的每一個字節都為0的地址(“0.0.0.0”)對應于當前主機;IP地址中的每一個字節都為1的IP地址(“255.255.255.255”)是當前子網的廣播地址;IP地址中凡是以“llll0”的地址都留著將來作為特殊用途使用;IP地址中不能以十進制“127”作為開頭,127.0.0.1是回送地址,指本地機,一般用來測試使用。回送地址(127.x.x.x)是本機回送地址(Loopback Address),即主機IP堆棧內部的IP地址,主要用于網絡軟件測試以及本地機進程間通信,無論什么程序,一旦使用回送地址發送數據,協議軟件立即返回之,不進行任何網絡傳輸。 屬于保留測試地址,不能用,同時網絡ID的第一個6位組也不能全置為“0”,全“0”表示本地網絡。 D 類和 E 類用于組播和保留地址。
子網掩碼

端口作用
-
TCP協議包頭
TCP協議包頭
-
UDP包頭
UDP
常用端口號
FTP(文件傳輸協議):20 21
SSH(安全shell協議):22
telnet(遠程登錄協議):23
DNS(域名系統):53
http(超文本傳輸協議):80
SMTP(簡單郵件傳輸協議):25
POP3(郵局協議3代):110
查看本機啟動的端口
netstat -an
-a 查看所有連接和監聽端口
-n 顯示IP地址和端口號,而不顯示域名和服務器
DNS作用
DNS是用來做名稱解析的
hosts文件
c:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost
hosts是做靜態IP和域名對應
hosts優先級高于DNS
從Hosts文件到DNS
- 早期Hosts文件解析域名
- 名稱解析效能下降
- 主機維護困難
- DNS服務
- 層次性
- 分布式
DNS服務的作用

域名空間結構

DNS查詢過程

DNS查詢分類
- 從查詢方式分
- 遞歸查詢:要么做出查詢成功響應,要么做出查詢失敗響應,一般客戶機和服務器之間屬于遞歸查詢,即當客戶機向DNS服務器發出請求后,若DNS服務器本身不能解析,則會向另外的DNS服務器發出查詢請求,得到結果后轉交給客戶機
- 迭代查詢:服務器收到一次迭代查詢恢復一次結果,這個結果不一定是目標IP與域名的映射關系,也可以是其他DNS服務器的地址
網關
- 網關(Gateway)又稱網間連接器、協議轉換器
- 網關在網絡層以上實現網絡互連,是最復雜的網絡互連設備,僅用于兩個高層協議不同的網絡連接
- 網關既可以用于廣域網互連,也可以用于局域網互連
- 網關是一種充當轉換重任的服務器或路由器


- IP地址:網絡中每個主機的唯一標識
- 子網掩碼:用來從IP中得到網絡標識,剩下的就是主機標識
- 網關:路由器或能實現路由器功能的服務器
- DNS:域名和IP地址的轉換
Linux配置IP地址
Linux配置IP地址的方法
ifconfig命令臨時配置IP地址
<pre>
ifconfig命令:查看與配置網絡狀態命令
ifconfig eth0 192.168.0.200 netmask 255.255.255.0
臨時設置eth0網卡的IP地址與子網掩碼
</pre>setup工具永久配置IP地址(紅帽專有)
<pre>
在setup中設置完退出后需要重啟網絡服務
service network restart
</pre>
- 修改網絡配置文件
網卡信息文件:

主機名文件:
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
hostname [主機名]
查看與臨時設置主機名命令
DNS配置文件:
vi /etc/resolv.conf
nameserver 202.106.0.20
search localhost
虛擬機網絡參數配置
1配置LinuxIP地址
修改并配置IP地址
2啟動網卡
把ONBOOT改為yes
service network restart
重啟網絡服務
3修改UUID(針對拷貝的系統)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
刪除MAC地址行
rm –rf /etc/udev/rules.d/70-persistent-net.rules
刪除網卡和MAC地址綁定文件
重啟系統
4設置虛擬機網絡連接方式
在虛擬機中打開網絡適配器-網絡連接
橋接模式:直接連接物理網絡,使用真實的物理網卡連接網絡
虛擬機可以和真實計算機配相同的網段,但是會占用一個IP地址,如果網段使用人比較多,容易造成IP沖突。虛擬機可以和真實機以及局域網中的其他機器直接進行通信
NAT模式:使用vm的虛擬網卡8
只能和真實機通信,不能和局域網中的其他機器通信,但是能訪問公網
host-only:使用vm的虛擬網卡1
只能和真實機通信,不能和局域網中的其他機器通信,不能訪問公網
5修改橋接網卡
虛擬機-虛擬網絡編輯器
網絡環境查看命令
ifconfig命令
關閉與啟動網卡
ifdown 網卡設備名
禁用該網卡設備
ifup 網卡設備名
啟用該網卡設備
查看網絡狀態
netstat
-t 列出TCP協議端口
-u 列出UDP協議端口
-n 不適用域名與服務名,而使用IP地址和端口號
-l 僅列出在監聽狀態網絡服務
-a 列出所有的網絡連接
-r 列出路由列表,功能和route命令一致
常用:-tuln –an –rn
route命令
route –n
查看路由列表(可以看到網關)
route add default gw 192.168.1.1
臨時設定網關

域名解析命令
nslookup [主機名或IP]
進行域名與IP地址解析
nslookup
> server
查看本機DNS服務器
網絡測試命令
ping命令
ping [選項] ip或域名
探測指定IP或域名的網絡狀況
-c 次數:指定ping報的次數
telnet命令 (已經被SSH取代)
telnet [域名或IP] [端口]
遠程管理與端口探測命令
telnet 192.168.0.252 80
traceroute
traceroute [xuanxiang] IP或域名
路由跟蹤命令
-n 使用IP,不使用域名,速度更快
wget命令
wget http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz
下載命令
tcpdump命令
抓包命令
tcpdump –i eth0 –nnX port 21
-i 指定網卡接口
-nn 將數據包中的域名與服務轉換為IP和端口
-X 以十六進制和ASCII碼顯示數據包內容
port 指定監聽的端口
遠程登錄
SSH協議原理
SSH命令
ssh 用戶名@ip
遠程管理指定Linux服務器
scp [-r] 用戶名@ip:文件路徑 本地路徑
下載文件到本地
scp [-r] 本地文件 用戶名@ip:上傳路徑
上傳文件到遠程服務器
SecureCRT遠程管理工具(用win遠程管理Linux)
Xshell工具和WinSCP文件傳輸工具