13、DHCP和FTP协议
DHCP:动态主机配置协议
DHCP的分服务端和客户端
应用在大型的局域网环境中,分服务端和客户端。
服务端:提供IP地址,某种特定功能的提供者。
客户端:请求IP地址,请求对应的功能的使用者。
DHCP:集中地址管理(地址池,可用IP地址的范围),自动分配客户端的IP地址,gateway网关,DNS服务信息等等。
客户端的端口:68
服务端的端口:67
DHCP的优点
1、降低配置和部署设备的时间
2、降低了配置发生错误的可能
3、集中化管理IP地址的分配
4、提高了IP的利用率
DHCP的工作原理
客户端 —————————————> 服务端
1、客户端初始化时,不知道服务端是谁,整个网络中发送广播(DISCOVER报文)
2、服务端向客户端响应(我是服务端),发送offer报文(华为设备的单播方式,其他的都是广播方式)。
3、客户端向服务端发送服务请求(resquest报文的形式),请求报文只会发送给第一个响应自己的服务器。
4、服务端收到客户端的请求,从地址池中选择一个未被占用的IP地址以及租期信息,发送给客户端,都是发送ack(确认响应)。
5、客户端收到服务端发送的ack报文后,使用服务端提供的IP地址等服务。
- 租期信息:默认情况下,服务端提供的IP地址的使用期限是7200秒,到期后要重新向服务端请求新的IP地址(IP地址可能发送变化)。
- 客户端下线之后,客户端进行重新登录,发送一个包含之前DHCP服务端分配的IP信息的renew request的报文。服务端收到请求之后,先尝试让客户端继续使用该地址,如果地址不可用,才会分配一个新的,恢复客户端ack报文。
- 租约到期到期之后,服务端会把IP地址收回,客户端想要继续使用该IP地址,必须要更新租约。更新方式:租约到期时间的一半,客户端会发送renew request的报文来续约租期。服务端收到请求之后,尝试让客户端继续使用该地址,如果地址不可用,才会分配一个新的,恢复客户端ack报文。
在Linux系统上配置DHCP
地址分配案例
我们在ubuntu上开两台虚机机,设置服务端:Ub1、客户端:Ub2。
在服务端:Ub1上下载好DHCP软件。
服务端对/etc/dhcp/dhcpd.conf文件进行配置,具体修改如下
对客户端的网卡配置文件 /etc/netplan/01-network-manager-all.yaml进行修改,具体操作如下:
操作完之后分别使用systemctl restart isc-dhcp-server和netplan apply命令,重启服务和网卡。
这时候我们查看客户端的IP地址,会发现他的地址是我们服务端从地址池中分配给他的。
如果以上操作发现客户端的IP依然没变化,可以对服务端启用dhclient命令进行刷新配置的配置网络地址。
根据mac地址绑定ip案例
首先我们依然对服务端的 /etc/dhcp/dhcpd.conf 文件进行配置,具体修改如下:
- 00:0c:29:37:59:aa是客户端的mac地址
- 192.168.254.100:是我们要绑定的IP地址
- 表示我们绑定客户端:Ub2的IP地址成192.168.254.100
服务端和客户端刷新服务和网卡后,这时候我们打开日志,会发现绑定成功
进入客户端:Ub2的虚拟机查看IP,会发现已经变成我们绑定的IP地址
FTP:文件传输协议
网络上控制文件的双向传输,虽然说市面有很多类似ftp的工具,但是协议都是基于ftp的协议。
FTP的端口:
20:建立数据连接,并传输文件数据
21:建立连接控制,传输ftp的控制命令
FTP的数据连接的方式:
主动模式:服务端对客户端主动发起数据连接(一般不用)
被动模式:客户端对服务端发起连接(主要模式)
SFTP:加密的文件创建协议
Linux和windows的文件互传案例
首先我们下载vsftpd软件
接着对ftp的配置文件 vsftpd.conf 进行优化和修改,具体修改如下:
修改完之后,给ftp赋予最高权限,然后需要重启这个配置文件
看日志会查看是否开启正常
直接用windows连接自己的Linux主机IP地址,用自己用户登录
这时候我们可以在Linux系统zw的家目录下建一个文件,在windows系统上使用get命令可以下载到我们电脑上,就在C盘用户目录下
同样也可以把C盘用户目录下的文件传送给Linux用户的家目录下,使用put命令
这时候我们发现可以在windows上切换Linux的目录,这是不安全的,可以再配置 vsftpd.conf文件,使Windows禁锢在家目录,具体配置如下:
重启配置文件后,我们发现Windows被禁锢在家目录下,无法再查看别的目录。
黑名单和白名单案例
黑名单:在这个名单上的用户才会拒绝连接(允许所有,拒绝个别)
白名单:只有这个名单上的用户才可以连接(拒绝所有,允许个别)
在工作中,使用白名单。
我们还是配置 vsftpd.conf文件,添加三行,设置黑名单,具体配置如下
接着我们创建这个黑名单,名字和设置的一样,然后添加黑名单的用户,如下:
这时候我们发现zw无法在Windows登录,说明成功。
root是天生不能在Windows上登录的,因为root是在 etc/ftpusers名单中,属于黑名单中的黑名单,我们可以进去先把他删了,我们可以用vim etc/ftpusers进入配置文件,把他删了,再把root添加进白名单就可以操作了。