1. 程式人生 > >《Linux系統》之"皮毛系列"(七) 網路通訊設定

《Linux系統》之"皮毛系列"(七) 網路通訊設定

對於Linux初學者來說,Linux系統的網路配置,又好玩又煩惱。好玩是因為,多臺linux主機之間可以通訊了,或者是可以聯網進行網上衝浪了。煩惱的是,需要設定一堆噁心難記的資料。(記得本人剛剛接觸Linux時,遇到網路設定就一個頭兩個大)。今天我就整理一下配置思路,供大家參考!!!(下面案例以VMware軟體中搭建的CentOS6.5系統為主)

一、幾個關於網路的相關概念

如果你想讓你安裝的Linux系統能在區域網內進行通訊,或者是網上衝浪,那麼你應該懂得如網絡卡eth0、ip、netmask(子網掩碼)、gateway(閘道器)、dns等等這幾個相關概念及其設定。

1、網絡卡.

一臺計算機想要進行網路通訊,首先必須要有一個硬體裝置,這個裝置就是網絡卡。它是計算機與外界區域網進行通訊、需要插入主機板上工作的一塊網路介面板。網路介面板又稱為通訊介面卡

網路介面卡(network adapter)或網路介面卡NIC(Network Interface Card),但是我們還是習慣稱之為"網絡卡"。

在Linux檔案系統上,這個裝置對應/etc/sysconfig/network-scripts/目錄下的網絡卡檔案,檔名稱是:ifcfg-ethN,這個N表示網絡卡的索引,從0開始,一個網絡卡對應一個檔案。因此,當只有一個網絡卡時,檔名都是ifcfg-eth0。(eth是ethernet的簡寫,乙太網卡的意思)。

2、IP.

網際網路協議地址(Internet Protocol Address),縮寫為IP地址(IP Address),是分配給使用者上網使用的網際網路協議(Internet Protocol, IP)裝置的數字標識。在IP網路上,如果使用者想要一臺計算機上網,就需要向因特網服務提供方ISP(Internet Service Provider)申請一個IP地址,用來唯一標識址這臺主機。常見的IP地址分為IPv4與IPv6兩大類。

IPv4,是網際網路協議的第四版,也是第一個被廣泛使用,構成現今網際網路技術的基礎的協議。它的下一個版本就是IPv6,IPv6正處在不斷髮展和完善的過程中,它在不久的將來將取代目前被廣泛使用的IPv4。

IPv4地址由32位二進位制數值組成,但為了便於使用者識別和記憶,採用了“點分十進位制表示法”,由4個點分十進位制整數來表示,每個十進位制整數對應一個位元組。例如,IPv4地址使用二進位制的表示形式為00001010 00000001 00000001 00000010,採用點分十進位制表示法表示為10.1.1.2。

因為IPv4最多有2^32-1個地址,再排除特殊意義的IP地址,針對於全世界的人口來說,每人一個明顯不夠用。因此為了方便IP地址的管理及組網,IP地址分成五類,分別是A、B、C、D、E類(如下圖),常用的是A、B、C類。這五類IP在全世界是唯一的數字,我們稱之為公網IP

。公網IP不會分配給個人,而是分配給各個大型機構。

類別 地址範圍 使用身份
A類 1:0:0:0   -  127:255:255:255 主要分配 給大量主機而區域網網路數量較少的大型網路
B類 128:0:0:0  -  191:255:255:255 一般用於國際性大公司和政府機構
C類 192:0:0:0  -  223:255:255:255 用於一般小公司校園網研究機構等
D類 224:0:0:0  -  239:255:255:255 用於特殊用途,又稱做廣播地址
E類 240:0:0:0  -  255:255:255:255 暫時保留

但是為了實現每個人都可以上網,獲取外網IP的網路裝置(交換機,路由器等)再重新根據演算法生成一套內網ip。這些ip地址只能用於某個內部網路,不能用於公共網路。RFC1918描述了為私有網路預留的3個IP地址段(如下圖)。這套內網ip,構成了一個區域網。同一個內網的IP不能重複,但是不同內網的ip是可以重複的。

類別 地址範圍
A類 10.0.0.0~10.255.255.255
B類 172.16.0.0~172.31.255.255
C類 192.168.0.0~192.168.255.255


我相信大家都遇到過這樣的情況:工作一天後,回到家,吃完飯,上網時總是遇到卡頓,遊戲玩不好,視訊看不好,罵這個罵那個的。那麼原因是什麼呢???

我來解釋一下:網路運營商的外網IP地址是有個數的,在生活中,同一個小區的兩棟樓的網路共用一個外網裝置(交換機,路由器),那麼,這兩棟樓的使用者就處在同一個內網(區域網)中,因此在晚上上網的時候,同一區域網下上網的人變多了,網路頻寬當然相對降低了。而我們自家的網路裝置(路由器)又為我們計算出一套內網ip,供家庭成員使用。

