共计 1770 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 服务器做迁移,从 AXX 云迁移到 Txx 云上,迁移的话,需要把图片服务器也迁移过去。之前使用的是 VSFTPD 这次也还用这个吧。这里就记录下 FTP 服务器安装及遇到的问题。 |
使用 yum 命令安装。安装命令如下:
yum -y install vsftpd
安装完成之后,会在 /etc 目录下多出一个 vsftp 目录。如下图:
我们知道,ftp 服务器,可能会提供出去 (虽然凯哥这里不会提供出去),给其他的三方人员使用,从数据及服务器安全角度来考虑,我们给 ftp 服务一个单独的用户。这个用户就是用来登录 ftp 服务器使用的。
用户可以任意。这里咱们就把这个用户叫 ftpuser 吧,Linux 添加用户的命令公式:useradd 用户名。那么,咱们就套用公式,对应的添加用户命令就是:
useradd ftpuser
给新添加的用户 ftpuser 添加密码。Linux 给某个用户添加密码的命令公式:passwd 用户名。所以,咱们套用这个添加用户的公式后命令就是:
passwd ftpuser
输入两次密码后,就修改密码成功了。
这样一用户就新建完成了。创建之后,就可以使用这个用户名及密码登录。登录后默认的访问路径就是:/home/ftpuser
因为这里使用的是云服务器,就找到对应的安全策略组,把 21 和 22 端口放开就可以了。
在对应的服务器详情中,找到安全组 A 某云 ) 或者找到防火墙 (T 某云),因为凯哥这里使用的是 T 某云。所以就如下图所示了。点击添加规则就可以了。
如果是自己本地的,可以把防火墙的 21 和 22 端口打开。这里就不赘述了。
一般是新服务器的话,selinux 是自动关闭的。没有开启状态。使用下面的命令:
getsebool -a |grep ftp
可以看到,SElinux isdisabled。
如果你的服务器上,SElinux 是开启的,可能会出现,外网可以访问,没目录返回,且也上传不了。这就是 SElinux 的原因。处理办法:
在执行完上面命令后,如果返回结果中,看到上图高亮的两个是 off 的话,就代表,没有开启外网访问。使用下面命令:
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
将这两个设置为 on。
关闭匿名访问权限
在 /etc/vsftpd/vsftpd.conf 文件中找到:anonymous_enable=YES。将这个 YES 修改成 NO。
修改之后,重启 ftp 服务。重启命令:
service vsftpd restart
这个被动默认是开启的。但是,被动的端口,可能是随机的。所以,我们需要给定一个端口范围。同样,在 vsftp.conf 文件中修改。在这个文件的最后面加上:
pasv_min_port=30000
pasv_max_port=30999
这个端口范围,可以随意给定,需要注意,1:不能和其他端口冲突;2:添加完成之后,记得重启 vsftp 服务。
因为新增加了端口范围,所以,同样需要在安全组策略或者防火墙将对应端口打开。
如果,你不行,服务器重启之后,FTP 服务就不能访问,或者每次重启服务器之后,都需要手动启动 VSFTPD 的话,可以将 VSFTPD 设置成随机启动的。使用命令:
chkconfig vsftpd on
以上几步操作完整之后,可以进行验证了。在 ftp 目录下添加一个 jpg 文件。然后通过 ip 或者是配置了 Nginx 反向代理的话,可以通过域名或者 Nginx 的 ip 访问试试。
①:使用代码上传
正常情况下,默认是 21 端口。如果 21 端口上传不了,你可以切换成 22 端口试试。
②:图片上传后,访问不了:
修改 /etc/vsftpd/ftpuser
ftpusers 里面是 ftp 默认拒绝的用户,如果要想系统用户,就把这个用户从 ftpusers 文件中删除。
在这里要注意,不要把 /etc/pam.d/vsftpd 里面的 deny 改成 allow,不然你自己建立的用户就会报 530 Login incorrect