16. 在 Ubuntu Server 上搭建文件共享服务:完整指南

在 Ubuntu Server 上搭建文件共享服务是现代 IT 环境中的一项基本任务,它能够实现跨设备、操作系统和用户之间的无缝协作和高效数据交换。无论您是在包含 Linux、Windows 和 macOS 系统的混合环境中工作,还是在支持需要集中访问共享资源的团队,Ubuntu Server 都提供了强大的工具来满足您的文件共享需求。

在本指南中,我们将带您逐步完成在 Ubuntu Server 上搭建三种流行的文件共享服务——FTP、Samba 和 NFS——的过程。这些服务旨在促进安全可靠的文件共享,确保跨不同平台和环境的兼容性。


往期文章:

01. Ubuntu Server 简介 – SysOSX: AI & Cloud

02. 如何搭建您的第一台 Ubuntu Server:初学者指南 – SysOSX: AI & Cloud

03. 掌握 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud

04. 管理 Ubuntu Server 上的用户和权限:综合指南 – SysOSX: AI & Cloud

05. Ubuntu Server 网络基础:综合指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud

07.Ubuntu Server 补丁与更新:综合指南 – SysOSX: AI & Cloud

08. 保护您的 Ubuntu Server:加固与防护的实用步骤 – SysOSX: AI & Cloud

09. Ubuntu 服务器审计与日志记录

10. Ubuntu Server 系统监控工具:综合指南 – SysOSX: AI & Cloud

11. Ubuntu 服务器集中式日志记录:必读指南 – SysOSX: AI & Cloud

12. Ubuntu Server 审计与合规:最佳实践 – SysOSX: AI & Cloud

13. 为托管和 Web 应用程序搭建您的 Ubuntu Server:终极指南 – SysOSX: AI & Cloud

14. 在一台 Ubuntu Server 上托管多个网站:实用技巧 – SysOSX: AI & Cloud

15. 管理 Ubuntu Server 上的存储和磁盘:简单指南 – SysOSX: AI & Cloud



文件共享服务简介

文件共享服务允许设备通过网络交换数据。Ubuntu Server 支持多种文件共享协议,包括:

  • FTP(文件传输协议):非常适合通过网络在设备之间传输文件。
  • Samba:使用 SMB/CIFS 协议实现 Linux 和 Windows 系统之间的文件共享。
  • NFS(网络文件系统):专为在基于 Unix 的系统(包括 Linux 和 macOS)之间共享文件而设计。

每种协议都有其优势,选择取决于您的具体使用场景。下面,我们将带您逐步完成每种服务的搭建过程。


FTP、Samba 和 NFS 的使用场景

了解每种文件共享协议的使用案例有助于您为自己的环境选择合适的协议:

FTP 使用案例

FTP 最适合需要在设备之间通过网络传输文件的环境,例如:

  • 托管网站,客户将文件上传到 Web 服务器。
  • 与不需要持续访问共享目录的外部用户共享文件。
  • 使用脚本或 cron 作业自动执行文件上传/下载。

Samba 使用案例

Samba 非常适合包含 Linux 和 Windows 系统的混合环境。常见场景包括:

  • 在企业网络中于 Linux 服务器和 Windows 台式机之间共享文件。
  • 为不同操作系统上的用户之间的协作提供共享文件夹。
  • 允许 Windows 用户无缝访问基于 Linux 的文件服务器。

NFS 使用案例

NFS 专为基于 Unix 的系统(如 Linux 和 macOS)量身定制。它在以下场景中表现出色:

  • 在数据中心或云环境中的 Linux 服务器之间共享文件。
  • 出于开发目的在 macOS 系统上挂载目录。
  • 为在 Linux 上运行的应用程序提供持久的高性能共享存储。

搭建 FTP

FTP 是一种广泛使用的协议,用于在设备之间传输文件。要在 Ubuntu 上搭建 FTP 服务器:

步骤 1:安装 vsftpd

运行以下命令安装vsftpd软件包:

sudo apt update
sudo apt install vsftpd

步骤 2:配置 vsftpd

编辑配置文件:

sudo nano /etc/vsftpd.conf

进行以下更改:

  • 启用匿名访问(可选):anonymous_enable=NO
  • 允许本地用户:local_enable=YES write_enable=YES
  • 将用户限制在其主目录中:chroot_local_user=YES
  • 使主目录不可写
