第九章 常用服务器的搭建
第九章 常用服务器的搭建
1.配置FTP服务器
1.1.FTP简介
FTP(File Transfer Protocol,文件传送协议)是TCP/IP网络上两台计算机间传送文件的协议,FTP是在TCP/IP网络和Internet上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件、上传文件、创建或改变服务器上的目录。FTP服务一般运行在20和21两个端口。端口20用于在FTP客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向FTP服务器的入口。当数据通过数据流传输时,控制流处于空闲状态。
FTP的优点如下:
- 促进文件(计算机程序或数据)的共享;
- 鼓励间接或者隐式使用远程计算机;
- 向用户屏蔽不同主机中各种文件存储系统的细节;
- 能够可靠和高效的传输数据。
FTP的缺点如下:
- 密码和文件内容都是用明文传输,可能遭受窃听;
- 因为必须开放一个随机的端口来建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流浪。这个问题通过使用被动模式的FTP基本上得到了解决;
- 服务器可能会被告连接一个第三方计算机的保留端口。
在FTP的使用中,有两个经常遇到的概念:下载(download)和上传(upload)。下载文件就是从远程主机复制文件到自己的计算机;上传文件就是从自己的计算机复制至远程主机。
1.2.安装FTP服务器
在Ubuntu下常用的FTP服务器软件是vsftpd(very secure FTP daemon)。
- 安装FTP服务器软件:
apt-get install vsftpd
安装完成后,系统会在/etc/init.d目录下创建一个vsftpd的文件脚本,并会在系统的启动过程中自动运行vsftpd守护进程。在终端下,使用命令显示/etc/init.d/vsftpd文件内容,并可以使用pidof
命令查看守护进程的PID
cat /etc/init.d/vsftpd
pidof vsftpd
- vsftpd程序的启动、停止和重新启动:
service vsftpd start # 启动vsftpd
service vsftpd stop # 停止vsftpd
service vsftpd restart # 重启vsftpd
1.3.配置FTP服务器
vsftpd的配置文件是/etc/vsftpd.conf。在Shell终端下,可以通过cat
命令查看vsftpd.conf的内容。常用的参数如下:
- anonymous_enable:是否允许匿名用户登录
- local_enable:是否允许系统用户登录
- write_enable:是否允许使用任何可以修改文件系统的FTP命令
- anon_upload_enable:是否允许匿名用户上传文件
- anon_mkdir_write_enable:是否允许匿名用户创建新目录
- idle_session_timeout:空闲连接超时时间
- data_connection_timenout:数据传输超时时间
安装vsftpd后,需要进行一些设置,才能利用FTP客户端正常使用FTP服务器,具体设置步骤如下:
- 为FTP服务器添加用户,使用以下命令添加一个myftp的用户:
sudo useradd -m myftp
2.为myftp用户设置密码:
sudo passwd myftp
3.在/home/myftp/目录中创建ftpdir目录,作为FTP的根目录:
cd /home/myftp
mkdir mtpdir
4.修改vsftpd.conf文件,配置目录信息,并添加以下内容:
local_root=/home/myftp/ftpdir
allow_writeable_chroot=YES
编辑方法是:将以上内容添加到下图位置,并删除chroot_locla_user=YES
行首的#符号:
5.启动FTP服务器:
service vsftpd start
6.在/home/myftp/ftpdit目录中新建一个文件,或者复制一个文件,作为FTP服务器的共享文件,并修改/etc/vsftpd.conf
权限:
touch /home/myftp/ftpdir/
chmod a+w /etc/vsftpd.conf
7.在Mobaxterm中使用FTP连接方式连接FTP服务器(在连接配置界面中可以看到服务器的IP地址):
输入密码后,我们就可以看到创建的共享文件了:
FTP功能介绍:
1.4.功能测试:
点击上传和下载都能成功:
如果出现553或550等报错信息,可以参考:
write_enable=YES 未修改
文件夹权限过低,chmod 777 /home/xxx
未指定文件夹,设置 local_root=/home/xxx
2.配置Samba服务器
2.1.SMB协议和Samba服务器简介
SMB(Server Message Block,服务器信息块)通信协议是微软公司和英特尔公司在1987年制定的,主要是作为微软网络的通信协议。SMB是会话层和表示层以及小部分应用层的协议。SMB使用了NetBIOs的API,该协议的增强版本是CIFS(普通Internet文件系统)。
与其他标准的TCP/IP不同,SMB是一种复杂的协议,这是因为随着Windows计算机的开发,越来越多的功能被加入该协议中,很难区分哪些概念和功能应该属于Windows本身,哪些概念和功能应该属于SMB协议。其他网络协议由于是先有协议,再实现相关的软件,因此结构比较清晰、简洁;而SMB协议一直是与微软公司的操作系统混在一起进行开发的,因此协议中包含了大量的Windows系统中的概念。
在Linux环境下,安装SMB协议的主要目的是为了和Windows系统进行文件和打印共享,它可以使Linux计算机出现在Windows计算机的网上邻居中,对于Windows用户而言,可以像使用Windows计算机一样使用Linux计算机进行文件和打印共享。
Samba是SMB协议的一种实现,早期Samba源自UNIX系统。Samba套件包括客户端、服务器等多个软件包。客户端软件包使得Linux用户也能与Windows服务器联网通信;服务器软件包使得Linux系统成为一个SMB/CIFS服务器,提供SMB服务和接口,实现Windows环境中的网络文件和打印共享。
在Ubuntu系统中,需要单独安装Samba套件,它包括以下软件包:
- Samba:服务器
- samba-common:通用实用程序
- samba-client:客户端
- samba-doc:非PDF格式文档
- samba-doc-pdf:PDF格式文档
- system-config-samba:GNOME管理工具
- swat:基于浏览器的管理工具
- sabfs:SMB文件安装与卸载工具
2.2.安装Samba服务器
apt-get update # 同步/etc/apt/sources.list和/etc/apt/sources.list.d中列出的源的索引,以获取最新的软件包
apt-get upgrade # 以最新版本更新软件包
apt-get dist-upgrade # 根据依赖关系添加或删除包
apt-get install samba samba-common
2.3.配置和访问Samba服务器
- 在/home目录下创建一个用于共享的目录,命名为sharedir,并为这个目录设置权限,执行命令为:
mkdir /home/sharedir
chmod 777 /home/sharedir
2.创建Samba服务器共享文件。在/home/sharedir下创建一个名为sharefile的文件,命令如下:
touch /home/sharedir/sharefile
3.添加一个名为sabuser的Samba账号:
useradd smbuser
smbpasswd -a smbuser
输入两次密码即可完成创建。
4.编辑配置文件:
vim /etc/samba/smb.conf# 在配置文件末尾添加如下内容:
[share]
path=/home/sharedir
availbale=yes
browseable=yes
public=yes
writable=yes# 保存退出后,输入以下命令重启生效
service smbd restart
5.在Windows系统中输入访问地址,即可实现对Ubuntu系统的访问。按Windows+R组合键在弹出的“运行”对话框中输入"\Ubuntu系统IP"地址即可看到共享文件夹share,双击进入即可看到sharefile:
3.配置DHCP服务器
3.1.DHCP简洁
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,基于UDP协议工作。DHCP主要有两个用途:为内部网络或网络服务提供商自动分配IP地址;供用户或者内部网络管理员作为对所有计算机进行集中管理的手段。
DHCP的前身是BOOTP(Bootstrap Protocol,引导程序协议),但是BOOTP非常缺乏动态性,在有限的IP资源环境中,BOOTP会造成严重的资源浪费。与BOOTP相比,DHCP透过租约的概念,有效且动态分配客户端的TCP/IP设定。而且处于兼容考虑,DHCP也完全能满足BOOTP客户端的需求。DHCP的分配要求必须至少一台DHCP服务器工作在网络中,他会监听网络的DHCP请求,并与客户端协商TCP/IP的设定环境。
DHCP的工作流程包含如下6个阶段:
- 发现阶段:及DHCP客户端虚招DHCP服务器的阶段。由于DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP discover信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络中每台安装TCP/IP的主机都会接收到这种广播,但只有DHCP服务器才会做出响应。
- 提供阶段:即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover信息的DHCP服务器会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向客户端发送一个包含出租的IP地址和其他设置的DHCP offer(提供)信息。
- 选择阶段:即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多态DHCP服务器向客户端发送DHCP offer信息,则客户端只接收第一个收到的DHCP offer信息,然后它就以广播方式回答一个DHCP request(请求)信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。这样是为了通知所有的DHCP服务器,它选择了某台服务器所提供的IP地址。
- 确认阶段:即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到客户端回答的DHCP request信息之后,它变相客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack(确认)信息,告诉DHCP客户端可以使用它所提供的IP地址。然后DHCP客户端将其TCP/IP与网卡绑定,另外,除DHCP客户端选中的服务器外,其他DHCP服务器都将收回准备提供的IP地址。
- 重新登录:以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover信息了,二十直接发送包含前一次所分配的IP地址的DHCP request信息。当DHCP服务器收到这一信息后,他会尝试让客户端继续使用原来的IP地址,并回答一个DHCP ack信息。如果此IP地址已无法再分配给原来的客户端,则服务器向客户端回答一个DHCP nack(否认)信息。当原来的DHCP客户端收到DHCP nack信息后,它就必须重新发送DHCP discover信息来请求新的IP地址。
- 更新租约:DHCP服务器向客户端出租的IP地址一般都有一个租期,期满则服务器便会收回出租的IP地址。如果DHCP客户端要演唱IP租期,则必须更新IP租约。DHCP客户端启动时以及IP租期过半时,DHCP客户端都会自动向DHCP服务器发发送更新其IP租约信息。
3.2.安装和配置DHCP服务器
安装DHCP服务器使用如下命令:
apt-get install isc-dhcp-server -y
配置DHCP服务器:
vim /etc/dhcp/dhcpd.conf
进行如下修改:
1.修改指定域名的行:
option domain-name "域名"
2.修改指定域名服务器的主机名或IP
option domain-name-servers 192.168.75.128
3.修改以下两行,指定默认租约时间:
default-lease-time 600;
max-lease-time 7200;
4.取消该行注释:
# authoritatice;
5.滚动到末尾进行如下修改,以满足用户的网络需求:
#shared-network 224-29 {subnet 192.168.75.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {option routers 192.168.75.254;
# }
# pool {
# allow members of "foo";range 192.168.75.100 192.168.75.200;
# }
# pool {
# deny members of "foo";range 192.168.75.100 192.168.75.200;
# }
#}
6.保存退出,重启DHCP服务器:
systemctl restart isc-dhcp-server.service
此时,网络内部的客户端都将从新配置的服务器获取DHCP地址,如果想查找DHCP服务器提供了哪些IP地址,可以输入以下命令进行查看:
dhcp-lease-list
相关文章:

第九章 常用服务器的搭建
第九章 常用服务器的搭建 1.配置FTP服务器 1.1.FTP简介 FTP(File Transfer Protocol,文件传送协议)是TCP/IP网络上两台计算机间传送文件的协议,FTP是在TCP/IP网络和Internet上最早使用的协议之一,它属于网络协议…...

数据结构_复杂度讲解(附带例题详解)
文章目录 前言什么是数据结构?什么是算法?一. 算法的时间复杂度和空间复杂度1.1 算法效率1.2 如何衡量一个算法好坏 二. 时间复杂度2.1 时间复杂度概念例题一例题一分析 实例一实例一分析 三. 空间复杂度实例实例问题解析 四. 常见复杂度对比五. 常见时间…...

学习MLPERF
测试基准与标准 | BenchCouncil 其中涉及AI的有如下: AI (1) AIBench Training AIBench 培训采用平衡的 AI 基准测试方法,考虑全面性、代表性、可负担性和可移植性。该方法广泛调查人工智能任务和模型,并在最大程度上涵盖了算法级、系统级…...
openEuler-20.03 LTS管理用户和用户组
openEuler-20.03 LTS 管理用户和用户组的官方文档,在这里。补充一下关于如何在 openeuler 上创建启用 sudo 新用户(无需修改服务器 /etc/sudoers 文件)的一个小知识点。 创建启用 sudo 新用户 该 sudo 命令提供了一种向普通用户授予管理员特权…...
什么是读写锁
读写锁 读写锁有3 种状态:读模式下的加锁状态、写模式下的加锁状态和不加锁状态,一次只有一个线程可以占有写模式的读写锁,但是可以有多个线程同时占有读模式的读写锁。因此可知,读写锁比互斥锁具有更高的并行性! 读…...