區域網中的IP:在一個區域網中,有兩個IP地址比較特殊,一個是網段內的第一個地址(如192.168.0.0),它是網路號,用於三層定址。一個網段內的最後一個地址(如192.168.0.255),它是廣播地址,代表了局域網內全部的主機。這兩個地址不能配置在個人計算機上。因此,在一個區域網中,能配置在計算機中的地址就只有192.168.0.1至192.168.0.254,這些地址稱之為主機地址。


3、 netmask

子網掩碼的作用,就是將IP地址劃分成網路地址主機地址兩部分。子網掩碼必須結合IP地址一起使用,不能單獨使用。

子網掩碼與IP地址一樣,也是二進位制,長度也為32位,子網掩碼由1和0組成,且1和0分別連續。ip的網路位與子網掩碼一一對應,記錄為相應長度的1,而主機位對應後,記錄為相應長度的0。

對於A類地址來說,預設的子網掩碼是255.0.0.0;
對於B類地址來說,預設的子網掩碼是255. 255.0.0;
對於C類地址來說,預設的子網掩碼是255.255.255.0。

4、 Gateway

閘道器(Gateway)就是一個網路連線到另一個網路的“關口”。簡單點說,就是路由器的ip地址,不同的路由器可以通過ip地址直接通訊。

比如網路A和網路B,網路A的IP地址範圍為“192.168.1.1~192. 168.1.254”,子網掩碼為255.255.255.0;網路B的IP地址範圍為“192.168.2.1~192.168.2.254”,子網掩碼為255.255.255.0。在沒有路由器的情況下,兩個網路之間是不能進行TCP/IP通訊的,即使是兩個網路連線在同一臺交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)判定兩個網路中的主機處在不同的網路裡。

而要實現這兩個網路之間的通訊,則必須通過閘道器。如果網路A中的主機發現資料包的目的主機不在本地網路中,就把資料包轉發給它自己的閘道器,再由閘道器轉發給網路B的閘道器,網路B的閘道器再轉發給網路B的某個主機。網路B向網路A轉發資料包的過程也是如此。

所以說,只有設定好閘道器的IP地址,TCP/IP協議才能實現不同網路之間的相互通訊。

5、 DNS 

DNS 是計算機域名系統(Domain Name System 或Domain Name Service) 的縮寫,它是由解析器以及域名伺服器組成的。

域名伺服器是指儲存有該網路中所有主機的域名和對應IP地址,並具有將域名轉換為IP地址功能的伺服器。我們在上網時輸入的網址,要通過域名解析系統解析並找到對應的IP地址,才能上網。

聯網狀態下的計算機是通過IP地址來定位的。但是IP地址不方便記憶,又發明了域名(具有世界唯一性)來代替IP地址。因此域名與ip是繫結到一起的。當我們輸入域名進行查詢ip的過程,我們稱之為域名解析。

我們也可以將主機名與IP地址進行繫結,主機名還是比較方便記憶的。當輸入主機名時,就會解析成對應的IP地址。

6、NAT的簡介

NAT(Network Address Translation)是網路地址轉換,它實現內網的IP地址與公網的地址之間的相互轉換,將大量的內網IP地址轉換為一個或少量的公網IP地址,減少對公網IP地址的佔用。NAT的最典型應用是:在一個區域網內,只需要一臺計算機連線上Internet,就可以利用NAT共享Internet連線,使區域網內其他計算機也可以上網。使用NAT協議,區域網內的計算機可以訪問Internet上的計算機,但Internet上的計算機無法訪問區域網內的計算機。

Windows作業系統的Internet連線共享、sygate、winroute、unix/linux的natd等軟體,都是使用NAT協議來共享Internet連線。 所有ISP提供的內網Internet接入方式,幾乎都是基於NAT協議的。

二、Linux的網路配置

1、VMware下三種網路連線模式

橋接模式:在這種模式下。Linux虛擬機器就像是區域網中的一臺獨立的主機,IP地址由區域網的網路裝置分配,與真實物理機在同一網段。它能夠訪問區域網內的任意一臺機器,也能訪問外網。

在安裝VMware虛擬機器軟體時,此軟體會生成兩個虛擬網絡卡,分別是 VMnet1和VMnet8。

NAT模式:使用的是虛擬網絡卡VMnet8,藉助網路地址轉換協議,它將虛擬機器和真實系統連在一起,同時這臺虛擬交換機又和外網相連。這樣虛擬機器和真實系統不僅可以相互共享檔案,同時又都能訪問外部網際網路(虛擬機器是借用真實系統的IP上網的)。ip地址由虛擬網絡卡DHCPserver分配。注意:此模式,虛擬機器只能訪問外網,不能訪問真實物理機所在的區域網的其他主機。外網也訪問不了此虛擬機器

僅主機模式(host-only):使用的是虛擬網絡卡VMnet1,此虛擬網絡卡就相當於一個虛擬交換機,它的作用就是將虛擬機器和真實系統連上了,兩個系統之間可以相互共享檔案,但是虛擬機器不能聯網。

2、自動獲取IP地址

