最近一直在弄云服务器,这里总结一下 ftp
的配置以及遇到的问题。
首先在本地远程连接服务器,windows 和 Mac 的方法不一样,需要分别配置,都比较简单。
- windows 下载
xshell
配置就可以 - Mac 下直接使用终端就可以连接,输入
ssh <用户 root>@<主机 ip 地址>
然后输入密码就可以,例如ssh root@0.0.0.0
这里注意,需要提前在阿里云的服务器控制台中配置 ssh
的安全组,如下图。
然后就可以在本机使用终端控制服务器了。
接下来按照下面的步骤操作
安装
$ yum install -y vsftpd
查看目录
$ cd /etc/vsftpd && ls
-
/etc/vsftpd/vsftpd.conf
是核心配置文件。 -
/etc/vsftpd/ftpusers
是黑名单文件,此文件里的用户不允许访问 FTP 服务器。 -
/etc/vsftpd/user_list
是白名单文件,是允许访问 FTP 服务器的用户列表。
设置开机自启动
$ systemctl enable vsftpd.service
开启服务
$ systemctl start vsftpd.service
查看 ftp 的端口
$ netstat -antup | grep ftp
接下来修改配置文件 /etc/vsftpd/vsftpd.conf
,来支持用户的修改和上传功能
$ vim /etc/vsftpd/vsftpd.conf
修改如下配置
- write_enable=YES
写权限
- anon_upload_enable=YES
匿名上传权限
然后更改 /var/ftp/pub
目录的权限,为 FTP 用户添加写权限,并重新加载配置文件
$ chmod o+w /var/ftp/pub/
$ systemctl restart vsftpd.service
接下来配置本地用户登录
创建用户
$ useradd ftpxiaoming
修改用户 ftpxiaoming
的密码
$ passwd ftpxiaoming
然后再次修改配置文件 /etc/vsftpd/vsftpd.conf
$ vim /etc/vsftpd/vsftpd.conf
配置如下
-
anonymous_enable=NO
是否允许匿名登录 FTP -
local_enable=YES
是否允许本地用户登录 FTP
重新加载配置
$ systemctl restart vsftpd.service
vsftpd.conf
的配置文件参数说明
用户登录控制:
参数 | 说明 |
| 接受匿名用户 |
| 匿名用户login时不询问口令 |
| 匿名用户主目录 |
| 接受本地用户 |
| 本地用户主目录 |
用户权限控制:
参数 | 说明 |
| 可以上传(全局控制) |
| 本地用户上传文件的umask |
| 上传文件的权限配合umask使用 |
| 匿名用户可以上传 |
| 匿名用户可以建目录 |
| 匿名用户修改删除 |
| 匿名上传文件所属用户名 |
然后在阿里云设置安全组,端口为 21
,授权对象 0.0.0.0/0
下面我们下载一个 ftp
的软件测试一下,例如 filezilla
先根据前面配置的用户名和密码设置站点
然后连接,这里可能会报错 服务器返回了不可路由的地址,使用服务器地址代替
如下设置
- 左上角:设置——连接——FTP——被动模式,修改为“退回到主动模式”。
- 打开站点管理器,将【传输设置】选择为“主动”。
- IIS 新增 FTP 站点,可查阅论坛其它帖子。(可搜索帮助文档:[font=PingFangSC, "]云服务器 ECS Windows Server 通过 IIS 配置 FTP)
- 检查阿里云安全组规则是否配置了
21
端口
然后再次连接就可以了