低代码助力企业数字化转型
在当今这个数字化快速发展的时代,企业面临的竞争越来越激烈,数字化转型已成为企业发展的必经之路。低代码平台作为一种新型的开发工具,正在逐渐成为企业数字化转型的重要助力。本文将从数字化转型背景、低代码平台介绍、低代码平台的应用、低…...

Linux 作业
一. 题目 二.作业内容 第一题: 因老师要求上传安装后远程连接XShell截图,如下: 制作yum缓存:[rootRHEL8 ~]# yum makecache 安装gcc:[rootRHEL8 ~]# yum install gcc -y 制作快照:快照,初始 s…...

【数据分享】2005-2022年全国民航机场客货吞吐量和起降架次数据
机场是一个城市对外联系的重要渠道,机场的旅客吞吐量和货物吞吐量是体现一个城市对外联系程度的重要指标。 本次我们给大家分享的是2005-2022年我国民航机场的旅客吞吐量、货邮吞吐量、起降架次数据。数据格式为Excel和Shp两种格式。数据坐标为WGS1984。原始数据来…...
清华博士面试的准备(已通过)
内修(30%) 不管如何 任何人都不能影响你的心态。因为冷静、理性,才能处理好95%以上的问题。剩下的5%我可以不拥有。不能既要、又要、还要。尊重客观规律。放下我执。 价值导向、解决问题为导向。 允许一切事情的发生,是我们最大的…...
requests爬虫详解
Requests 安装 pip install requests 示例 from fake_useragent import UserAgent import requestsdef cra1_1(): url http://xx/front/website/findAllTypes headers {User-Agent: UserAgent().chrome} resp requests.get(url, headersheaders) result resp.json()i…...
oracle的正则表达式(regular expression)
当前,正则表达式已经在很多软件中得到广泛的应用,包括Linux, Unix,HP等操作系统,PHP,C#,Java等开发环境,ORACLE则在10G中推出了自己的正则表达式。 Oracle 10g正则表达式提高了SQL灵活性&#…...
sh脚本 单独可以执行,放到crontab中不执行(定时清空redis)
1.原因: 执行环境的不同 2.解决办法: 添加环境变量 PATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH 3. 完整示例: #!/bin/shPATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:…...

