凌峰创科服务平台

Linux如何快速搭建http文件服务器?

使用 Python(最简单、最通用)

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

Linux如何快速搭建http文件服务器?-图1
(图片来源网络,侵删)

优点

  • 无需安装:Python 3 是系统自带的,无需额外安装软件。
  • 命令极简:一条命令即可启动。
  • 跨平台:在 macOS 和 Windows 上也能用。

缺点

  • 功能简单:只提供基本的文件列表和下载功能,没有用户认证、日志、动态内容等。
  • 安全性较低:默认没有安全措施,不适合暴露在公网上。
  • 性能一般:不适合高并发的生产环境。

操作步骤

  1. 打开终端,进入你想要共享的文件夹。

    # 我想共享 /home/user/share 目录
    cd /home/user/share
  2. 启动 Python HTTP 服务器

    • 对于 Python 3.x (推荐)
      # 在端口 8000 上启动服务器
      python3 -m http.server
    • 对于 Python 2.x (已过时,但某些系统可能只有它)
      python -m SimpleHTTPServer
  3. 访问服务器。 在同一局域网内的其他电脑上,打开浏览器,访问 http://<你的Linux服务器IP地址>:8000

    • 如何获取你的 Linux 服务器 IP 地址?
      ip a
      # 或者
      ifconfig

      你将看到该文件夹下所有文件和文件夹的列表,点击即可下载。

      Linux如何快速搭建http文件服务器?-图2
      (图片来源网络,侵删)
  4. 停止服务器。 在终端中按 Ctrl + C 即可停止服务器。


使用 Nginx(功能强大、高性能、生产环境首选)

Nginx 是一个非常流行的高性能 Web 服务器和反向代理服务器,用它来提供文件服务非常稳定、高效且功能丰富。

优点

  • 高性能:采用事件驱动模型,能轻松处理高并发请求。
  • 功能丰富:支持用户认证、访问控制、虚拟主机、HTTPS、负载均衡等。
  • 稳定可靠:被全球无数网站使用,非常成熟。
  • 配置灵活:通过配置文件可以精确控制服务行为。

缺点

  • 需要安装和配置:比 Python 方法复杂,需要编辑配置文件。
  • 资源占用相对较高:相比于 Python 的单脚本,但依然非常轻量。

操作步骤

  1. 安装 Nginx

    • 基于 Debian/Ubuntu:
      sudo apt update
      sudo apt install nginx
    • 基于 CentOS/RHEL/Fedora:
      sudo yum install epel-release  # 如果需要
      sudo yum install nginx
  2. 创建共享文件夹和测试文件

    Linux如何快速搭建http文件服务器?-图3
    (图片来源网络,侵删)
    # 创建一个共享目录
    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
  3. 配置 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;
          }
      }
  4. 启动并启用 Nginx

    # 启动 Nginx 服务
    sudo systemctl start nginx
    # 设置开机自启
    sudo systemctl enable nginx
  5. 检查状态和访问

    # 检查 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)连接,而不是浏览器。
  • 配置相对复杂:需要管理用户、权限等。

操作步骤

  1. 安装 vsftpd

    sudo apt install vsftpd  # Debian/Ubuntu
    sudo yum install vsftpd  # CentOS/RHEL
  2. 配置 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 需要)
    • 保存并退出。
  3. 创建 FTP 用户

    • 创建一个新用户 ftpuser,并设置其 home 目录为 /home/ftpuser
      sudo useradd -m -s /bin/false ftpuser
    • 为该用户设置密码。
      sudo passwd ftpuser
  4. 设置文件权限。 确保 FTP 用户的 home 目录及其内部的文件权限正确。

    sudo chown -R ftpuser:ftpuser /home/ftpuser
    sudo chmod -R 755 /home/ftpuser
  5. 启动并启用 vsftpd

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
  6. 连接测试。 使用 FileZilla 等 FTP 客户端,连接到你的服务器。

    • 主机: ftp://<你的Linux服务器IP地址>
    • 用户名: ftpuser
    • 密码: 你刚才设置的密码
    • 端口: 21 (FTP默认端口)

使用 Apache(功能全面、老牌 Web 服务器)

Apache 是另一个非常成熟和广泛使用的 Web 服务器,功能与 Nginx 类似,配置方式略有不同。

优点

  • 功能全面:与 Nginx 一样,功能非常强大。
  • 模块化设计:通过丰富的模块可以扩展各种功能。
  • 文档丰富:作为老牌服务器,社区和文档非常完善。

缺点

  • 性能:在高并发场景下,通常不如 Nginx 性能优越。
  • 资源占用:默认配置下比 Nginx 占用更多内存。

操作步骤(简述)

  1. 安装 Apache

    sudo apt install apache2  # Debian/Ubuntu
    sudo yum install httpd   # CentOS/RHEL (包名是 httpd)
  2. 配置共享目录

    • Debian/Ubuntu: 默认网站根目录
分享:
扫描分享到社交APP
上一篇
下一篇