凌峰创科服务平台

OpenWrt FTP服务器如何配置与使用?

下面我将为您提供两种最主流的 FTP 服务器方案:vsftpd(非常安全的 FTP 守护进程)和 ProFTPD,并附上详细的配置步骤和安全建议。

OpenWrt FTP服务器如何配置与使用?-图1
(图片来源网络,侵删)

使用 vsftpd (推荐)

vsftpd 是一个轻量级、高性能且非常安全的 FTP 服务器,是 OpenWrt 官方软件源中提供的首选方案。

安装 vsftpd

通过 SSH 登录到您的 OpenWrt 路由器。

更新软件包列表并安装 vsftpd

opkg update
opkg install vsftpd

创建 FTP 用户

FTP 服务器需要一个专门的系统用户来隔离其访问权限,我们不建议使用 root 用户。

OpenWrt FTP服务器如何配置与使用?-图2
(图片来源网络,侵删)
  1. 创建一个新用户,ftpuser,您需要设置一个密码。

    adduser ftpuser

    系统会提示您设置密码和用户信息,一路回车使用默认值即可。

  2. ftpuser 创建一个用于存放 FTP 文件的目录,我们通常放在 /home/ftpuser/ftp 目录下。

    mkdir -p /home/ftpuser/ftp
  3. 设置目录的所有权,确保 ftpuser 对该目录有完全的读写权限。

    OpenWrt FTP服务器如何配置与使用?-图3
    (图片来源网络,侵删)
    chown -R ftpuser:ftpuser /home/ftpuser/ftp

配置 vsftpd

配置文件位于 /etc/vsftpd.conf,我们先备份原文件,然后进行编辑。

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
vi /etc/vsftpd.conf

或者使用 nano 编辑器:nano /etc/vsftpd.conf

打开文件后,确保以下配置项存在或被修改为以下值,您可以保留文件中其他未提及的配置项不变。

# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许对文件系统进行写操作
write_enable=YES
# 用户被限制在自己的家目录中 (chroot)
chroot_local_user=YES
# 当用户被 chroot 时,不允许他有写权限 (为了安全)
# 我们需要把它设为 NO,才能让用户在自己的目录里上传文件
allow_writeable_chroot=YES
# 指定用户登录后的根目录
# 这是一个重要的安全特性,将用户限制在指定目录
local_root=/home/ftpuser/ftp
# 启用被动模式 (强烈推荐,因为主动模式通常会被路由器或防火墙阻止)
pasv_enable=YES
pasv_min_port=10090
pasv_max_port=10095
# 设置欢迎信息
ftpd_banner=Welcome to OpenWrt FTP Service.

配置解释:

  • pasv_min_portpasv_max_port:定义了被动模式使用的端口范围,稍后我们需要在防火墙中开放这个端口范围。
  • allow_writeable_chroot=YES:这是一个现代 vsftpd 的安全选项,允许在受控的 chroot 环境中进行写入操作。

配置防火墙

为了能从外部网络访问 FTP 服务器,您需要配置 OpenWrt 的防火墙(firewall)。

  1. 编辑防火墙配置文件 /etc/config/firewall

    vi /etc/config/firewall
  2. config zone 部分找到您的 lan 区块(通常是第一个 zone),在 list options 中添加 ftprelated established

    config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        # 在下面添加这两行
        list options 'ftp'
        list options 'related established'
  3. 在文件的末尾添加一个规则,以开放我们在 vsftpd.conf 中设置的被动模式端口范围(10090-10095):

    # 在文件末尾添加
    config rule
        option name 'Allow-FTP-Passive'
        option src 'lan'
        option dest_port '10090 10091 10092 10093 10094 10095'
        option proto 'tcp'
        option target 'ACCEPT'

    或者更简洁的写法:

    config rule
        option name 'Allow-FTP-Passive'
        option src 'lan'
        option dest_port '10090-10095'
        option proto 'tcp'
        option target 'ACCEPT'
  4. 保存文件后,重启防火墙使配置生效:

    /etc/init.d/firewall restart

启动并设置开机自启

# 启动 vsftpd 服务
/etc/init.d/vsftpd start
# 设置开机自启
/etc/init.d/vsftpd enable

访问 FTP 服务器

您可以从局域网内的任何一台电脑上访问 FTP 服务器了。

  • 地址ftp://<您的OpenWrt路由器IP地址>
  • 用户名ftpuser
  • 密码:您在第 2 步设置的密码

如果您的路由器 IP 是 168.1.1,就在文件资源管理器的地址栏输入 ftp://192.168.1.1


使用 ProFTPD

ProFTPD 是另一个功能强大且配置灵活的 FTP 服务器,如果您对 vsftpd 不满意,可以尝试这个。

安装 ProFTPD

opkg update
opkg install proftpd

创建 FTP 用户

vsftpd 步骤完全相同。

adduser ftpuser
mkdir -p /home/ftpuser/ftp
chown -R ftpuser:ftpuser /home/ftpuser/ftp

配置 ProFTPD

配置文件是 /etc/proftpd.conf

cp /etc/proftpd.conf /etc/proftpd.conf.bak
vi /etc/proftpd.conf

主要检查和修改以下配置:

# 设置服务器名称
ServerName "OpenWrt ProFTPD"
# 使用 inetd 模式还是独立模式,推荐独立模式
# 取消下面这行的注释
ServerType standalone
# 默认端口
Port 21
# 匿名登录禁止
<Anonymous ~ftp>
    User ftp
    Group nogroup
    # 用户被限制在目录中
    <Limit LOGIN>
        DenyAll
    </Limit>
</Anonymous>
# 允许本地用户登录
DefaultRoot ~
# 启用被动模式
PassivePorts 10090 10095
# 其他安全设置
<Limit LOGIN>
    DenyGroup !ftpusers
</Limit>

注意:DefaultRoot ~ 会将所有用户限制在其主目录下。

配置防火墙

防火墙配置与 vsftpd 完全相同,因为 FTP 协议本身是一样的。

启动并设置开机自启

/etc/init.d/proftpd start
/etc/init.d/proftpd enable

重要安全建议

  1. 仅限局域网访问:强烈建议不要将 FTP 服务器暴露在互联网上,FTP 协议(尤其是用户名和密码)是明文传输的,非常不安全,请确保您的防火墙只允许来自 lan 区域的连接。
  2. 使用 SFTP/FTPS:如果确实需要从公网访问,请考虑更安全的替代方案:
    • SFTP (SSH File Transfer Protocol):基于 SSH,通过端口 22 传输,所有数据都是加密的,您只需要在 OpenWrt 上安装 dropbearopenssh-server 即可,无需额外安装服务器软件,在文件管理器中使用 sftp://user@host 访问。
    • FTPS (FTP Secure):FTP over SSL/TLS,这需要为 vsftpdProFTPD 配置 SSL 证书,配置更复杂,但安全性远高于普通 FTP。
  3. 定期更改密码:为您的 FTP 用户设置一个强密码,并定期更换。
  4. 限制用户权限:始终为 FTP 服务创建一个独立的、权限受限的用户,绝对不要使用 root 用户。

通过以上步骤,您应该就能成功在 OpenWrt 上搭建一个功能完善的 FTP 服务器了,对于绝大多数家庭用户来说,vsftpd 是最佳选择

分享:
扫描分享到社交APP
上一篇
下一篇