当前位置: 首页 > news >正文

运维开发宝典021-Linux文件服务器VSftp和NFS

大家好,我是云计算磊哥,从业20年的IT老鸟。运维培训15年,总结了一套从入门到精通的全运维开发宝典手册。准备用300天时间写一套博文,手把手从安装软件讲起,从行业到产品,从过去到未来,从理论到操作,从视频到文档工具,一站式。从零基础入门到20k运维开发工程师岗位诸多就业问题。多方位全方面的给你讲清楚云计算这个行业该如何做。关注我。后续更精彩。

本文讲了Vsftpd 文件传输服务的搭建、配置、客户端使用及 FTP 模式区别,以及NFS 网络文件系统在 Linux 间实现目录共享、多 Web 节点统一存储的配置与实战。

Vsftpd_NFS

FTP Server

1.1 简介

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。此外,本文还介绍了FTP基本原理,以及FTP用户管理方面的基础知识。

1.2 基础

FTP: 文件传输协议

软件包: vsftpd

FTP端口: 控制端口 command 21/tcp

数据端口 data 20/tcp (主动模式)

配置文件: /etc/vsftpd/vsftpd.conf

主目录:“/var/ftp/”FTP程序分享一个本机目录。

1.3 FTP Server 默认配置
==centos7==# cat /etc/redhat-releaseCentOS Linux release7.2.1511(Core)# yum -y install vsftpd# touch /var/ftp/abc.txt# systemctl start vsftpd# systemctl enable vsftpd默认firewalld/SELinux已关闭,如果未关闭:# firewall-cmd --permanent --add-service=ftp# firewall-cmd --reload# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config# setenforce 0

1.4 FTP Clinet:

LinuxFTP客户端程序1:lftp

lftp[root@localhost ~]# yum -y install lftp[root@localhost ~]# lftp 服务器的IP地址lftp zhufo.top:~>lsdrwxr-xr-x2004096Mar312016pub -rw-r--r--1000Nov2203:53 abc.txt lftp zhufo.top:/>get abc.txt lftp zhufo.top:/>mirror pub

LinuxFTP客户端程序2:wget

[root@localhost ~]# wget --help |less[root@localhost ~]# wget ftp://172.16.8.100/kvm-manager-centos[root@localhost ~]# wget ftp://172.16.8.100/kvm-manager-centos -P /tmp/[root@localhost ~]# wget ftp://172.16.8.100/kvm-manager-centos -O /tmp/a.sh[root@localhost ~]# wget http://nginx.org/download/nginx-1.10.2.tar.gz[root@localhost ~]# wget -m ftp://zhufo.top/soft

firefox,IE

firefox,IE1打开浏览器2输入“ftp://服务器IP地址" 默认使用匿名用户 ftp访问,HOME为/var/ftp,默认仅能下载文件 系统用户: alice,HOME/home/alice,默认可下载及上传 lftp alice@192.168.122.152
1.4 常见基本配置 [了解]
1. 启动和禁用匿名账户 # vim /etc/vsftpd/vsftpd.conf anonymous_enable=YES //是否允许匿名用户登录ftp 2.启用和禁用本地用户 # vim /etc/vsftpd/vsftpd.conf local_enable=YES //是否允许本地用户登录alice 3.启用和禁用上传功能 # vim /etc/vsftpd/vsftpd.conf write_enable=YES //是否允许写(全局) 4.设置新建文件默认权限 # vim /etc/vsftpd/vsftpd.conf local_umask=022 //控制本地用户上传文件的默认权限,umask表示666要减掉的权限,默认没有执行。 anon_umask=077 //控制匿名用户上传文件的默认权限 (注意另外6条配置) 5.锁定本地用户主目录 # vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES #chmod -w /home/alice //用户对家目录要减掉W权限。 6.自定义用户主目录 # vim /etc/vsftpd/vsftpd.conf local_root=/ftproot //指定本地用户访问的root目录 anon_root=/anonroot //指定匿名用户访问的root目录 7.设置下载速度 # vim /etc/vsftpd/vsftpd.conf anon_max_rate=500000 //匿名用户限速 local_max_rate=80000 //本地用户限速 max_clients=500 //ftp最大连接数 max_per_ip=2 //单个IP最大连接数,线程数 8.降低本地FTP用户权限系统用户,默认既可以通过控制台登录系统。又可以通过网络(ftp)访问服务器。 为了安全起见,可以降低ftp用户权限。 vim /etc/passwd alice:x:1000:1000::/home/alice:/bin/bash 改为 alice:x:1000:1000::/home/alice:/sbin/nologin
1.5 案例