mysql 半同步复制模式使用详解
目录 一、前言 二、mysql主从架构简介 2.1 mysql主从复制架构概述 2.2 为什么使用主从架构 2.2.1 提高数据可用性 2.2.2 提高数据可靠性 2.2.3 提升数据读写性能 2.3 主从架构原理 2.4 主从架构扩展 2.4.1 双机热备(AB复制) 2.4.2 级联复制 2…...

以太坊代币标准ERC20、ERC721
两个概念 ERC(Ethereum Request for Comment) 以太坊意见征集稿EIP(Ethereum Improvement Proposals)以太坊改进提案 ERC和EIP用于使得以太坊更加完善;在ERC中提出了很多标准,用的最多的标准就是它的Token标准; 有哪些标准详细见https://eips.ethereum…...

编写基于冒泡排序算法的qsort函数
目录 1.简单认识冒泡排序 2.进入正文分析如何实现函数 3.1比较两个相邻元素的大小 3.2比较两个相邻元素大小后要换函数 4.my_qsort函数: 5.总结: 1.简单认识冒泡排序 冒泡排序的步骤如下: 比较相邻的两个元素,如果第一个元素比…...

有什么推荐使用的企业上网行为管理软件?
在当今信息化社会,企业的上网行为管理越来越重要。企业上网行为软件是一种能够监控和管理企业员工上网行为的工具,它可以帮助企业更好地管理网络资源,提高工作效率,保护企业信息安全,并符合相关的法律法规。本文将深入…...

机器学习第五课--广告点击率预测项目以及特征选择的介绍
这个项目的主要的目的是通过给定的广告信息和用户信息来预测一个广告被点击与否。 如果广告有很大概率被点击就展示广告,如果概率低,就不展示。 因为如果广告没有被点击,对双方(广告主、平台)来讲都没有好处。所以预测…...
细说tcpdump的妙用
原文地址:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 tcpdump命令最初设计用于观察TCP/IP性能问题,它是一个用于截取网络分组,并输出分组内容的工具。tcpdump可以将网络中传送的数据包的报文头完全截获下来提供分析,它支持针…...

【深度学习实验】前馈神经网络(七):批量加载数据(直接加载数据→定义类封装数据)
目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 直接加载鸢尾花数据集 a. 加载数据集 b. 数据归一化 c. 洗牌操作 d. 打印数据 2. 定义类封装数据 a. __init__(构造函数:用于初始化数据集对象) b.…...

气体放电模拟装置中1Pa~101kPa范围内的真空度控制技术
摘要:针对微间隙气体放电特性分析中需要对不同真空压力进行精密控制的要求,本文提出了相应的解决方案。解决方案采用了双路调节技术,由真空计、电控针阀和真空压力控制器组成进气和排气控制回路,可实现真空度1Pa~101kPa全量程范围…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...