温馨提示×

Linux vsftp防火墙设置:如何允许FTP流量

小樊
40
2025-12-29 20:22:44
栏目: 智能运维

在Linux系统中,使用vsftpd作为FTP服务器时,需要正确配置防火墙以允许FTP流量

  1. 首先,确保已经安装了vsftpd。如果没有,请使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install vsftpd
    

    对于基于RPM的系统(如CentOS):

    sudo yum install vsftpd
    
  2. 配置vsftpd。使用文本编辑器打开/etc/vsftpd/vsftpd.conf文件。例如,使用nano编辑器:

    sudo nano /etc/vsftpd/vsftpd.conf
    

    确保以下设置已启用(删除或注释掉前面的#):

    local_enable=YES
    write_enable=YES
    chroot_local_user=YES
    allow_writeable_chroot=YES
    

    保存并关闭文件。

  3. 重启vsftpd服务以应用更改:

    sudo systemctl restart vsftpd
    
  4. 配置防火墙。这里以iptables为例,允许FTP流量。首先,允许FTP标准端口21的TCP流量:

    sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    

    其次,允许FTP数据传输端口范围(通常是20和动态分配的端口)。编辑/etc/sysctl.conf文件,添加或修改以下行:

    net.ipv4.ip_local_port_range = 1024 65535
    

    然后,应用更改:

    sudo sysctl -p
    

    最后,允许FTP数据传输端口的TCP流量:

    sudo iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
    
  5. 如果您使用的是firewalld作为防火墙,可以使用以下命令允许FTP流量:

    首先,允许FTP标准端口21的TCP流量:

    sudo firewall-cmd --permanent --add-port=21/tcp
    

    其次,允许FTP数据传输端口范围(通常是20和动态分配的端口)。由于firewalld不支持直接添加端口范围,我们需要添加一个自定义的服务。创建一个名为ftp.xml的新文件,包含以下内容:

    <?xml version="1.0" encoding="utf-8"?>
    <service>
      <short>FTP</short>
      <description>FTP service</description>
      <port protocol="tcp" port="21"/>
      <port protocol="tcp" port="1024-65535"/>
    </service>
    

    将此文件保存到/etc/firewalld/services/目录下。

    然后,重新加载firewalld配置并启用自定义FTP服务:

    sudo firewall-cmd --reload
    sudo firewall-cmd --permanent --add-service=ftp
    sudo firewall-cmd --reload
    

现在,您的Linux系统应该已经允许FTP流量通过防火墙了。请确保客户端使用正确的IP地址、用户名和密码连接到FTP服务器。

0