sudo chmod a-w /home/yourusername

保存并关闭文件,然后重启 FTP 服务:

sudo systemctl restart vsftpd

步骤 3:测试 FTP 服务器

使用 FTP 客户端(例如 FileZilla)或命令行连接到您的服务器:

ftp <server-ip>

输出:

PS C:\> ftp 10.0.0.13
Connected to 10.0.0.13.
220 (vsFTPd 3.0.5)
200 Always in UTF8 mode.
User (10.0.0.13:(none)): uadmin
331 Please specify the password.
Password:

230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
uploads
226 Directory send OK.
ftp: 12 bytes received in 0.00Seconds 12000.00Kbytes/sec.
ftp> put test.txt
200 PORT command successful. Consider using PASV.
553 Could not create file.
ftp> cd uploads
250 Directory successfully changed.
ftp> pwd
257 "/uploads" is the current directory
ftp> put test.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
test.txt
226 Directory send OK.
ftp: 13 bytes received in 0.00Seconds 13000.00Kbytes/sec.
ftp>

为 Windows 和 Linux 配置 Samba

Samba 非常适合在 Linux 和 Windows 系统之间共享文件。请按照以下步骤搭建 Samba:

步骤 1:安装 Samba

运行以下命令:

sudo apt update
sudo apt install samba

步骤 2:配置 Samba

编辑 Samba 配置文件:

sudo nano /etc/samba/smb.conf

添加以下部分以共享目录:

[SharedFolder]
path = /path/to/shared/folder
read only = no
browsable = yes
guest ok = yes
force user = nobody


步骤 3:设置权限

确保共享文件夹具有适当的权限:

sudo chmod -R 0777 /path/to/shared/folder
sudo chown -R nobody:nogroup /path/to/shared/folder

重启 Samba 服务:

sudo systemctl restart smbd

步骤 4:访问 Samba 共享

  • Windows:打开文件资源管理器并输入服务器的 IP 地址(例如,\\<server-ip>).
  • Linux:使用smbclient命令,或使用以下方式挂载共享:cifs.
在 SMB.config 中配置共享文件夹

通过以下方式设置 SMB 用户名和密码:

sudo smbpasswd -a username

搭建好 Samba 服务器、添加 SMB 用户名和密码并共享 /www/var 后,尝试从 Windows 计算机访问。


为 Linux 和 macOS 搭建 NFS

NFS 是一种强大的协议,用于在基于 Unix 的系统之间共享文件。以下是搭建 NFS 的方法:

步骤 1:安装 NFS 服务器

运行以下命令:

sudo apt update
sudo apt install nfs-kernel-server

步骤 2:配置 NFS 导出

编辑 NFS 导出文件:

sudo nano /etc/exports

添加您想要共享的目录,并指定客户端 IP 或网络:

/path/to/shared/folder <client-ip>(rw,sync,no_subtree_check)

然后使用以下命令验证导出:

exportfs -v

步骤 3:应用更改

重启 NFS 服务:

sudo systemctl restart nfs-kernel-server

步骤 4:挂载 NFS 共享

在客户端计算机上,使用以下命令挂载 NFS 共享:

sudo mount <server-ip>:/path/to/shared/folder /mount/point

在客户端,使用命令行安装 NFS 客户端:

sudo apt install nfs-common

#Check if the NFS server is listening on the required ports:
sudo showmount -e nfs-server-ip


排查常见问题

文件共享服务可能会因配置错误或网络设置而出现问题。以下是一些常见问题及解决方案:

防火墙配置

确保必要的端口已打开:

  • FTP:端口 21
  • Samba:端口 137-139 和 445
  • NFS:端口 2049 及其他端口(详情请查看/etc/services)

使用ufw允许这些端口:

sudo ufw allow <port-number>

权限错误

验证共享文件夹的目录权限和所有权。

连接问题

检查网络设置,并确保服务器和客户端位于同一子网。


其他资源

如需进一步阅读,请查阅每项服务的官方文档:

下一章:高级主题

在下一章中,我们将深入探讨高级主题,以进一步提升您的服务器管理技能。第一个主题将聚焦于在 Ubuntu 上搭建安全的数据库服务器,您将在其中学习如何在 Ubuntu 服务器上安装和配置 MySQL 或 MariaDB 等数据库。敬请期待!

3 thoughts on “16. Setting Up File Sharing Services on Ubuntu Server: a complete guide”

发表评论