说实话,很多人第一次接触Linux系统时,最头疼的就是文件传输。Windows上拖拽复制习惯了,到了Linux命令行下反而不知道怎么把文件传上去或者拿下来。FTP服务就是在Linux上架设一个文件中转站,让你能像访问本地文件夹一样远程存取文件。
FTP服务安装起来麻烦吗
不麻烦,真的不用被命令行吓到。Linux下最常用的FTP服务软件叫vsftpd什么是linux,它的名字就是“Very Secure FTP Daemon”的缩写,主打一个安全轻量。安装它基本上就是一条命令的事。

以CentOS或者Red Hat系的系统为例linux ftp服务 使用,打开终端输入yum install vsftpd -y,几秒钟就装好了。Ubuntu或者Debian系的系统就用apt install vsftpd -y。装完以后,服务默认是关闭的,需要手动启动一下:systemctl start vsftpd。想让服务器重启后FTP也自动运行,记得加上systemctl enable vsftpd。
安装过程中基本上不会遇到什么报错,除非你的软件源没配好。如果下载速度慢,可以换个国内的镜像源,比如阿里云或者清华的源,速度能快很多。
配置文件在哪改

vsftpd的配置文件在/etc/vsftpd/vsftpd.conf,这个文件就是整个FTP服务的控制中心。用vim或者nano打开它,你会看到密密麻麻的配置项,但大部分都被注释掉了,真正生效的其实没几行。
新手最容易卡住的是权限问题。默认配置下,vsftpd只允许匿名用户登录,而且只能下载不能上传。如果你想用自己的系统账号登录,需要找到anonymous_enable=YES这一行,把YES改成NO,然后找到local_enable=YES,确保它前面没有注释符号#。这两处改完,就能用系统里的用户名和密码登录FTP了。
还有一个关键配置是write_enable=YES,这个默认是注释掉的,需要手动开启。不打开它的话,即使登录进去也只能看文件,没法上传和删除。另外,local_umask=022这个值决定了你上传文件的默认权限,保持022就行,这样上传的文件其他人可读但不可写。

改完配置文件后,别忘记重启服务:systemctl restart vsftpd。不然改了半天,服务还是老样子。
登录时提示连接不上怎么办
这个问题十有八九是防火墙在捣乱。Linux默认的防火墙firewalld或者iptables会把FTP的端口挡在外面。FTP默认用21号端口做控制连接,数据连接还会用到随机的高端口。最简单的办法是直接关闭防火墙测试一下:systemctl stop firewalld。如果关掉防火墙就能连上,那就可以把21端口放行。

永久放行端口的命令是:firewall-cmd --add-port=21/tcp --permanent,然后firewall-cmd --reload让规则生效。如果你用的是云服务器,还得去云服务商的控制台里,把安全组的21端口也打开。很多人忘了这一步,本地防火墙配好了,结果连不上,最后发现是云平台的安全组没开端口。
另外还有个坑是SELinux,这个安全模块默认会限制FTP的读写操作。检查一下getenforce的输出,如果是Enforcing模式,可以临时改成Permissive模式测试:setenforce 0。如果改成Permissive后问题消失,那就去/etc/selinux/config里把SELINUX改成disabled,或者用命令调整FTP相关的布尔值。
怎么让FTP更安全
FTP天生就是明文传输,用户名和密码在网络里裸奔,所以生产环境里最好搭配SSL/TLS使用。vsftpd支持隐式SSL和显式SSL两种方式。配置起来也不复杂linux ftp服务 使用linux 命令,先准备好SSL证书,可以用Let’s Encrypt免费申请,也可以用openssl自签一个。

在配置文件里添加这几行:ssl_enable=YES、allow_anon_ssl=NO、force_local_data_ssl=YES、force_local_logins_ssl=YES,然后指定证书路径:rsa_cert_file=/etc/ssl/certs/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pem。重启服务后,客户端连接时必须勾选“使用显式TLS”或者“要求隐式FTP over TLS”,否则连不上。
如果你觉得FTP还是不够安全,可以考虑用SFTP代替,它基于SSH协议,不需要额外搭建服务,只要系统开启了SSH就能用。但SFTP的命令行操作和FTP不太一样,有些图形化工具也不支持,学习成本稍微高一点。
FTP服务虽然古老,但在内网传输、临时文件共享这类场景下依然非常好用。装好、配好、跑起来,你就拥有了一个随时可用的文件通道,不管是上传网站代码,还是备份数据库,都变得简单直接。
