课程回顾
-
虚拟安装
-
文件命令
本章重点
-
网络相关概念
-
静态网络配置
一、网络
1.1 什么是网络?
计算机网络是继电信网络、有线电视网络之后出现的世界级大型网络。
计算机网络由若干个结点和连接这些结点的链路组成。
网络中的结点可以是计算机、交换机、路由等,如图 (a)所示,是一个最简单的计算机网络模型。
计算机网络之间可以相互连接,组成更大的网络,如图 (b)所示,这种网络被称为互联网internet。
计算机网络的功能
数据通信:互相发送文件
资源共享:硬件上可以多台电脑共同连接一台打印机,软件上一台电脑远程访问另一台电脑,使用其软件或查看文件,数据上比如百度网盘资源共享
提高可靠性:比如一台主机死机了,那么因为是分布式,所以可以有另一台主机继续做他没有做完的事情
计算机网络的组成
硬件:端系统、路由器、交换机等等的中间设备
软件:附在端系统上,甚至中间设备上也有,把软件布到硬件上再通过协议穿梭于各个硬件当中就构成了一个计算机网络
1.2 网络体系结构
计算机网络体系结构是指计算机网络层次结构模型,它是各层的协议以及层次之间的端口的集合。
在计算机网络中实现通信必须依靠网络通信协议。在计算机网络中,层、层间接口及协议的集合被称为计算机网络体系结构。计算机网络体系结构必须包括三个内容,即分层结构与每层的功能,服务与层间接口和协议。
人类利用分层思想设计了一种网络通信结构,来解决上述及其他各种问题。
分层思想
在我们的日常生活中有很多分层思想的应用,比如快递系统的组织结构:
一个完整的事件,分成了好几层,其实就是整个过程的各个阶段,而同时会发现,上面的工作依赖下面
的工作的进行与完成,但无需参与其他层的具体工作。
常见的体系结构:
-
OSI(Open System Interconnect,简称开放式系统互联模型) 由国际化标准组织ISO制定的网络体系结构国际标准是 OSI七层模型,OSI七层模型只是理论上的、官方制定的国际标准
-
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议模型)
目前,由国际化标准组织ISO制定的网络体系结构国际标准是 OSI七层模型,但实际中应用最广泛的是 TCP/IP体系结构。换句话说,OSI七层模型只是理论上的、官方制定的国际标准,而TCP/IP体系结构才是事实上的国际标准。其实就是因为OSI标准没有市场背景,也就只是理论上的成果,并没有过多地应用于实践。
1.2.1 网络协议
为了保证通讯能顺利进行,且进行交互的进程能获取到准确、有效的数据信息,进行通讯的双方必须遵循一系列事先约定好的规则,这些规则即是协议(protocol)。
通信协议定义了 网络实体间发送报文和接收报文的格式、顺序以及当传送和接收消息时应采取的行动 (规则)。
常见的网络协议:http,https,tcp/ip等
协议组成
协议通常都由如下几个要素组成:
-
语法:是指协议元素与数据的组合格式,也就是报文格式;
-
语义:指对协议中各协议元素的含义的解释,例如:在HDLC协议中,标志Flag(7EH)表示报文的开始和结束;在BSC协议中,SOH(01H)表示报文的开始,STX(02H)表示报文正文的开始,ETX(03H) 表示报文正文的结束。
-
时序:是指在通信过程中,通信双方操作的执行顺序与规则。
1.2.2 IP地址与端口号
进行网络通信的对象实质上是网络中的进程,但一个网络中可能有许多台主机,每台主机中的进程也不 唯一,那么发送方是如何正确地确定接收方呢?在计算机网络中,人们常用IP地址标识网络中一台主机,使用端口号标识网络中的一个进程。
IP地址
目前常见的IP地址有IPv4和IPv6两个版本,其中IPv4是广泛使用的版本,IPv6是最新版本。
IPv4版本的IP地址由4个字段和3个分割字段的“.”组成,每个字段的取值范围为0~255
示例:
127.0.0.1
192.168.255.123
8.8.8.1
00001000.00001000.00001000.00000001
进程
计算机上正在运行的一个应用程序
端口号
端口号是一台主机中进程的唯一标识
使用“IP地址+端口号”可确定网络中的一个进程
端口号的最大取值为65535,其中0~1024号端口一般由系统进程占用
1.2.3 DHCP服务
DHCP即动态主机配置协议,是Dynamic Host Configuration Protocol的缩写。DHCP服务分为服务器和客户端两部分,其中服务器的功能为集中管理与IP相关的网络设置数据,处理客户端的DHCP请求,客户端的功能为使用服务器分配的IP配置网络。
DHCP服务的主要功能是为动态分配IP地址,它可以缓解IP地址不足这一问题。
DHCP服务常用术语
DHCP服务常用的术语有DHCP服务器、DHCP客户机、DHCP中继代理、作用域、超级作用域、排除范围、地址池、租约、保留等。
1、DHCP服务器
DHCP服务器是用于提供网络设置参数给DHCP客户机的Internet主机,用于配置DHCP服务器的主机必须使用静态IP地址,配置子网掩码与默认网关。
2、DHCP客户机
DHCP客户机是通过DHCP服务获取网络配置参数的Internet主机。若网络中存在DHCP服务器,开启DHCP服务的客户机在接入网络后可获得由DHCP服务器动态分配的IP地址。
3、DHCP中继代理
DHCP中继代理是在DHCP客户机和服务器之间转发DHCP消息的主机或路由器。
4、作用域
作用域指使用DHCP服务的网络中可用物理IP地址的集合,通常情况下,作用域被设置为网络上的一个子网。DHCP服务器只能为DHCP客户端分配存在于作用域中的空闲IP地址。
5、超级作用域
超级作用域是DHCP服务的一种管理功能,可用于物理子网上多个逻辑IP子网作用域的管理性分组,即
将多个作用域组合为单个管理实体进行统一管理。
6、排除范围
排除范围用于限定从DHCP服务作用域内排除的有限IP地址集合。排除范围中的IP地址为预留地址,这
些地址通常预留给一些需要固定IP的设备(如服务器、可网管交换机等)使用。当DHCP服务动态为计
算机分配IP时,普通设备不会获取到排除范围中的IP地址。
7、租约
DHCP的前身是BOOTP(Bootstrap Protocol,引导程序协议),与BOOTP相比,DHCP新增了“租约”
的概念。租约是指DHCP服务器分配IP地址时,为DHCP客户机指定的客户机使用IP地址的时间长度。
8、保留
保留是DHCP服务器的一种功能,使用该功能可使子网中的某个硬件设备始终使用相同的IP地址。
DHCP的工作流程
在一个配置了DHCP服务器的网络中,若有新加入的客户机需要获取IP地址,则其过程如下:
1、客户机通过广播发送dhcpdiscover信息寻找DHCP服务器。
2、服务器为客户机提供IP租约地址。
3、客户端接收IP租约信息。
4、租约确认
1.2.4 域名系统的结构
由于使用四个字段表示的IP地址难以阅读和记忆,人们发明了域名系统,域名系统中的每个域名都对应 唯一一个IP地址,即使用域名或者与域名对应的IP地址可以访问网络上的同一台主机,例如,使用域名“www.baidu.com”或者IP地址“202.108.22.5”都能访问百度的主机。
域名系统采用类似目录树的等级结构,域名分为根域、顶级域、二级域、三级域和主机名五类。
类型 | 说明 | 示例 |
---|---|---|
根域 | DNS域名规则中规定,由尾部句点(.)来指定名称位于根或更高级别的域层次结构 | 单个句点(.)或由句点结尾的名称 |
顶级域 | 某个国家/地区/组织使用的域名 | .cn、.com、.edu |
二级域 | 个人或组织在Internet上使用的注册名称 | baidu.com、qq.com |
三级域 | 由二级域派生的域,常用于网站名 | www.baidu.com、tieba.baidu.com |
主机名 | 网络上特定计算机的标识 | h1.www.baidu.com |
1.2.5 DNS服务
人们难以记住大量用于访问网站服务器的IP地址,往往以域名形式(如www.baidu.com)发起请求,但实际上网络中的计算机只能识别形如“192.168.43.127”的IP地址,而无法识别域名,那么浏览器是如何根据域名调取相应页面的呢?这一切都离不开DNS。
DNS(Domain Name System,即域名系统)实质上是一个分布式数据库,其中存储了域名和IP地址之间的映射关系,它的主要功能为域名解析,即通过域名获取对应IP地址。 提供域名解析功能的主机被称为域名服务器,即DNS服务器。
一个域名只能对应一个IP地址,但一个IP地址可以对应多个域名,也可以没有相应域名。
1.2.6 获取IP
测试是否能够上网:
ping www.baidu.com
centos7中查看IP信息的命令(之前版本可以直接使用ifconfig)
ip addr
ifconfig
1.3 网络设备
集线器(HUB)
共享带宽的设备,采用广播的形式来传输信息,可以实现多台电脑同时使用一个进线接口来上网或组成局域网。
集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待。
运作在 OSI 模型的物理层
交换机
独享带宽的设备,能够进行地址学习(mac地址:源端和目标端),采用存储转发的形式来交换报文。
可以隔离冲突域。因为每一个端口都有一个独占的带宽,当两个端口工作时,不影响其他端口工作。
运行在 OSI 模型的数据链路层
路由器
一个作用是连通不同的网络,另一个作用是选择信息传送的线路(选路)。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
路由器可以在无网络或有网络时可以让几台电脑同时互联,并且进行局域网连接。
运行在 OSI 模型的网络层
总结
两台电脑可以通过一根网线直接连接,进行通信。
集线器:机器一多,可以把网线都接到集线器(物理层)上,但是集线器对所有电脑进行广播。
交换机:不想广播,可以用(二层)交换机(数据链路层),又叫多端口网桥,会记录所有电脑的MAC地址表,根据MAC地址进行广播
路由器:互联网电脑这么多,交换机MAC地址表总不能全放下。改用路由器(网络层),也叫三层交换机,通过网段的方式定位要把消息转发到哪。
二、虚拟网卡
2.1 网络适配器
对电脑熟悉点的朋友应该都知道应该都知道网络适配器叫网卡或网络接口卡(NIC),英文名NetworkInterfaceCard。它是使计算机联网的设备。
2.2 网络模式
桥接模式:当虚拟机系统的网络连接模式为桥接模式时,相当于在主机系统和虚拟机系统之间连接了一个网桥,而网桥两端的网络都属于同一网络,主机和虚拟机是处于同一网络中的对等主机。
桥接模式的虚拟机,就像一个在路由器民政局”那里”上过户口”的成年人,有自己单独的居住地址,虽然和主机住在同一个大院里,但好歹是有户口的人,可以大摇大摆地直接和外面通信。
NAT 模式:NAT即Network Address Translation,网络地址转换是虚拟专用网和全球IP地址之间的转换,虚拟专用网是企业,政府部门的内部网络,在虚拟专用网中主机的IP地址是虚拟专用地址,它不能被互联网中的路由器所识别,因此,在企业接入互联网的默认网关(接入路由器)中,需要地址转换NAT软件使得虚拟专用网内部的主机可以连接到互联网。
NAT模式的虚拟机,纯粹就是一个没上过户口的黑户,路由器”民政局”根本不知道有这么个人,自然也不会主动和它通信。即使虚拟机偶尔要向外面发送点的信件,都得交给主机以主机的名义转发出去,主机还专门请了一位叫做NAT的老大爷来专门负责这些虚拟机的发信、收信事宜。
Host-Only 模式:虚拟网络是一个全封闭的网络,它唯一能访问的就是物理真机。主机和虚拟机之间的通信是通过 VMware Network Adapter VMnet1 虚拟网卡来实现的。
仅主机模式的虚拟机,纯粹是一个彻彻底底的黑奴,不仅没有户口、路由器”民政局”不知 道这么号人,还被主机关在小黑屋里,连信件也不准往外发。 没有IP设置,无法和外界进行通信
2.2 虚拟网卡
虚拟网卡(又称虚拟网络适配器),即用软件模拟网络环境,模拟网络适配器,windows系统自带此软件。
-
vm net0:桥接模式
-
vm net1:仅主机
-
vm net8:NAT模式
三、设置静态IP
3.1 查看虚拟网关
VM虚拟机的 编辑---->虚拟网络编辑器----->vmnet8----->nat设置
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
vm编辑 -- 虚拟网络编辑器
3.2 编辑网卡文件
必须有操作权限
切换连接用户
su 用户名/-
[s@localhost ~]$ su root
Password:
[root@localhost s]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33 ifdown-eth ifdown-isdn ifdown-sit ifup ifup-ib ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifcfg-lo ifdown-ib ifdown-post ifdown-Team ifup-aliases ifup-ippp ifup-plusb ifup-sit ifup-wireless
ifdown ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifdown-bnep ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-isdn ifup-ppp ifup-TeamPort network-functions
[root@localhost network-scripts]# vi ifcfg-ens33
修改并追加以下内容: 按i
# 静态IP配置
BOOTPROTO=static
# 使用静态ip
ONBOOT="yes"
# ip地址:起始范围内的地址
IPADDR=192.168.190.140
# 子网掩码
NETMASK=255.255.255.0
# 网关
GATEWAY=192.168.190.2
如果不生效,添加
DNS1=192.168.0.1或者
DNS1=8.8.8.8 谷歌在全世界范围的一个DNS域名服务解析
DNS2=114.114.114.114 中国网络大型运营商提供个DNS域名服务解析
按esc退出编辑模式,使用底行模式 : wq 保存退出
3.3 重启网络
systemctl restart network 或 service network restart
查看网络状态
systemctl restart network
3.4 查看并测试
最小安装的话需要自己下载一个网络工具
yum -y install net-tools
ip addr 或者 ifconfig
测试连接
跟主机做连接测试
主机连接虚拟机:ping ip地址(虚拟机)
虚拟机连接主机:ping ip地址(主机)
网络
1.主机连网;
2.虚拟机是否能连网;
ping www.baidu.com
四、SSH工具简介和使用
(ssh协议默认端口号为22) ftp 21 http 80 https 443
4.1 简介
SSH(Security Shell) 是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP =security copy 协议在网络上向另一台电脑传输文件。
4.2 作用(自学)
SSH常用命令:
1、复制SSH密钥到目标主机,开启无密码SSH登录
ssh-copy-id user@host
如果还没有密钥,请使用ssh-keygen命令生成。
2、从某主机的80端口开启到本地主机2001端口的隧道
ssh -N -L2001:localhost:80 somemachine
现在可以直接在浏览器中输入http://localhost:2001访问这个网站。
3、将你的麦克风输出到远程计算机的扬声器
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。
4、比较远程和本地文件
ssh user@host cat /path/to/remotefile | diff /path/to/localfile –
在比较本地文件和远程文件是否有差异时这个命令很管用。
5、通过SSH挂载目录/文件系统
sshfs name@server:/path/to/folder /path/to/mount/point
从sshfs has moved下载sshfs,它允许你跨网络安全挂载一个目录。
6、通过中间主机建立SSH连接
ssh -t reachable_host ssh unreachable_host
Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接。
7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法
ssh-copy-id username@hostname
8、直接连接到只能通过主机B连接的主机A
ssh -t hostA ssh hostB
当然,你要能访问主机A才行。
9、创建到目标主机的持久化连接
ssh -MNf <user>@<host>
在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用:
Host host ControlPath ~/.ssh/master-%r@%h:%p ControlMaster no
所有到目标主机的SSH连接都将使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),这个命令将非常有用,因为每次打开一个SSH连接时不会创建新的套接字。
10、通过SSH连接屏幕
ssh -t remote_host screen –r
直接连接到远程屏幕会话(节省了无用的父bash进程)。
11、端口检测(敲门)
knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000
在一个端口上敲一下打开某个服务的端口(如SSH),再敲一下关闭该端口,需要先安装knockd,下面是一个配置文件示例。
[options] logfile = /var/log/knockd.log [openSSH] sequence = 3000,4000,5000 seq_timeout = 5 command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 5000,4000,3000 seq_timeout = 5 command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT tcpflags = syn
12、删除文本文件中的一行内容,有用的修复
ssh-keygen -R <the_offending_host>
在这种情况下,最好使用专业的工具。
13、通过SSH运行复杂的远程shell命令
ssh host -l user $(<cmd.txt)
更具移植性的版本:
ssh host -l user “`cat cmd.txt`”
14、通过SSH将MySQL数据库复制到新服务器
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”
通过压缩的SSH隧道Dump一个MySQL数据库,将其作为输入传递给mysql命令,我认为这是迁移数据库到新服务器最快最好的方法。
通过配置 SSH 免密码登录,你可以享受到如下的便利:
1、用脚本实现日常工作的自动化。
2、增强 Linux 服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH 密钥单凭暴力破解是几乎不可攻破的.
4.3 常见SSH工具
SecureCRT
Xmanager(Xshell和Xftp)
Putty
Finalshell
等等
4.4 Finalshell 的安装和使用
windows 下安装Finalshell
注意事项
ctrl+s:锁定
ctrl+q:解锁
五、防火墙firewall
5.1 firewalld 简介
防火墙是Linux系统的主要的安全工具 ,可以提供基本的安全防护,在Linux历史上已经使用过的防火墙工具包括:ipfwadm、ipchains、iptables(即Centos6就是使用的iptables),而在firewalld中新引入了 区域(Zone)这个概念。
以前的iptables防火墙是静态的,每次修改都要求防火墙完全重启,这个过程包括内核netfilter防火墙模块的卸载和新配置所需模块的装载等,而模块的卸载将会破坏状态防火墙和确立建立的连接,现在firewalld可以动态管理防火墙,firewalld把netfilter的过滤功能集于一身。
5.2 firewalld 区域(Zone)
简单来说就是为用户预先准备了几套防火墙策略集合(策略模板),然后可以根据生产场景
的不同而选择合适的策略集合,实现了防火墙策略之间的快速切换。
firewalld预定义的九种网络区域:
①trusted②public③work④home⑤internal⑥external⑦dmz⑧block⑨drop
(1)丢弃区域(Drop Zone):如果使用丢弃区域,任何进入的数据包将被丢弃,这个类似于Centos6上的 iptables -j drop ,使用丢弃规则意味着将不存在相应。
(2)阻塞区域(Block Zone):阻塞区域会拒绝进入的网络连接,返回icmp-hostprohibited,只有服务器已经建立的连接会被通过,即只允许由该系统初始化的网络连接。
(3)公共区域(Public Zone):只接受那些被选中的连接,默认只允许ssh和dhcpv6-client,这个zone是缺省zone(缺省就是默认的意思,所以公共区域也是默认区域,在没有任何配置的情况下走的是公共区域)。
(4)外部区域(External Zone):这个区域相当于路由器的启动伪装(masquerading)选项,只有指定的连接会被接受,即ssh,而其他的连接将被丢弃或者不被接受。
(5)隔离区域(DMZ Zone):如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义,它也拥有只通过被选中连接的特性,即ssh, 这个区域又叫做非军事化区域。
(6)工作区域(Work Zone):在这个区域中,我们只能定义内部网络,比如私有网络通信才 被允许, 只允许ssh、ipp-client和dhcpv6-client。
(7)家庭区域(Home Zone):这个区域专门用于家庭环境,它同样只允许被选中的连接,即ssh、ipp-client、mdns、samba-client和dhcpv6-client。
(8)内部区域(Internal Zone):这个区域和 工作区域(Work Zone) 类似,只允许通过被选中的连接,与 家庭区域(Home Zone) 相同。
(9)信任区域(Trusted Zone):信任区域允许所有网络通信通过,因为 信任区域(Trusted Zone)是最被信任的,即使没有设置任何的服务,那么也是被允许的,因为 信任区域 (Trusted Zone)是允许所有连接的。
5.3 防火墙相关命令
重启、关闭、开启、firewalld.service 服务
服务命令
systemctl 参数 服务名 或者 service 服务名 参数
参数 | 说明 |
---|---|
start | 启动 |
stop | 停止 |
restart | 重启 |
status | 状态 |
enable | 启动 |
disable | 禁用 |
查看防火墙状态
service firewalld status systemctl status firewalld
重启防火墙
service firewalld restart systemctl restart firewalld
关闭防火墙
service firewalld stop systemctl stop firewalld
启动防火墙
service firewalld start systemctl start firewalld
设置开机是否启动
默认开机启动
# 设置开机不启动 systemctl disable firewalld # 设置开机启动 systemctl enable firewalld
firewall-cmd
获取firewalld 默认区域防火墙
firewall-cmd --get-default-zone
查看防火墙状态(防火墙自带的,显示简单)
firewall-cmd --state
查看防火墙规则
firewall-cmd --list-all
firewall端口操作
以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以
查看
firewall-cmd --zone=public --query-port=3306/tcp
添加
firewall-cmd --zone=public --add-port=3306/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
删除
firewall-cmd --zone=public --remove-port=3306/tcp --permanent