DHCP協議:動態主機配置協議是一個區域網的網路協議。指的是由伺服器控制一段IP地址範圍,客戶機登入伺服器時就可以自動獲得伺服器分配的IP地址和子網掩碼。

我們只需要在/etc/sysconfig/network-scripts/ifcfg-eth0檔案中,保證BOOTPROTO的值為dhcp即可,就會自動獲取IP地址

[[email protected] ~]$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=2215437c-ea07-43e3-aa4c-469ae51af912
ONBOOT=yes                     <=== #如果想開機自動連線,就設定為yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp                 <=== # 保證是dhcp協議
HWADDR=00:0C:29:79:95:88

橋接模式下自動獲取ip,我的真實物理機的ip為192.168.1.103。虛擬機器的ip為192.168.1.104

Nat模式下自動獲取IP,我的虛擬網絡卡的Ip是192.168.234.1。而虛擬網絡卡VMnet8自動提供的是192.168.234.135,與VMnet8的地址在同一個網段。

僅主機模式下自動獲取:虛擬網絡卡VMnet1的ip是192.168.174.1,而自動分配給虛擬機器的是192.168.174.129.在同一個網段下。

3、手動設定靜態IP

在一個區域網下,我們可以將多個主機的IP地址設定為靜態IP,方便進行管理。下面我們來講解一下如何對linux系統設定靜態ip(僅主機模式下無意義,忽略不講)。

橋接模式下設定靜態IP:

(1)、切換root使用者,使用vi開啟網絡卡檔案ifcfg-eth0。

[[email protected] ~]$ su root
密碼:
[[email protected] hyxy]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

(2)修改BOOTPROTO,新增IPADDR,NETMASK,GATEWAY,DNS1,儲存退出。注意:屬性名都要大寫

.......
NM_CONTROLLED=yes
BOOTPROTO=static            <===== #將dhcp 改成static,或者none
HWADDR=00:0C:29:79:95:88
........
IPV6INIT=no
NAME="System eth0"
IPADDR=192.168.1.200        <===== #新增ip地址,自定義,與真實物理機同一網段即可。
NETMASK=255.255.255.0       <===== #新增子網掩碼,預設為255.255.255.0
GATEWAY=192.168.1.1         <===== #新增閘道器,即與真實物理機同一閘道器,通常為192.168.1.1
DNS1=192.168.1.1            <===== #新增DNS伺服器ip,通常與閘道器一致

(3)重啟網路服務

[[email protected] ~]# service network restart   # 需全部ok才行

(4)檢視ip地址

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:79:95:88
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0

(5)ping一下百度:ping  www.baidu.com.

[[email protected] ~]# ping www.baidu.com     # 檢視是否能ping通網路

(6)在真實物理機的命令提示符下ping一下虛擬機器的ip:ping 192.168.1.200

C:\Users\Michael>ping 192.168.1.200    # 檢視是否能ping通網路

如果都能ping通,恭喜你配置成功。

NAT模式下設定靜態IP:

(1)、修改檔案/etc/sysconfig/network-scripts/ifcfg-eth0

.......
NM_CONTROLLED=yes
BOOTPROTO=static            <===== #將dhcp 改成static,或者none
HWADDR=00:0C:29:79:95:88
........
IPV6INIT=no
NAME="System eth0"
IPADDR=192.168.234.150        <===== #新增ip地址,自定義,必須與VMnet8同一網段。
NETMASK=255.255.255.0         <===== #新增子網掩碼,預設為255.255.255.0
GATEWAY=192.168.234.2         <===== #新增閘道器,即與VMnet8同一閘道器,通常最後一個是2
DNS1=192.168.234.2                 <===== #新增DNS伺服器ip,通常與閘道器一致
 

如何檢視VMnet8的閘道器?..........................見下圖:

(2)重啟網路服務:service network restart   需要注意的是:重啟服務後,要保證虛擬機器的網路連線模式要與設定對應上哦。
(3)檢視ip地址:ifconfig。檢視是否是新修改的IP
(4)ping 一下百度       
(5)從真實物理機上ping一下虛擬機器ip.
沒問題,則大功告成

三、繫結主機名和IP

IP地址比較難以記憶,我們還是習慣記域名或者是主機名。我們可以將Linux的主機名與IP地址進行繫結。那麼如何繫結呢?

繫結前的注意事項:

1:確定自己以後常用的網路連線模式,到底是哪個?橋接,還是NAT.
2:必須使用靜態IP設定
3:檢視自己的主機名

第一步:先檢視主機名:在/etc/sysconfig/network檔案裡,(也可以在這裡進行修改)。如案例:

[[email protected] ~]# cat /etc/sysconfig/network
HOSTNAME=admin

第二步:開啟/etc/hosts檔案,新增  ip  hostname

[[email protected] ~]# vi /etc/hosts
......
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.200  admin         <=== # 繫結格式

第三步:重啟即可。就可以使用主機名替代IP地址咯,比如在真實物理機裡ping虛擬機器。ping   admin

-----------------------------------------------------------未完待續,敬請留言----------------------------------------------------------------------------------