以下测试的网络环境为:虚拟机NAT模式,ubuntu设置为自动获取ip。
1、网络基本知识
具备基本的网络知识对于linux的学习非常重要,只有了解了这些基础知识,才能更好的学习网络相关指令、网络设置、网络服务等内容。
1)OSI七层模型
OSI模型即网络结构的标准模型,是由国际互联网标准化组织定义的网络分层模型,虽然由于模型的实现太复杂,并没有实际的七层网络协议栈,但对于理解网络协议内部的架构很有帮,提供了很好的参考模型。
在OSI七层结构中,每一层规定了不同的特性,负责不同的功能:
应用层(Application Layer):用户接口,为应用程序提供访问网络服务的接口,为用户提供常用的应用。应用层使用报文进行数据交互,本层定义的规范有:Telnet、FTP协议、HTTP协议、域名DNS等。
表示层(Presentation Layer):对传输的数据进行解释交换,使主机之间通信的信息能互相理解。该层功能主要包括数据的压缩、加密、格式转换等,定义的标准有:ASCII、JPEG等。
会话层(Session Layer):对应用会话的建立、中止、会话过程的管理。
传输层(Transport Layer):该层为主机进程之间的通信提供服务,以数据段为单位,提供可靠或在不可靠的传输,为上层掩盖下层细节,保证会话层的数据信息能够传送到另一方的会话层,是计算机通信体系结构中关键的一层。主要的传输层协议是TCP和UDP。
网络层(NetWork Layer):负责将各个子网之间的数据进行路由选择,将数据从发送端主机发送到接收端主机,数据单位为数据包,主要用到的协议就是IP协议。
数据链路层(Data Link Layer):数据链路层将网络层交下来的 IP数据包组装成帧,在这一层利用通信信道实现无差错传输,在物理介质基础之上提供了可靠的数据传输。
物理层(Physical Layer):为上层提供物理介质,通信端点之间的硬件物理接口,设备之间以比特流进行传输。该层主要与硬件相关,确定了与物理接口的一些特性,如电气特性、功能特性等。
2)TCP/IP四层模型
TCP/IP传输协议,即传输控制/网络协议,也叫做网络通讯协议。是linux世界的网络基础,是在网络的使用中的最基本的通信协议。TCP/IP协议不是一个独立的协议,而是一组不同层次上的多个协议的组合,不同层次负责不同的功能。
网络接口层:对应的OSI参考模型中的物理层和数据链路层。TCP/IP本身并未定义该层的协议,只是规定了为上一层网络层提供访问接口,可以传输IP数据包,发送ARP请求和接收ARP应答。
网络层:对应OSI参考模型中的网络层,是TCP/IP协议栈的核心,将数据包进行分组并发往目的主机。主要解决主机到主机的通信问题,它所包含的协议涉及数据包在整个网络上的逻辑传输。该层有三个主要协议:IP(国际协议)、IGMP(互联网组管理协议)、ICMP(互联网控制报文协议)
传输层:对应OSI参考模型中的传输层,提供主机与主机之间对等层之间可以进行会话的机制,保证了数据包的顺序传送及数据的完整性。该层定义了两个主要的协议:TCP传输控制协议、UDP用户数据报协议
应用层:将OSI参考模型中的会话层和表示层取消,将功能合并到到应用层,为用户提供所需要的各种服务。例如,基于TCP协议的FTP(文件传输协议)、Telnet协议、HTTP(超文本链接协议)等,基于UDP协议的TFTP、域名服务DNS、NFS等。
以FTP文件传输为例,在各层的数据传输过程如下:
3)IP
互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址)主机或网络设备如果想要连接到Internet,就必须配置IP地址。应用范围最广泛的因特网地址使用IPv4的IP地址,长为32位,由4组十进制数组成,每组数值范围为0~255,中间用点号隔开。例如IP地址192.168.0.232。
IP地址的一般格式为:类别+网络标号+主机标识。其中类别用来区分IP地址的类型,网络号表示主机所在的网络,主机号表示主机在网络中的标识。IP地址通常分为五类:A类、B类、C类、D类、E类:
类型 | IP地址范围 |
A | 0.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到247.255.255.255 |
其中D、E类为特殊地址不对民用开发。对于ABC类地址划分了公有地址和私有地址,其中公有地址由Inter INC负责,这些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地址:
(一)主机号全为0的IP地址,不分配给任何主机,用于表示某个网络的网络地址
(二)主机号全为1的IP地址,不分配给任何主机,仅用作广播地址
(三)IP地址127.0.0.1为回环结构,用于本地进行软件测试
4)子网掩码
子网掩码是一个32位的二进制地址,用来屏蔽原来网络地址的划分情况,从而获得一个范围小的,可以实际使用的网络。子网掩码使用与IP地址相同的格式,由4组十进制数组成,其中值为0的部分对应IP地址的主机ID部分。
使用子网掩码,网络设备可以分析得出一个IP地址的网络地址和子网地址,以及主机地址。子网掩码和IP地址进行“与”运算后,所得到的值为网络地址和子网地址。
标准的子网掩码:
类型 | 子网掩码地址 |
A | 255.0.0.0 |
B | 255.255.0.0 |
C | 255.255.255.0 |
子网掩码便于网络设备的尽快寻址,区分本网段地址和非本网段的地址,划分子网,进一步缩小子网的地址空间,充分利用目前紧缺的IP地址。
举例:
比较两台主机的IP地址与子网掩码进行“与”运算后的值,如果结果相同,则说明两台计算机处于同一个子网络上。在以太网结构的网络中,同一子网内的两台计算机可以直接通信,而不用路由器对IP分组进行转发
主机(IP/Netmask) | A(192.168.0.232/255.255.255.0) | B(192.168.0.51/255.255.255.0) |
IP地址(二进制) | 11000000.10101000.00000000.11101000 | 11000000.10101000.00000000.00110011 |
子网掩码(二进制) | 11111111.11111111.11111111.00000000 | 11111111.11111111.11111111.00000000 |
网络地址(二进制) | 11000000.10101000.00000000.00000000 | 11000000.10101000.00000000.00000000 |
两个主机的IP地址和子网掩码进行按位“与”运算,得到两个主机的网络地址均为11000000.10101000.00000000.00000000,即192.168.0.0,可知两个主机在同一个网络上。
5)端口号
端口是一个16位的整数,为了方便多种应用程序,区分不同应用程序的数据和状态,引入了端口。服务程序需要对某个端口进行绑定,客户端访问主机的此端口号与应用程序进行通信。
端口号可以由系统分配,也由用户自定义,一些常用的服务程序使用固定的静态端口号。
6)DNS(域名系统)
DNS是Domai Name Systerm的缩写,即域名系统,是一个用于TCP/IP应用程序的分布式数据库,用来提供IP地址和主机之间的映射信息。
DNS的名字空间具有树形的层次结构,结构如下
根域是特殊结点,没有任何结点,树形结构中的域名从最高层域名串联起来,中间用“.”分隔,顶级域名是域名的最后一部分。
顶级域名分为组织域(3个字符长的普通域)和国家/地区域(2个字符的域)。
组织域:
顶级域 | 描述 |
com | 商业组织 |
edu | 教育机构 |
gov | 政务机构 |
int | 国际组织 |
mil | 军事机构 |
net | 网络服务机构 |
org | 其他组织 |
国家/地区域:
顶级域 | 描述 |
cn | 中国 |
hk | 中国香港 |
uk | 英国 |
au | 澳大利亚 |
jp | 日本 |
2、ifconfig网络配置命令
命令:ifconfig
功能:显示或设置网络设备。
参数:ifconfig [网络接口] [选项] 地址/参数
选项 | 说明 |
ifconfig -a | 查看全部网络接口 |
ifconfig ens33 192.168.0.51 | 设置网络接口的IP地址 |
ifconfig ens33 broadcast 192.168.2.255 | 设置网口广播地址 |
ifconfig ens33 netmask 255.255.255.0 | 设置网口的子网掩码 |
ifconfig ens33 hw ether 22:22:22:22:22:22 | 设置网卡物理地址(MAC地址) |
ifconfig ens33 up | 激活网口 |
ifconfig ens33 down | 关闭网口 |
注意:
一、以上命令以ens33网口为例,可以更换为其他网络接口;
二、操作需要使用root用户权限;
三、该命令设置后不能够复位保存;
关闭ens33网口,需要用ifconfig -a指令看网卡信息。
elf@ubuntu:~$ sudo ifconfig ens33 down
elf@ubuntu:~$ ifconfig
elf@ubuntu:~$ ifconfig -a
打开ens33网口。
elf@ubuntu:~$ sudo ifconfig ens33 up
elf@ubuntu:~$ ifconfig
设置网卡信息。
elf@ubuntu:~$ sudo ifconfig ens33 192.168.0.51
elf@ubuntu:~$ sudo ifconfig ens33 broadcast 192.168.0.255
elf@ubuntu:~$ sudo ifconfig ens33 netmask 255.255.255.0
elf@ubuntu:~$ sudo ifconfig ens33 hw ether 22:22:22:22:22:22
3、ping网络通断检查命令
命令:ping
功能:检查网络的连接情况,通常情况下只能ping网段的主机,跨网段的ping操作需要进行特殊的路由设置
参数:ping [选项] IP地址/域名
选项 | 说明 |
-c | 设置完成要求回应的次数 |
-i | 指定收发信息的间隔时间 |
-n | 只输出数值 |
-r | 忽略普通的Routing Table,直接将数据包送到远端主机上 |
-s | 设置数据包的大小 |
-t | 设置存活值TTL的大小 |
-v | 详细显示指令的执行过程 |
注意:
如果是操作完上面小节的网络测试命令,需要先执行以下命令使网络配置生效。
elf@ubuntu:~$ systemctl restart network-manager.service
在进行ping测试前需要移除现有的网络配置,重新设置ip。
示例:
与电脑主机ip(192.168.0.64)进行ping测试。
4、route路由配置命令
命令:route
功能:添加,删除或查看网关参数
参数:route
选项 | 说明 |
Destination | 目标网段或者主机 |
Gateway | 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 |
Genmask | 网络掩码 |
Flags | 标记。一些可能的标记如下: |
U - 路由是活动的 | |
H - 目标是一个主机 | |
G - 路由指向网关 | |
R - 恢复动态路由产生的表项 | |
D - 由路由的后台程序动态地安装 | |
M - 由路由的后台程序修改 | |
! - 拒绝路由 | |
Metric | 路由距离,到达指定网络所需的中转数 |
Ref | 路由项引用次数 |
Use | 此路由项被路由软件查找的次数 |
Iface | 该路由表项对应的输出接口 |
查看路由:
elf@ubuntu:~$ route
添加路由:
elf@ubuntu:~$ sudo route add default gw 192.168.0.1
删除路由:
elf@ubuntu:~$ sudo route del default gw 192.168.0.1
5、nameserver设置DNS
命令:nameserver
功能:使用域名访问DNS,需要设置DNS
参数:nameserver xx.xx.xx.xx
该设置存放的位置在/etc/resolv.conf文件中: