零基础Windows/Linux双平台家用/小型办公FTP搭建教程 附权限配置+公网访问

2026-07-27 02:19:25 144阅读
这是一份面向零基础用户的家用与小型办公FTP搭建教程,覆盖Windows、Linux双平台,教程步骤清晰易懂,无需专业基础即可上手,不仅详细讲解两大系统下的FTP服务搭建流程,还配套了实用的权限配置方案,助力安全管理文件访问权限,同时提供公网访问指引,解决跨网络远程共享的问题,满足日常家用存储、小团队协作的文件传输与共享需求。

在云盘容量受限、传文件限速、担心隐私泄露的场景下,自建FTP(文件传输协议)服务器是个“低成本高自由”的方案——既能在局域网内高速传输大文件(如影视素材、企业文档),也能通过简单配置实现跨地域的安全访问。

本文面向零基础用户,分别介绍 Windows 10/11 自带IIS搭建(适合新手、Windows设备为主的环境)和 Linux 系统使用vsftpd搭建(适合轻量服务器、Linux爱好者、长期稳定需求)的全流程,最后补充权限配置、公网穿透的核心操作。

零基础Windows/Linux双平台家用/小型办公FTP搭建教程 附权限配置+公网访问


第一部分:Windows 10/11 IIS自带FTP搭建(5分钟入门)

IIS是Windows系统自带的Web/FTP服务器组件,无需下载第三方软件,兼容性极强。

步骤1:启用IIS及FTP服务组件

  1. 打开「控制面板」→ 点击「程序」→ 选择「启用或关闭Windows功能」;
  2. 在弹出的窗口中,找到「Internet Information Services」,点击前方的小三角展开
    • 勾选「Web管理工具」下的全部(至少勾选「IIS管理控制台」,方便后续操作);
    • 勾选「FTP服务器」下的全部;
    • 勾选「万维网服务」下的「应用程序开发功能」→「ASP.NET」(可选,主要为后续拓展Web功能留空间);
  3. 点击「确定」,系统会自动安装组件,等待进度条结束(无需重启)。

步骤2:创建FTP根目录并设置基础权限

  1. 在电脑硬盘(建议非系统盘,如D盘、E盘)新建一个文件夹,命名为「MyFTP」(或你喜欢的名字),后续所有共享文件都放在这里;
  2. 右键点击「MyFTP」→「属性」→「安全」→「编辑」→「添加」;
  3. 在「输入对象名称来选择」框中输入 everyone → 点击「检查名称」(名字会变下划线加粗,说明识别成功)→ 点击「确定」;
  4. 在「everyone的权限」中,先勾选「完全控制」或「修改/读取/写入」→ 点击「应用」→「确定」(注意:后续权限配置会细化,这里先给临时权限保证FTP能读写)。

步骤3:IIS中配置FTP站点

  1. 搜索栏输入「IIS管理器」并打开;
  2. 左侧展开「本地计算机」→ 右键点击「网站」→「添加FTP站点」;
  3. 站点信息
    • 站点名称:自定义(如「家庭共享FTP」);
    • 物理路径:选择刚才新建的「MyFTP」文件夹;
    • 点击「下一步」;
  4. 绑定和SSL设置
    • IP地址:下拉选择「全部未分配」(局域网内所有设备都能访问);
    • 端口:默认21(如果被占用,可改2121等不常用的端口,后续公网访问也要对应改);
    • SSL:如果只是局域网临时用,选「无SSL」;如果需要公网访问或长期稳定隐私用,选「需要SSL」(新手可先无SSL练手,后面再补证书配置);
    • 点击「下一步」;
  5. 身份验证和授权信息
    • 身份验证:勾选「基本」(局域网/公网通用,匿名后续单独开);
    • 授权:选择「指定用户」→ 输入刚才设置everyone时的临时方案?或者建议新手新建一个专用Windows账户(后续更安全):
      • 先最小化IIS,打开「设置」→「账户」→「家庭和其他用户」→「将其他人添加到这台电脑」→「我没有这个人的登录信息」→「添加一个没有Microsoft账户的用户」→ 输入用户名(如ftpuser)和密码(要复杂,至少8位,有数字字母符号)→ 点击「下一步」;
      • 回到IIS的授权页面,输入刚才新建的ftpuser→ 点击「检查名称」→ 勾选「读取」「写入」→ 点击「完成」。

步骤4:局域网测试访问

  1. 查看Windows电脑的局域网IP
    • 打开「命令提示符」(搜索cmd)→ 输入ipconfig→ 找到「无线局域网适配器WLAN」或「以太网适配器以太网」下的「IPv4 地址」(如168.1.100);
  2. 手机/另一台电脑访问:
    • 手机:下载「ES文件浏览器」「Solid Explorer」等支持FTP的APP → 新建FTP连接 → 主机填局域网IP,端口21(或改后的),用户名密码填ftpuser的 → 连接成功即可上传下载;
    • 另一台Windows电脑:打开「此电脑」→ 顶部地址栏输入ftp://192.168.1.100→ 回车输入用户名密码 → 访问;
    • Mac电脑:打开「访达」→ 顶部菜单栏「前往」→「连接服务器」→ 输入ftp://192.168.1.100→ 连接输入密码。

第二部分:Linux vsftpd搭建(轻量、稳定、开源)

vsftpd(Very Secure FTP Daemon)是Linux系统最常用的FTP服务器软件,安全、配置简单、资源占用极低,适合树莓派、阿里云/腾讯云轻量应用服务器等。

本文以Ubuntu 22.04 LTS为例(CentOS/RHEL类似,只是安装命令换yum/dnf)。

步骤1:更新系统并安装vsftpd

  1. 打开终端(远程的话用SSH工具,如PuTTY、Finalshell);
  2. 输入以下命令更新系统软件源:
    sudo apt update && sudo apt upgrade -y
  3. 输入以下命令安装vsftpd:
    sudo apt install vsftpd -y
  4. 验证安装是否成功(查看vsftpd状态):
    sudo systemctl status vsftpd

    如果看到绿色的「active (running)」,说明安装成功并自动启动了。

步骤2:创建专用FTP用户和根目录

  1. 创建一个不允许登录Linux系统的专用FTP用户(更安全,只能操作FTP目录):
    sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
    • -m:自动创建用户的家目录;
    • -d /home/ftpuser:指定家目录为FTP根目录;
    • -s /sbin/nologin:禁止该用户登录系统终端。
  2. ftpuser设置密码:
    sudo passwd ftpuser

    输入两次复杂密码(终端输入密码不显示,直接输就行)。

  3. 创建一个专门用于上传的子目录(vsftpd默认不允许用户直接对根目录写入,这是安全机制):
    sudo mkdir /home/ftpuser/upload
  4. 修改目录权限:
    sudo chown nobody:nogroup /home/ftpuser  # 根目录所有者设为nobody,vsftpd安全要求
    sudo chmod a-w /home/ftpuser             # 根目录去掉所有用户的写入权限
    sudo chown ftpuser:ftpuser /home/ftpuser/upload  # 上传目录所有者设为ftpuser
    sudo chmod 755 /home/ftpuser/upload      # 上传目录给读写执行权限

步骤3:配置vsftpd核心文件

vsftpd的配置文件是/etc/vsftpd.conf,修改前建议先备份(防止改错):

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

然后用nano或vim编辑器打开(新手推荐nano,操作更简单):

sudo nano /etc/vsftpd.conf

在文件中找到并修改以下参数(有的参数前面有注释,要删掉;没有的直接在文件末尾添加):

# 允许本地用户登录(我们刚才建的ftpuser属于本地用户)
local_enable=YES
# 允许本地用户写入文件
write_enable=YES
# 设置本地用户的umask(上传文件的默认权限,755表示所有者读写执行,其他人读执行)
local_umask=022
# 开启chroot,将用户限制在自己的家目录内(不能访问系统其他目录,安全!)
chroot_local_user=YES
# 因为我们刚才给根目录去掉了写入权限,所以要加这一行,避免报错
allow_writeable_chroot=NO  # 哦不对,刚才根目录设了a-w,所以这个是默认的NO就行?或者如果上传在子目录,直接开chroot_local_user=YES,然后子目录有权限就OK
# 开启被动模式(解决防火墙问题,公网访问必须开)
pasv_enable=YES
# 设置被动模式的端口范围(可以自定义,比如50000-50100,后续公网穿透要开放这些端口)
pasv_min_port=50000
pasv_max_port=50100
# 如果是公网服务器,还要设置被动模式的公网IP(局域网的话可以注释掉)
# pasv_address=你的公网IP地址
# 允许ASCII模式传输(兼容一些旧设备)
ascii_upload_enable=YES
ascii_download_enable=YES
# 设置欢迎信息(可选)
ftpd_banner=Welcome to My Home FTP Server!

修改完成后,按Ctrl+O保存,按Enter确认文件名,再按Ctrl+X退出nano。

步骤4:重启vsftpd并配置防火墙

  1. 重启vsftpd使配置生效:
    sudo systemctl restart vsftpd
  2. 设置vsftpd开机自启:
    sudo systemctl enable vsftpd
  3. 配置Ubuntu自带的ufw防火墙(如果是云服务器,还要去云控制台的安全组开放端口!):
    • 开放默认FTP端口21:
      sudo ufw allow 21/tcp
    • 开放刚才设置的被动模式端口范围50000-50100:
      sudo ufw allow 50000:50100/tcp
    • 查看防火墙状态:
      sudo ufw status

      如果是「inactive」,可以用sudo ufw enable开启(建议开启,更安全)。

步骤5:局域网测试访问

和Windows类似,先查看Linux的局域网IP:

ip addr show

找到「WLAN」或「eth0」下的「inet」地址(如168.1.200),然后用手机/另一台电脑的FTP工具访问即可,用户名ftpuser,密码刚才设置的。


第三部分:进阶:公网访问与权限细化

进阶1:公网访问(跨地域用)

局域网FTP只能在家/公司用,要想在外地访问,需要做公网穿透(如果家里的宽带有公网IPv4地址,直接用公网IP+端口映射即可,更稳定;没有的话用第三方穿透工具,如花生壳、ngrok、frp)。

方案A:有公网IPv4地址(最推荐)

  1. 确认宽带有公网IP:

    百度搜索「IP地址」,看显示的IP和路由器WAN口的IP是否一致(路由器后台一般在192.168.1.1或192.168.0.1,账号密码在路由器背面);

  2. 路由器后台设置端口映射(也叫虚拟服务器):
    • 服务名称:自定义(如「MyFTP」);
    • 外部端口:21(或改后的2121,避免被扫描);
    • 内部端口:21(Linux/Ubuntu默认)或Windows IIS设置的端口;
    • 内部IP:你搭建FTP的电脑/服务器的局域网IP
    • 协议:TCP;
    • 保存生效;
  3. 如果是Linux,还要在vsftpd配置中添加pasv_address=你的公网IP,然后重启vsftpd;
  4. 测试:用外地手机的流量(别连WiFi)访问ftp://公网IP:端口

方案B:无公网IPv4地址(第三方穿透工具)

花生壳免费版为例:

  1. 下载花生壳客户端(Windows/Linux都有),安装并注册账号;
  2. 登录客户端,点击「内网穿透」→「添加映射」;
  3. 选择「TCP」协议,外网域名用花生壳免费送的,外网端口选「随机端口」或自定义(免费版一般只能用随机),内网主机填FTP的局域网IP,内网端口填21;
  4. 保存后,花生壳会给你一个「外网访问地址」,用这个地址测试即可(免费版限速,适合小文件传输)。

进阶2:权限细化(更安全)

Windows IIS权限细化

  1. 去掉「MyFTP」根目录的everyone权限,只保留「IIS_IUSRS」(IIS默认用户组)和你刚才新建的ftpuser的读取权限;
  2. 如果需要匿名用户只读访问
    • 在IIS中找到你的FTP站点 → 双击「FTP身份验证」→ 启用「匿名身份验证」;
    • 双击「FTP授权规则」→ 添加允许规则 → 选择「所有用户」或「匿名用户」→ 只勾选「读取」→ 保存;
  3. 如果需要不同用户访问不同文件夹
    • 在「MyFTP」下新建子文件夹(如「影视」「文档」);
    • 分别给不同用户设置文件夹权限(右键属性→安全);
    • 在IIS中配置「虚拟目录」或者用「FTP用户隔离」(新手建议先设置子文件夹权限)。

Linux vsftpd权限细化

  1. 如果需要多个用户访问不同目录
    • 创建多个专用FTP用户:sudo useradd -m -d /home/ftpuser2 -s /sbin/nologin ftpuser2
    • 分别设置chroot(刚才已经开了chroot_local_user=YES,默认每个用户都在自己家目录);
    • 如果需要共享一个目录,可以用软链接(ln -s)或者修改local_root参数(可以单独给每个用户在/etc/vsftpd/user_config_dir下建配置文件);
  2. 如果需要匿名用户只读访问
    • vsftpd.conf中修改:
      anonymous_enable=YES
      anon_root=/var/ftp  # 匿名用户的根目录,提前创建并给nobody:nogroup权限
      anon_upload_enable=NO  # 禁止匿名上传
      anon_mkdir_write_enable=NO  # 禁止匿名创建文件夹
    • 重启vsftpd生效。

注意事项

  1. 密码安全:专用FTP账户的密码一定要复杂,避免被暴力破解;
  2. SSL/TLS加密:公网访问强烈建议开启SSL/TLS(Windows IIS可以用Let's Encrypt免费证书,Linux vsftpd也可以配置);
  3. 端口修改:尽量不要用默认的21端口,改成2121、33321等不常用的端口;
  4. 防火墙/安全组:一定要配置好防火墙和云服务器的安全组,只开放必要的端口;
  5. 定期备份:FTP服务器的重要文件要定期备份到其他硬盘或云盘。

希望这篇教程能帮你快速搭建好自己的FTP服务器!如果有问题,欢迎在评论区留言~

文章版权声明:除非注明,否则均为亚朵原创文章,转载或复制请以超链接形式并注明出处。