DHCP与FTP
DHCP
dhcp:动态主机配置的协议,应用在大型的局域网环境中
服务端和客户端
服务端:提供IP地址,某种特定功能的提供者
客户端:请求IP地址,请求对应的功能的使用者
服务端的端口号:67
客户端的端口号:68
DHCP的作用
dhcp的作用:
- 集中地址管理(地址池,可用IP地址的范围)
- 自动分配客户端的IP地址,gateway(网关),dns信息等等
dhcp的优点
dhcp的优点:
- 降低配置和部署设备的时间
- 降低了配置发生错误的可能
- 集中化管理ip地址的分配
- 提高了IP的利用率
dhcp的工作原理
dhcp的工作原理:服务端 :提供服务 客户端 :请求服务
1、客户端初始化时,不知道客户端是谁,整个网络中发送广播(DSICOVER报文)
2、服务端向客户端响应,发送offer报文,
3、客户端向服务端发送服务请求(request报文),请求报文只会发给第一个响应的服务端
4、服务端收到客户端的请求,从地址池中选择一个未被占用的IP地址以及租期信息,发送给客户端,发送ack报文
5、客户端收到服务端发送来的ack报文后,使用服务端提供的IP地址等服务
租期信息:默认情况下,服务端提供的IP地址使用使用期限模式7200秒,到期之后要重新向客户请求新的IP地址(IP地址可能会变化)
客户端下线之后:
1、客户端进行重新登录,发送一个包含之前dhcp服务端分配的ip信息的renew Request的报文
2、服务端收到请求后,尝试让客户端继续使用该地址,如果地址不可用,才会分配一个新的,回复客户端ack报文
租约到期:
租约到期之后,服务端会把IP地址收回,客户端如果想继续使用该IP地址,必须要更新租约
更新的方式:
祖约时间到一半,客户端发送renrw报文来续租期,服务端收到请求后,尝试让客户端继续使用该地址,如果地址不可用,租约到期之后才会分配一个新的,回复客户端ack报文
dhcp配置过程
Ubuntu系统:
服务端
vim /etc/dhcp/dhcpd.conf #进入dhcp配置文件
subnet 192.168.42.0 netmask 255.255.255.0 {
子网 子网掩码
range 192.168.42.110 192.168.42.139;
范围
option routers 192.168.42.2;
网关
}
#根据mac地址指定IP地址
host hostname {
hardware ethernet 00:0c:29:53:d1:cc;
fixed-address 192.168。42.139;
}
:wq #保存退出
systemctl restart isc-dhcp-server #重启dhcp
客户端
vim /etc/netplan/01-01-network-manager-all.yaml #配置网卡
# Let NetworkManager manage all devices on this system
network:
ethernets:
ens33:
dhcp4: true
gateway4: 192.168.42.2
nameservers:
addresses: [8.8.8.8,8.8.4.4]
:wq #保存退出
netplan apply #重启网卡
ifconfig 显示网络设备详细信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.139 netmask 255.255.255.0 broadcast 192.168.42.255
inet6 fe80::20c:29ff:fe53:d1cc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:53:d1:cc txqueuelen 1000 (以太网)
RX packets 484 bytes 101818 (101.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 433 bytes 72917 (72.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 163 bytes 13745 (13.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 163 bytes 13745 (13.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
CentOS系统:
服务端
cp dhcpd.conf.example /etc/dhcp/ #把dhcp.conf.example文件复制/etc/dhcp目录下
cd /etc/dhcp #切换到/etc/dhcp目录下
cp dhcpd.conf.example dhcpd.conf 把dhcp.conf.example文件复制并且改名dhcpd.conf
vim dhcpd.conf #进入dhcp,conf配置文件
vim /etc/dhcp/dhcpd.conf #进入dhcp配置文件
subnet 192.168.42.0 netmask 255.255.255.0 {
子网 子网掩码
range 192.168.42.110 192.168.42.139;
范围
option routers 192.168.42.2;
网关
}
:wq #保存退出
systemctl restart dhcpd # 重启dhcp
客户端
vim /etc/netplan/01-01-network-manager-all.yaml #配置网卡
# Let NetworkManager manage all devices on this system
network:
ethernets:
ens33:
dhcp4: true
gateway4: 192.168.42.2
nameservers:
addresses: [8.8.8.8,8.8.4.4]
:wq #保存退出
netplan apply #重启网卡
ifconfig 显示网络设备详细信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.111 netmask 255.255.255.0 broadcast 192.168.42.255
inet6 fe80::20c:29ff:fe53:d1cc prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:53:d1:cc txqueuelen 1000 (以太网)
RX packets 484 bytes 101818 (101.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 433 bytes 72917 (72.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 163 bytes 13745 (13.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 163 bytes 13745 (13.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
FTP
ftp:文件传输协议
文件传输协议:网络上控制文件的双向传输
端口号
ftp的端口号:
- 20:建立数据连接,并传输文件数据
- 21:建立连接控制,传输ftp的控制命令
连接方式
ftp的连接方式:apt
主动模式:服务端对客户端主动发起数据连接
被动模式:客户端对服务端发起连接
apt 是ssh这个服务自带的ftp程序
sftp:机密文件创建协议
vsftpd:基于开源应用的ftp协议
vsftpd配置文件
vim /etc/vsftpd.conf
进入vsftpd配置文件
chmod -R 777 /srv/ftp #修改ftp的权限
systemctl restart vsftpd 重启vsftpd
在windows上进入命令行
黑名单和白名单
黑名单:在这个名单上的用户才会拒绝连接 允许所有,拒绝个别
白名单:只有这个名单上的用户才可以连接 拒绝所有,允许个别
在工作中,使用白名单
vim /etc/vsftpd。conf #进入vsftpd配置文件
#在配置文件的第118行左右
userlist_file=/etc/vsftpd.userlist
#设置用户名单
userlist_deny=yes
#拒绝这个用户列表上的用户,开启的是黑名单,把yes改为no就是白名单
userlist_enable=yes
#开启用户列表的使用
:wq #保存退出
systemctl restart vsftpd
vim /etc/vsftp.userlist #创建用户名单
输入用户名