一、DHCP
(1).DHCP工作原理
DHCP全称是(Dynamic Host Configuration Protocol)动态主机配置协议。
①发现阶段(DHCP Discover):当一个设备(如计算机或手机)首次加入网络时,它会发送一个DHCP Discover消息,以寻找可用的DHCP服务器。这个消息包含一个空的或临时的IP地址 ,以及其他选项,以指示它需要DHCP服务。
②提供阶段(DHCP Offer ):DHCP服务器接收到客户端的Discover消息后,会回应一个DHCP Offer消息,其中包含可用的IP地址、子网掩码、网关、DNS服务器等网络配置信息。如果有多个DHCP服务器可用,客户端可以接收多个Offer,但通常只会选择一个。
③请求阶段(DHCP Request):客户端在收到Offer后,选择其中一个DHCP服务器提供的配置,并向该服务器发送DHCP Request消息,以请求分配该配置。
④确认阶段(DHCP Acknowledgment):DHCP服务器收到客户端的Request后,确认分配给客户端的IP地址和其他配置信息,并通过DHCP Acknowledgment消息通知客户端。同时,其他DHCP服务器将停止向该客户端提供配置。
⑤配置生效:客户端接收到DHCP Acknowledgment后,会配置自己的网络接口,使用分配的IP地址和其他配置信息。此时,客户端可以开始正常的网络通信。
⑥租约和续约:DHCP分配的IP地址通常有一个租约期限,客户端在租约到期前需要续约。在租约到期前,客户端可以选择继续使用分配的IP地址,或者请求新的分配。
⑦释放:当设备不再需要网络配置时,它可以向DHCP服务器发送一个Release消息,以释放分配的IP地址,使其可供其他设备使用。
(2)DHCP服务部署
1.安装DHCP服务组件
2.启动DHCP进程
3.配置/etc/dhcp.conf配置文件
cat >> /etc/dhcpd.conf <<EOF
定义:全局性参数
定义:客户端主机名的DNS域名后缀
option domain-name “test.com”;
定义:DNS服务器IP地址
option domain-name-servers 10.0.0.1, 114.114.114.114;
定义:默认租约时限
default-lease-time 43200;
定义:最大租约时限
max-lease-time 86400;
定义:DHCP服务的日志设施
log-facility local7;
定义:subnet 本地作用域(10.0.0.0/24),# 注意:必须匹配本机网卡的IP子网
subnet 10.0.0.0 netmask 255.255.255.0 {
定义:可分配的IP地址范围
range dynamic-bootp 10.0.0.11 10.0.0.250;
定义:网关IP地址
option routers 10.0.0.1;
定义:子网广播地址
option broadcast-address 10.0.0.255;
}
EOF
4.ip地址保留方法
第一步,在ip地址里将地址空出
第二步,定义:fixed 固定IP地址,使之与笔记本网卡MAC地址永久绑定在一起
二、samba
(1)安装部署
yum install samba -y
smb.service:为客户端提供SMB/CIFS文件共享服务
nmb.service:为客户端提供NetBIOS名称解析服务
(2)配置文件
vim /etc/samba/smb.conf
修改:[global]全局参数
[global]
添加:以下选项
map to guest = Bad User含义如下:
如果登录用户名 存在,但是用户密码不正确,则视为:登录失败
如果登录用户名不存在,则直接视为:由guest account选项定义的nobody账户
map to guest = Bad User
(匿名)共享发布:/public目录,共享名为[pub],只读共享权限
[pub]
设置:共享名的注释信息
comment = My public Share
允许:网络邻居浏览
browseable = Yes
设置:只读共享权限
read only = Yes
允许:权限继承
inherit acls = Yes
设置:共享目录路径
path = /public
允许:匿名访问
guest ok = Yes
设置:匿名账户为nobody账户
guest account = nobody
(3)验证方式
①无验证:匿名访问
第一步, 创建:用于匿名共享的目录,并设置本地权限
mkdir -p /public
chmod 750 /public # 拒绝 :other其他人的任何权限
setfacl -m u:nobody:rwx /public # 仅允许:nobody匿名用户的读、写、执行权限
第二步, 编辑:smb.conf配置文件
vim /etc/samba/smb.conf
修改:[global]全局参数
[global]
添加:以下选项
map to guest = Bad User含义如下:
如果登录用户名 存在,但是用户密码不正确,则视为:登录失败
如果登录用户名不存在,则直接视为:由guest account选项定义的nobody账户
map to guest = Bad User
(匿名)共享发布:/public目录,共享名为[pub],只读共享权限
[pub]
设置:共享名的注释信息
comment = My public Share
允许:网络邻居浏览
browseable = Yes
设置:只读共享权限
read only = Yes
允许:权限继承
inherit acls = Yes
设置:共享目录路径
path = /public
允许:匿名访问
guest ok = Yes
设置:匿名账户为nobody账户
guest account = nobody
②本地验证:本地用户
第一步, 创建:本地用户账户,并设置Samba访问密码
useradd u1 -s /usr/sbin/nologin
创建:不可login登录的u1用户
useradd u2 -s /usr/sbin/nologin
创建:不可login登录的u2用户
smbpasswd -x root; (echo -e ‘123456\n123456’ | smbpasswd -a root)
smbpasswd -x u1; (echo -e ‘123456\n123456’ | smbpasswd -a u1)
smbpasswd -x u2; (echo -e ‘123456\n123456’ | smbpasswd -a u2)
pdbedit -Lw
查看:Samba用户及密码的存储信息
第二步, 创建:用于本地验证的目录,并设置本地权限
mkdir -p /company
chmod 750 /company # 拒绝 :other其他人的任何权限
setfacl -m u:u1:rwx /company # 仅允许:u1用户的读、写、执行权限
setfacl -m u:u2:r-x /company # 仅允许:u2用户的读、执行权限
第三步,编辑:smb.conf配置文件
vim /etc/samba/smb.conf
修改:[global]全局参数
[global]
确保以下配置选项值
security = user # 这是Samba最重要的设置之一,设置:设置验证方式,user表示samba用户本地验证
passdb backend = tdbsam # 设置:samba的用户口令验证的后台为tdbsam数据库文件(本地验证)共享发布:/company目
录,共享名为[company],读写共享权限
[company]
comment = My company Share
允许:网络邻居浏览
browseable = Yes
设置:读写共享权限
read only = No
允许:权限继承
inherit acls = Yes
设置:共享目录路径
path = /company
禁止:匿名访问
guest ok = No
三、FTP
(1)FTP介绍
主要用于互联网中文件的双向传输(上传/下载)、文件共享
l 跨平台 Linux、Windows
l FTP 是 C/S 架构,拥有一个客户端和服务端,使用 TCP 协议作为底层传输协议, 提供可靠的数据传输
l FTP 的默认端口 21 号(命令端口)20 号(数据端口,主动模式下)默认被动模式
l FTP 程序(软件)vsftpd
(2)FTP的两种模式
在 FTP 服务中,一共有两种模式(主动模式+被动模式)
说明:如果是 FTP 服务器主动连接客户端就是主动模式,如果是客户端主动连接 FTP服务器就是被动模式
①主动模式
原理:
第一步,客户端打开大于 1023 的随机命令端口和大于 1023 的随机数据端口向服务的的 21 号端口发起请求
第二步,服务端的 21 号命令端口响应客户端的随机命令端口
第三步,服务端的 20 号端口主动请求连接客户端的随机数据端口
第四步,客户端的随机数据端口进行确认
②被动模式
原理:
第一步,客户端打开大于 1023 的随机命令端口和大于 1023 的随机数据端口向服务的的 21 号端口发起请求
第二步,服务端的 21 号命令端口响应客户端的随机命令端口
第三步,客户端主动连接服务端打开的大于 1023 的随机数据端口
第四步,服务端进行确认
提示: FTP 默认使用的就是被动模式
(3)搭建FTP服务
①安装
yum -y install vsftpd
②启动vsftp并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd
③测试
Ftp 默认的上传下载文件目录在/var/ftp/pub
(4)vsftp配置文件
/etc/vsftpd 配置文件的目录
/etc/vsftpd/ftpusers 用户列表文件,黑名单
/etc/vsftpd/user_list 用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf 配置文件
/usr/lib/systemd/system/vsftpd.service 启动脚本
/usr/sbin/vsftpd 程序文件
/var/ftp 匿名用户的默认数据根目录(根目录权限最大 755)
/var/ftp/pub 匿名用户登录的数据目录
配置文件参数:
anonymous_enable=YES 支持匿名用户访问
local_enable=YES 支持非匿名用户,普通账号登录,默认进入用户的家目录
write_enable=YES 写总开关
local_umask=022 反掩码
dirmessage_enable=YES 启动消息功能
xferlog_enable=YES 开启或启用 xferlog 日志文件
connect_from_port_20=YES 是否支持主动模式
xferlog_std_format=YES xferlog 日志格式
listen=NO ftp 独立模式下的监听
listen_ipv6=YES
pam_service_name=vsftpd 指定认证文件
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 限速操作
可以通过 man 5 vsftpd.conf 查看 vsftpd.conf 中配置文件其它参数,常用参数如下:
anonymous_enable 是否允许匿名用户访问 FTP
anon_mkdir_write_enable 是否允许匿名用户创建目录
anon_other_write_enable 是否允许匿名用户修改删除文件
anon_upload_enable 是否允许匿名用户上传文件
anon_root 设置匿名用户的根目录
write_enable 是否允许写操作
local_root 设置本地用户的根目录
chroot_list_file 指定限制用户的文件
chroot_local_user 是否限制用户在根目录下活动
(5)访问方式
vsftp支持匿名用访问与本地用户访问两种方式。
①配置匿名用户访问
Vsftpd 默认情况下是开启匿名用户访问,并且只允许匿名用户查看根目录下的文件和下载及切换根目录,不允许其它操作
anonymous_enable 是否允许匿名用户访问 FTP
anon_mkdir_write_enable 是否允许匿名用户创建目录
anon_other_write_enable 是否允许匿名用户修改删除文件
anon_upload_enable 是否允许匿名用户上传文件
anon_root 设置匿名用户的根目录
注意:设置了普通用户的根目录后,根目录权限不能超过 755,如果超过,访问时就会提示输入用户名和密码,无法登录。只能在根目录(/data/anon)下创建一个共享目录并给 777权限进行文件共享。
②配置本地用户访问
第一步,在 ftp 服务器上创建一个账号
第二步,设置本地共享目录权限
(6)客户端工具LFTP的使用
①上传
基本用法: put 本地文件
②下载
基本用法: get 远程文件名
默下载到当前路径下
③批量上传
只针对文件目录不行上传
基本用法: mput 本地文件
④批量下载
只争对文件,目录不可下载
基本用法: mget 远程文件名
⑤上传目录
基本用法: mirror -R
⑥本地目录
基本用法: mirror 远程目录
⑦ 删除文件
基本用法: rm [选项] 远程文件
四、RSYNC
(1)什么是rsync
rsync(remote sync)是一个功能强大的文件同步和备份工具,它支持本地和远程文件
复制,特别适用于需要增量备份或高效传输大型目录的场景。配置文件在/etc/rsyncd.conf。
数据同步过程
sync 数据同步:强制将修改过的数据块写入磁盘,对实时性要求较高
asyn 数据异步:将数据先放到缓冲区,再周期性的去同步到磁盘,适合大批量数据同步
(2)rsync特点
● 增量传输:rsync 通过比较源文件和目标文件的差异,只传输有变动的部分,从而节省带宽和时间。
● 网络支持:rsync 可以使用 SSH 或其他协议安全地在不同的计算机之间复制文件,非
常适用于远程备份和服务器之间的文件同步。
● 广泛的选项:rsync 提供了广泛的选项来定制同步过程,包括控制文件权限、所有权、
时间戳,处理符号链接,排除特定文件或目录等。
● 安全性:rsync 支持使用 scp、ssh 等方式来传输文件,确保数据传输的安全性。
● 匿名传输:支持匿名传输,方便进行网站镜像等操作。
(3)rsync的使用
基本语法 :
本地文件同步
Local: rsync [OPTION…] SRC… [DEST]
远程文件同步
Access via remote shell: (通过远程 shell 访问)
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST
Access via rsync daemon: (通过 rsync 后台进程访问)
Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST
OPTION 选项说明
-v 详细模式输出
-a 归档模式,递归的方式传输文件,并保持文件的属性
-c 打开校验开关,强制对文件传输进行校验。
-r 递归拷贝目录
-l 保留软链接
-p 保留原有权限
-t 保留原有的时间
-g 保留组权限
-o 保留属组权限
-D 表示支持 b,c,s 等类型的文件
-R 保留相对路径
-H 保留硬链接
-A 保留 ACL 策略
-e 保留要执行的远程 shell 命令
-E 保留可执行权限
-X 保留扩展属性信息 a 属性
五、SSH
(1)SSH简介
ssh是一种用于安全访问远程服务器的协议,它是一种远程管理工具。它可以通过加密
的方式来管理连接服务,使登录服务器更加的安全!
(2)加密算法
①对称加密算法
发送方使用密码将明文数据加密成密文,然后发送出去
接收方收到密文后,使用同一个密钥将密文解密成明文进行读取
②非对称加密算法
发送方使用接收方发送过来的公钥将明文数据加密成密文,然后发送出去
接收方收到密文后,使用自己本地留存的私钥将密文解密成明文进行读取
对称加密算法与非对称加密算法区别:
对称加密:
①使用同一个密钥进行加密和解密,密钥容易泄露
②加密速度快,效率高,数据传输速度快,安全性较低
非对称加密:
①使用不同的密钥(公钥和私钥)进行加密和解密
②加密速度远远慢于对称加密,数据传输速度慢,安全性较高
(3)SSH原理
①SSH基于用户名密码验证
Ⅰ SSH 客户端向 SSH 服务端发起一个登录请求
Ⅱ SSH 服务端将自己的公钥发送给 SSH 客户端
Ⅲ SSH 客户端使用服务端发过来的公钥将自己输入的密码加密并且发送给 SSH 服务端
Ⅳ SSH 服务端收到 SSH 客户端发过来的加密密码后使用本地留存的私钥进行解密
Ⅴ SSH 服务端将解密出来的密码和/etc/shadow 文件里的用户密码对比认证
Ⅵ SSH 服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令
②SSH基于密钥对验证
Ⅰ 客户端 A 生成秘钥对,并将公钥发送到服务端 B,服务端记录公钥匙,并保存到本地的authorized_keys 文件中
Ⅱ 客户端 A 发送登录请求,服务端比对客户端的公钥匙与自己的 authorized_keys 文件中的是否一致,如果一致则生成随机字符串,并且通过公钥匙加密成密文
Ⅲ 服务端 B 通过公钥加密的密文生成会话窗口,并发送密文到客户端
Ⅳ 客户端 A 通过自己的私钥解密,解密后的字符串发送给服务端
Ⅴ 服务端 B 验证解密后的字符串是否与自己加密前的一致
Ⅶ 如果一致则返回客户端的登录结果,完成登录
ssh 远程登录两种认证方式
基于用户名密码认证
① 用户身份认证(认证用户名和密码)使用非对称加密算法(安全)
② 数据传输使用对称加密算法(快)
③ 要知道访问服务器用户的密码
基于密钥对的认证(免密码)
① 用户身份认证(比对用户公钥)使用非对称加密算法(安全)
② 数据传输使用对称加密算法(快)
③ 事先要将用户的公钥远程拷贝到服务器端
(4)SSH配置文件
SSH 服务端的配置文件在/etc/ssh/sshd_config
配置文件主要参数解释
PasswordAuthentication 是否允许密码验证(yes 允许、no 不允许)
Port ssh 连接端口 22(默认)
AuthorizedKeysFile 认证 key 文件,用户家目录下.ssh/authorized_keys
UseDNS 是否开启 SSH 登录时的 DNS 解析(默认 yes)
(5)基于用户名密码验证
基于用户密码的认证
用法: # ssh [选项] user@ip
常用选项:
-p 指定端口
(6)SCP
① 上传
基本语法:
#scp [选项] 本地文件路径 远程用户名@远程服务器的 IP 地址:远程文件存储路径
选项:
-r:递归上传,主要针对的是目录
-P:更改了 SSH 服务的默认端口需要使用-P 选项
② 下载
基本语法:
#scp [选项] 远程用户名@远程服务器的 IP 地址:远程文件存储路径 本地文件路径
-r:递归下载,主要针对的是目录
-P:更改了 SSH 服务的默认端口需要使用-P 选项
(7)SSH免密登录
第一步:在客户端主机针对某个账号生成公钥和私钥
ssh-keygen
第二步:使用某些方法把公钥发送到服务端,服务端将该公钥追加到 authorized_keys 文件中
ssh-copy-id 用户名@目标IP
(8)双机互信
第一步:两台机器都生成自己的公私钥
第二步:两台机器将自己的公钥传给对方
第三步:测试
**六、**vmware 中的三种网络
vmware 的三种网络分别为 桥接网络、NAT 网络、仅主机网络,并在 windows 对应的三块网卡
桥接网络:
使用 VMnet0 虚拟交换机,此时虚拟机相当于网络上的一台独立计算机,与主机一样,拥有一个独立的 IP 地址
NAT 网络:
使用 VMnet8 虚拟交换机,此时虚拟机可以通过主机单项访问网络上的其他工作站,其他工作站不能访问虚拟机
仅主机络网:
使用 VMnet1 虚拟交换机,此时虚拟机只能与虚拟机、主机互连与网上的其他工作站不能访问。
**(1)**vmnet0 桥接模式
VMnet0 桥接模式:和物理真机连接在同一交换机,相当于系统与 windows 处于同一
个网络环境中
● 与物理真机同网段
● 桥接模式可以连接网络
(2) VMnet1 仅主机模式
VMnet1 仅主机模式,封闭的网络环境,仅能与 windows 物理真机 进行连接。无法
连接外网
● 与物理真机就不在同一个网段,拥有独立的 IP
● 仅可以进行内部连接
● 如果拥有一个虚拟的路由器,也能访问外网环境
(3) VMnet8 NAT 模式
VMnet8 NAT 模式:相当于一个独立的网络环境,与物理真机不处于同一个网段,但
是其可以通过虚拟网络路由器连接外网
关联文档
- ../../network/网络 — 网络协议
- Linux 基础 — Linux 基础