精读笔记 · 第16章 文件服务器(FTP / NFS / SSH)
大约 4 分钟
精读笔记 · 第16章 文件服务器(FTP / NFS / SSH)
精读整理自 RHCE9 随堂讲义(原文字版 12 页)|同名视频约 12 节(第02套) 关联知识文件:
分章笔记/01-Linux/02-06-服务器部署(RHCE9第16-24章)、02-05-服务管理与安全
一、FTP 基础(vsftpd)
- FTP(File Transfer Protocol):TCP/IP 应用层协议,提供文件共享;互联网资源下载的主流之一。
- 端口:控制端口 21/tcp(命令通道)、数据端口 20/tcp(数据通道)。
- 默认发布目录:
/var/ftp/;匿名用户默认只能下载不能上传。
二、FTP 部署(默认配置)
- 装包:
yum -y install vsftpd(先备好 YUM 源)。 - 放共享文件:
touch /var/ftp/abc.txt。 - 启动:
systemctl start vsftpd && systemctl enable vsftpd,验证netstat -anpt。 - 放行:
systemctl stop firewalld && disable;SELinuxsetenforce 0+ 永久改/etc/selinux/config为 disabled。
- 客户端访问:浏览器输
ftp://IP;Linux 客户端lftp IP(ls查看、get 文件下载、mirror 目录下载整目录);wget ftp://IP/abc.txt,-O指定保存路径。
三、开放匿名上传(配置文件 /etc/vsftpd/vsftpd.conf,先备份)
anonymous_enable=YES # 允许匿名登录
anon_upload_enable=YES # 允许上传文件
anon_mkdir_write_enable=YES # 允许创建目录
anon_other_write_enable=YES # 允许删除/改名等其它写操作(一般不推荐开)
anon_umask=022 # 上传默认权限掩码
anon_root=/var/ftp # 匿名主目录
anon_max_rate=0 # 限速 0=不限- 上传目录:
mkdir /var/ftp/upload && chmod 777 /var/ftp/upload→systemctl restart vsftpd。 - 客户端测试(Linux):
lftp IP→cd upload→put 2.txt(传文件)→mirror -R aaa(上传整个目录)。
四、三种认证模式对比(常考)
| 模式 | 认证方式 | 安全性 | 说明 |
|---|---|---|---|
| 匿名开放 | 无需密码 | 最低 | 只放公开资源 |
| 本地用户 | Linux 系统账户/密码 | 中 | 配置简单,被盗号可完全控制服务器 |
| 虚拟用户 | 独立用户数据库(系统不存在的账户) | 最高 | 破解了也无法登录系统 |
- 本地用户关键项:
anonymous_enable=NO、local_enable=YES、write_enable=YES、local_umask=022。
五、NFS 网络文件系统(Linux↔Linux 共享)
- NFS:Linux/Unix 间共享文件协议;支持多节点同时挂载、并发写入;典型用途=Web 集群的后端共享存储(NAS:网络附属存储)。
- 存储端(NAS 192.168.142.133):
yum -y install nfs-utils;mkdir /webdata+ 放 index.html。- 编辑
/etc/exports:/webdata 192.168.142.0/24(rw)(目录 + 允许网段 + 权限 rw)。 systemctl start nfs-server && enable;exportfs -v检查输出目录。
- 客户端(web1/web2/web3):
yum -y install nfs-utils httpd,启动 httpd。showmount -e 192.168.142.133查看存储端共享目录。- 挂载:
mount -t nfs 192.168.142.133:/webdata /var/www/html(服务器:目录 挂到本地目录)。 df/ls /var/www/html验证 → 浏览器访问各 web 机看到同一份 index.html。
- 环境准备同前:关防火墙 + SELinux disabled。
六、SSH 远程管理
- SSH(安全外壳协议)作用:字符界面远程管理,安全可靠;包名 openssh-server(
rpm -qa | grep ssh查)。 - 服务管理:配置文件
/etc/ssh/sshd_config(PermitRootLogin prohibit-password禁 root 密码登录、Port 22);systemctl start/enable sshd;验证netstat -antp | grep sshd。 - 使用:
ssh 账户名@IP地址。 - 免密登录(key 认证,大规模服务器标配):跳板机 129 上
ssh-keygen生成密钥对 →ssh-copy-id 用户@目标机把公钥传给 134 → 之后ssh 134免密(原理:目标机 authorized_keys 校验公钥+私钥签名)。
七、命令速查表
| 场景 | 命令 |
|---|---|
| FTP 服务 | systemctl start/enable vsftpd、vim /etc/vsftpd/vsftpd.conf |
| lftp 客户端 | lftp IP → get/put/mirror/mirror -R |
| wget 下载 | wget ftp://IP/文件 [-O 路径] |
| NFS 服务端 | vim /etc/exports、systemctl start nfs-server、exportfs -v |
| NFS 客户端 | showmount -e 服务器IP、mount -t nfs 服务器:目录 本地目录 |
| SSH | systemctl start/enable sshd、ssh 用户@IP |
| 免密 | ssh-keygen、ssh-copy-id 用户@目标 |
八、易错点
- FTP 匿名默认不能上传,必须改配置 + 建 777 的 upload 目录 + 重启。
- vsftpd 三种模式:匿名最不安全、本地用户中、虚拟用户最安全(RHCSA 概念题)。
- NFS 客户端挂载失败先查:服务端
/etc/exports网段对不对、exportfs -v是否导出、防火墙/SELinux 是否拦、showmount -e能否看到。 - SSH 免密是“公钥上服务器、私钥留本地”;
PermitRootLogin prohibit-password表示禁止 root 用密码远程登录(可用密钥)。 - NFS 与 FTP 场景区分:Linux 集群后端存储用 NFS;跨平台/浏览器下载用 FTP/HTTP。
九、实操清单
一台机搭 vsftpd 匿名下载 → 改配置开放 upload 上传并用 lftp put/mirror -R 验证 → 三台虚机搭 NFS(NAS 导出 /webdata、web1~3 挂到 /var/www/html)浏览器验证共享 → 跳板机生成密钥 ssh-copy-id 实现免密登录。
十、本章自测
- FTP 控制/数据端口?2. 匿名上传需要哪些配置项?3. vsftpd 三种认证模式安全性排序?4. NFS 导出文件路径与查看命令?5. 客户端挂载 NFS 命令格式?6. SSH 免密登录的两个关键命令?7. NFS 典型应用场景?
