对于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地址
[hyxy@master ~]$ 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。
[hyxy@master ~]$ su root
密码:
[root@master 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)重启网络服务
[root@master ~]# service network restart # 需全部ok才行
(4)查看ip地址
[root@master ~]# 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.
[root@master ~]# 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文件里,(也可以在这里进行修改)。如案例:
[root@admin ~]# cat /etc/sysconfig/network
HOSTNAME=admin
第二步:打开/etc/hosts文件,添加 ip hostname
[root@admin ~]# 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
-----------------------------------------------------------未完待续,敬请留言----------------------------------------------------------------------------------