阿里云无法连接FTP服务器
问题
在安装wordpress插件的时候,无法连接FTP服务器,发现阿里云ECS默认是没有安装ftp服务的
解决
参考官网教程安装vsftpd
步骤
1. root登录aliyun ssh
2. yum安装vsftpd
yum install -y vsftpd
3. 设置FTP服务开机自启动
systemctl enable vsftpd.service
4. 启动ftp服务
systemctl start vsftpd.service
5. 设定用户
-d
指向目录/home/ftpuser
,-g
创建用户组ftp,-s /sbin/nologin
禁止ftpuser用户登录SSH
useradd -d /home/ftpuser -g ftp -s /sbin/nologin ftpuser
为ftpuser设置密码
passwd ftpuser
更改/var/www目录的拥有者为ftpuser。
chown -R ftpuser:ftp /var/www
6. 修改vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
#除下面提及的参数外,其他参数保持默认值即可。
#修改下列参数的值
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#监听IPv4 sockets
listen=YES
#在行首添加#注释掉以下参数,关闭监听IPv6 sockets
#listen_ipv6=YES
#添加下列参数
#设置本地用户登录后所在目录
local_root=/var/www
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例公网IP
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值
pasv_max_port=60000
7. 添加 root为例外
vim /etc/vsftpd/chroot_list #
8. 重启
systemctl restart vsftpd.service
9. 添加安全组
自定义TCP, 21/21, 0.0.0.0/0
自定义TCP, 50000/60000, 0.0.0.0/0
- 谷歌浏览器访问:ftp://<FTP服务器公网IP地址>:21验证
FAQ
1. 外网无法访问可能为防火墙问题
ftp默认的端口为21,centos默认没有开启,则修改iptables文件
vi /etc/sysconfig/iptables
新增:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和关闭文件,重启防火墙:
service iptables restart
2. 登录后无法返回目录和上传文件,可能要设置selinux
查看selinux状态
getsebool -a | grep ftp
如果出现:
getsebool: SELinux is disabled
则需要先开启SELinux
出现allow_ftpd_full_access off
或者ftp_home_dir off
即没有开启外网访问
执行
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir off 1
重启vsftpd
systemctl restart vsftpd.service
- 文件开启权限
chmod 777 /var/www
- 偶现不成功,请在评论区讨论
参考
https://help.aliyun.com/document_detail/92048.html
https://www.kancloud.cn/chandler/bc-linux/52710