Linux系统搭建本地FTP后,无法登录怎么解决?

上周有个客人问我怎么设置FTP服务,让他本地账户能登录。
我告诉他是这样操作的:
首先,你得在服务器上执行命令 getsebool -a | grep ftp,这样就能找到 ftp_home_dir>off 这一行。
然后,你把后面的 off 改成 on,用命令 setsebool -P ftp_home_dir=1 来实现。

设置完之后,别忘了重启服务器。
这样,本地账户就可以登录FTP服务了。
反正你看着办吧,记得测试一下哦。
我还在想,是不是每次都需要重启服务器,有没有什么更简便的方法呢?

如何linux 安装ftp服务器

上周有个客户问我在Linux上怎么搭FTP服务器,我给他们录了个小视频,顺便总结下步骤。
不过你要注意,我用的命令是CentOS的,Debian可能得改改。

先说说查服务。
我一般习惯用rpm -qa | grep vsftpd,这个更直接。
如果没装,就会看到提示"package vsftpd is not installed"。
然后直接yum install vsftpd -y,装完记得systemctl start vsftpd和systemctl enable vsftpd,确保开机自启。
这一步我去年在上海的机房教新人时,有个哥们把-y忘了,结果yum一直卡在那儿,最后重启了系统...
装完要改配置。
用vim /etc/vsftpd/vsftpd.conf打开配置文件。
在里面找到anonymous_enable=YES这一行,改成anonymous_enable=NO。
这个很重要,默认匿名登录是开的,谁都能上来下载文件,风险太高。
改完后保存退出(:wq)。

然后查下服务状态。
用systemctl status vsftpd,如果显示"active (running)"就说明启动了。
要是没启动,先看下journalctl -u vsftpd查查日志错哪儿了。
启动失败的话,systemctl restart vsftpd通常能解决问题。

用户创建这块最坑我的是密码。
用useradd jingyan创建用户,然后passwd jingyan设置密码。
注意输入两次确认密码,别只输一次。
有个朋友第一次用中文设置密码,结果连不上,说服务器只认英文。
后来改用英文密码就好了。

最后一步重启服务。
用systemctl restart vsftpd。
重启后,你用ftp localhost连一下,如果直接登录就成功了。
记得把防火墙的FTP端口(通常是2 1 )放行,不然连不上。

不过有件事我不太确定,就是创建用户后,这个用户能上传文件吗?我记得默认是只能下载的。
你最好用chown -R jingyan /var/ftp把根目录权限改一下试试。
反正上次我踩过这个坑,把其他用户的文件都删光了...
你按这个顺序试试?不行我再想想。

Linux系统怎么安装FTP和登陆使用

说白了,在Linux上装FTP服务器,最坑的是第一步就搞错了权限。

展开讲,先说最重要的,你直接yum install vsftpd,大概率会提示找不到命令。
这特么复杂在Linux系统默认的软件源里可能没装yum工具,得先sudo apt update或者手动挂载RPM源。
去年我们跑那个项目,有个新装的系统,光顾着装vsftpd,结果发现yum命令都不存在,硬是花了两小时用wget下载rpm包,说实话挺坑的。
另外一点,装完之后别急着操作,得用/sbin/service vsftpd restart重启服务,不然连不上。
这个点很多人没注意,以为装完就绪了。
还有个细节挺关键的,FTP默认是被动模式,你直接连可能打不开,得改下配置文件,比如把Port 2 1 改成4 0000。

我一开始也以为装完就能直接用open连,后来发现不对,得先输入用户名密码登录,不然直接open 1 2 7 .0.0.1 就是报错。

操作指令这块,ls、cd这些跟Linux差不多,但有个坑:用get下载大文件时,要是没加-c参数,传输中断了还得重新传。
我们上次有个项目,下载一个3 GB的日志,没加-c,网络一抖直接重传了半小时。
建议用mget批量下载时也加-c,效率高。

最后提醒个容易踩的坑:装FTP时,如果用普通用户权限执行yum install,可能会因为权限不够导致服务启动失败。
必须root装,或者sudo装。