目标:通过FTP搭建YUM源服务器

服务器

挂载centos镜像[root@localhost ~]#yum install vsftpd[root@localhost ~]#systemctl start vsftpd[root@localhost ~]#systemctl stop firewalld[root@localhost ~]# mkdir /var/ftp/centos7[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7[root@localhost ~]# df -hT/dev/sr0 iso96604.3G4.3G0100% /var/ftp/centos7[root@localhost ~]# vim /etc/vsftpd/vsftpd.confanon_root=/var/ftp/

客户机

[root@client ~]# mv /etc/yum.repos.d/* /tmp //备份默认源[root@client ~]# vim /etc/yum.repos.d/centos7.repo //指向基础源[my-centos7]name=my-centos7baseurl=ftp://x.x.x.x/centos7u2gpgcheck=0[root@client ~]# yum repolist //看到YUM即可。
1.6 扩展

FTP两种模式的区别

(1)PORT(主动)模式

所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口),紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。然后服务器会从它自己的数据端口(20)“主动”连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

(2)PASV(被动)模式
所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。(注意此模式下的FTP服务器不需要开启tcp 20端口了)
两种模式的比较:
(1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。
(2)从网络安全的角度来看的话似乎ftp PORT模式更安全,而ftp PASV更不安全,那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢?其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案。

因此:如果只是简单的为了文件共享,完全可以禁用PASV模式,解除开放大量端口的威胁,同时也为防火墙的设置带来便利。 不幸的是,FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器,因此,必须要使vsftpd在开启了防火墙的情况下,也能够支持PASV模式进行数据访问。

NFS

1.1 名词解释

NFS:Network File System 网络文件系统,Linux/Unix系统之间共享文件的一种协议
NFS 的客户端主要为Linux
支持多节点同时挂载以及并发写入

1.2 作用

提供文件共享服务
为集群中的 Web Server 配置后端存储

1.3 案例

环境

nas192.168.122.241 web1192.168.122.150 web2192.168.122.8 web3192.168.122.194 nas web1 web2 web3# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config# setenforce 0centos7# systemctl stop firewalld# systemctl disable firewalld

nas(存储端)

[root@nas ~]# yum -y install nfs-utils[root@nas ~]# mkdir /webdata //存储网站代码[root@nas ~]# echo "nfs test..." > /webdata/index.html[root@nas ~]# vim /etc/exports/webdata192.168.122.0/24(rw)[root@nas ~]# systemctl start nfs-server[root@nas ~]# systemctl enable nfs-server[root@nas ~]# exportfs -v/webdata192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

注释

[root@nas ~]# vim /etc/exports/webdata192.168.122.0/24(rw,sync,no_root_squash)//不压制root(当client端使用root挂载时,也有root权限)//默认是压制root,及时你用root登录,也没有root权限,因为被压制,为了安全。

web1 web2 web3 客户端

二、web1 web2 web3 客户端 以web1为例:[root@web1 ~]# yum -y install nfs-utils httpd[root@web1 ~]# systemctl start httpd[root@web1 ~]# systemctl enable httpd1. 查看存储端共享[可选][root@web1 ~]# showmount -e 192.168.122.241 // 查询NFS服务器可用目录Export listfor192.168.122.241: /webdata192.168.122.0/242. 手动挂载[可选][root@web1 ~]# mount -t nfs 192.168.122.241:/webdata /var/www/html/[root@web1 ~]# umount /var/www/html/3. 自动挂载到网站主目录[root@web1 ~]# vim /etc/fstab192.168.122.241:/webdata /var/www/html nfs defaults00[root@web1 ~]# mount -a4. 查看挂载[root@web1 ~]# df192.168.122.152:/webdata7923136692416682156810% /var/www/html[root@web1 ~]# ls /var/www/html/index.html5. web2 web3同上

注释

如果希望web能修改NFS中的内容,请取消压制root,重启nas服务,重新挂载。

测试网站访问

# firefox 192.168.122.85# firefox 192.168.122.111# firefox 192.168.122.166

配套视频https://edu.csdn.net/course/detail/40861

http://www.jsqmd.com/news/936228/

相关文章:

  • 2026 无锡 GEO 优化服务商深访测评:制造业 AI 获客怎么选更稳 - 小艾信息发布
  • 别浪费了!沃尔玛购物卡回收居然这么简单! - 团团收购物卡回收
  • 猫抓Cat-Catch:浏览器资源嗅探扩展的7大核心技术深度解析
  • CentOS 7服务器时间总飘移?可能是防火墙和时区没设对!chrony配置避坑指南
  • 基于Arduino与Qwiic的环境监测机器人:从传感器融合到阈值控制
  • 2026年广东广州5大沉香手串供应链/生产厂家推荐!2026最新排名出炉,白石沉香家族优势突出 - 十大品牌榜
  • 电子入门:从串联电路到LED驱动,Tinkercad仿真与实物制作全解析
  • 如何快速配置第七史诗自动化脚本工具:面向新手的完整指南
  • 6月最新开发商发布|南京江宁映秦淮售楼电话 - 资讯快报
  • 2026 福州本地黄金回收排名盘点,上门 + 到店双测优选头部老店 - 奢侈品回收测评
  • 别再只盯着OFDM了!用Python手把手复现SC-FDE系统,实测抗多径效果
  • 测试左移实战:用Testsigma让产品经理也能参与编写自动化用例
  • E7Helper终极指南:5个简单步骤快速掌握第七史诗自动化脚本
  • 终极Windows内存优化指南:用Mem Reduct轻松释放系统资源
  • 树莓派物联网实践:用Python与LED打造可视化天气监测站
  • 大连名表回收哪家行情好?五家本地机构高价靠谱测评 - 奢侈品回收测评
  • 别再为标定误差头疼了!手把手教你用VisionMaster的‘放射变换’模块校正不共轴旋转平移
  • 2026年德州企业短视频运营与GEO获客多维对比测评:从账号搭建到线索转化的全链路方案 - 企业名录优选推荐
  • 用Scratch与Makey Makey打造西班牙语音节互动游戏:STEAM教育实践
  • 保姆级教程:用STM32H743+TJA1042T实现FDCAN 5M高速通信(CubeMX+HAL库配置详解)
  • 从零打造智能避障小车:Arduino+超声波传感器全流程实践
  • Codesys库开发进阶:像官方库一样制作带图片、表格和代码示例的专业帮助文档(含避坑指南)
  • 基于TL074运放设计PAM8610功放前级音调控制电路
  • 终极Windows风扇控制指南:用Fan Control彻底解决电脑散热与噪音问题
  • 趁行情好把手表变现,沈阳和平区这5家回收门店本月优选 - 奢侈品回收测评
  • OBS多平台直播终极解决方案:obs-multi-rtmp插件全面指南
  • 温州硅砂蓄水池供应商排行 实测资质与服务对比 - 奔跑123
  • 英雄联盟客户端终极自动化工具:5分钟快速上手LeagueAkari完整教程
  • 从会议室到深夜床头,一块圆偏振光AR膜如何同时满足iPhone17 Pro的强光与暗光需求——观复盾场景体验
  • 长沙包包回收:这 5 款包再旧也能卖高价 - 奢侈品回收测评