使用 Python(最简单、最通用)
Python 几乎在所有 Linux 发行版中都是预装的,或者可以轻松安装,使用 Python 内置的 http.server 模块是搭建一个临时文件服务器最快的方法。

优点
- 无需安装:Python 3 是系统自带的,无需额外安装软件。
- 命令极简:一条命令即可启动。
- 跨平台:在 macOS 和 Windows 上也能用。
缺点
- 功能简单:只提供基本的文件列表和下载功能,没有用户认证、日志、动态内容等。
- 安全性较低:默认没有安全措施,不适合暴露在公网上。
- 性能一般:不适合高并发的生产环境。
操作步骤
-
打开终端,进入你想要共享的文件夹。
# 我想共享 /home/user/share 目录 cd /home/user/share
-
启动 Python HTTP 服务器。
- 对于 Python 3.x (推荐):
# 在端口 8000 上启动服务器 python3 -m http.server
- 对于 Python 2.x (已过时,但某些系统可能只有它):
python -m SimpleHTTPServer
- 对于 Python 3.x (推荐):
-
访问服务器。 在同一局域网内的其他电脑上,打开浏览器,访问
http://<你的Linux服务器IP地址>:8000。- 如何获取你的 Linux 服务器 IP 地址?
ip a # 或者 ifconfig
你将看到该文件夹下所有文件和文件夹的列表,点击即可下载。
(图片来源网络,侵删)
- 如何获取你的 Linux 服务器 IP 地址?
-
停止服务器。 在终端中按
Ctrl + C即可停止服务器。
使用 Nginx(功能强大、高性能、生产环境首选)
Nginx 是一个非常流行的高性能 Web 服务器和反向代理服务器,用它来提供文件服务非常稳定、高效且功能丰富。
优点
- 高性能:采用事件驱动模型,能轻松处理高并发请求。
- 功能丰富:支持用户认证、访问控制、虚拟主机、HTTPS、负载均衡等。
- 稳定可靠:被全球无数网站使用,非常成熟。
- 配置灵活:通过配置文件可以精确控制服务行为。
缺点
- 需要安装和配置:比 Python 方法复杂,需要编辑配置文件。
- 资源占用相对较高:相比于 Python 的单脚本,但依然非常轻量。
操作步骤
-
安装 Nginx。
- 基于 Debian/Ubuntu:
sudo apt update sudo apt install nginx
- 基于 CentOS/RHEL/Fedora:
sudo yum install epel-release # 如果需要 sudo yum install nginx
- 基于 Debian/Ubuntu:
-
创建共享文件夹和测试文件。
(图片来源网络,侵删)# 创建一个共享目录 sudo mkdir -p /var/www/share # 给这个目录添加一些文件,并设置正确的权限 sudo echo "Hello from Nginx!" | sudo tee /var/www/share/index.html sudo cp /etc/issue.net /var/www/share/ # 复制一个系统信息文件作为测试 sudo chown -R www-data:www-data /var/www/share # www-data 是 Nginx 的默认运行用户 sudo chmod -R 755 /var/www/share
-
配置 Nginx。
-
备份默认配置文件(可选但推荐):
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
-
编辑默认配置文件:
sudo nano /etc/nginx/sites-available/default
-
将
server块修改为以下内容,这会让 Nginx 将/var/www/share目录作为网站的根目录。server { listen 80; listen [::]:80; # 将网站根目录指向你的共享文件夹 root /var/www/share; index index.html index.htm; # 显示目录列表(可选,默认不显示) autoindex on; # 其他配置... location / { try_files $uri $uri/ =404; } }
-
-
启动并启用 Nginx。
# 启动 Nginx 服务 sudo systemctl start nginx # 设置开机自启 sudo systemctl enable nginx
-
检查状态和访问。
# 检查 Nginx 是否运行正常 sudo systemctl status nginx
在浏览器中访问
http://<你的Linux服务器IP地址>,你就能看到index.html的内容,并能浏览和下载share目录下的所有文件。
使用 vsftpd(FTP/SFTP 文件服务器)
如果你需要用户上传、下载、删除文件,而不是仅仅提供 HTTP 下载,那么搭建一个 FTP 或 SFTP 服务器是更好的选择。vsftpd (Very Secure FTP Daemon) 是 Linux 下最安全、最常用的 FTP 服务器软件。
优点
- 支持上传/下载:提供完整的文件传输功能。
- 用户认证:可以创建独立的用户账户进行管理。
- 安全性高:
vsftpd以其安全性著称。
缺点
- 协议不同:FTP/SFTP 协议与 HTTP 不同,需要用 FTP 客户端(如 FileZilla)连接,而不是浏览器。
- 配置相对复杂:需要管理用户、权限等。
操作步骤
-
安装 vsftpd。
sudo apt install vsftpd # Debian/Ubuntu sudo yum install vsftpd # CentOS/RHEL
-
配置 vsftpd。
- 编辑配置文件:
sudo nano /etc/vsftpd.conf
- 修改以下关键配置:
anonymous_enable=NO # 禁止匿名登录,更安全 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许写操作(上传、修改、删除) chroot_local_user=YES # 将用户限制在其 home 目录下,防止他们访问系统其他文件 allow_writeable_chroot=YES # 允许被 chroot 的用户有写权限(较新版本的 vsftpd 需要)
- 保存并退出。
- 编辑配置文件:
-
创建 FTP 用户。
- 创建一个新用户
ftpuser,并设置其 home 目录为/home/ftpuser。sudo useradd -m -s /bin/false ftpuser
- 为该用户设置密码。
sudo passwd ftpuser
- 创建一个新用户
-
设置文件权限。 确保 FTP 用户的 home 目录及其内部的文件权限正确。
sudo chown -R ftpuser:ftpuser /home/ftpuser sudo chmod -R 755 /home/ftpuser
-
启动并启用 vsftpd。
sudo systemctl start vsftpd sudo systemctl enable vsftpd
-
连接测试。 使用 FileZilla 等 FTP 客户端,连接到你的服务器。
- 主机:
ftp://<你的Linux服务器IP地址> - 用户名:
ftpuser - 密码: 你刚才设置的密码
- 端口: 21 (FTP默认端口)
- 主机:
使用 Apache(功能全面、老牌 Web 服务器)
Apache 是另一个非常成熟和广泛使用的 Web 服务器,功能与 Nginx 类似,配置方式略有不同。
优点
- 功能全面:与 Nginx 一样,功能非常强大。
- 模块化设计:通过丰富的模块可以扩展各种功能。
- 文档丰富:作为老牌服务器,社区和文档非常完善。
缺点
- 性能:在高并发场景下,通常不如 Nginx 性能优越。
- 资源占用:默认配置下比 Nginx 占用更多内存。
操作步骤(简述)
-
安装 Apache。
sudo apt install apache2 # Debian/Ubuntu sudo yum install httpd # CentOS/RHEL (包名是 httpd)
-
配置共享目录。
- Debian/Ubuntu: 默认网站根目录
