admin管理员组

文章数量:1538978

文章目录

    • 前言
    • 1 参考文献
    • 2 环境
    • 3 详细实践过程
      • 3.1 安装vsftpd
      • 3.2 配置vsftpd
      • 3.3 设置安全组
      • 3.4 在本地电脑上连接云服务器的ftp服务
    • 4 遇到的问题
    • 5 格外要注意的事项:
    • 6 其他参考文献

前言

今天向阿里云提交了工单,问题是:“想将云服务器中的数据(大约300G)从云服务器中导出或者下载到本地电脑。”,工程师在40min后给出了一个解决方案,在此实践一下,顺便记录一下过程。

1 参考文献

  • 手动搭建FTP站点(CentOS 7)

2 环境

我的服务器是:

  • Ubuntu 14.04

3 详细实践过程

3.1 安装vsftpd

在服务器上打开终端:

#安装vsftpd
sudo apt-get install vsftpd

#安装systemctl 
sudo apt-get install --reinstall systemd

#设置开机自启动,以及启动FTP服务
sudo systemctl enable vsftpd.service
sudo systemctl start vsftpd.service
sudo systemctl status  vsftpd.service

#查看FTP监听的端口
sudo netstat -antup | grep ftp

出现如下图所示界面,表示FTP服务已启动,监听的端口号为21。此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。

参考:

  • systemctl: command not found on ubuntu 14.04 如何安装systemctl

3.2 配置vsftpd

配置本地用户访问FTP服务器:

#创建用户
sudo adduser ftpt
# passwd ftptest 可以修改密码

sudo mkdir -p  /var/ftp/test

#修改拥有者
sudo chown -R ftpt:ftpt /var/ftp/test 

#看下配置文件在哪
whereis vsftpd

#修改配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bk
sudo nano /etc/vsftpd.conf

在末尾添加内容如下:

##added
local_root=/var/ftp/test
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pasv_enable=YES
allow_writeable_chroot=YES
pasv_address=<服务器公网ip地址>
pasv_min_port=50000
pasv_max_port=50010

#添加下列参数
#设置本地用户登录后所在目录
local_root=/var/ftp/test
#全部用户被限制在主目录
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=<port number>
#设置被动模式下,建立数据传输可使用的端口范围的最大值
pasv_max_port=<port number>

说明 建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。

#白名单
sudo mkdir -p /etc/vsftpd/
sudo nano /etc/vsftpd/chroot_list

#重启vsftpd服务
sudo service vsftpd restart 
#或者
sudo systemctl restart vsftpd.service

3.3 设置安全组

参考:

我的对应设置:

3.4 在本地电脑上连接云服务器的ftp服务

参考:

也可以win + E,在弹出来的文件夹上方输入:
ftp://<FTP服务器公网IP地址>:21

4 遇到的问题

然而,我遇到了一个问题,会弹出登陆框,但是就是访问不了服务器的ftp目录。无法访问。

后来研究了很久也没找到办法。然后在阿里云提交了工单,让工程师帮忙看了看。发现是没有在安全组放行端口:

匿名模式下的端口也要放行… 我失策了。

然后就可以正常访问了。但是好像只能下载文件???太坑了。

研究了一下,发现在win+E登陆的时候,可以直接copy文件夹,太6了,这样就好起来了。

另外:我在/etc/vsftpd/chroot_list白名单里面放了三个用户,都是云服务器上的用户:

apr
ftpt
root

5 格外要注意的事项:

我试了好几个ftp连接工具:

  • 1)浏览器;
  • 2)windows自带文件管理系统
  • 3)windows的cmd
  • 4)FileZilla
  • 5)Xshell自带的XFtp

前两个非常不稳定,很容易出错。
第三个只有命令行,不太方便操作
后两个很稳。

此外还有很多坑,困扰了我很久,最后大概都懂了,比如:重启ftp服务,在Ubuntu14.04系统下不要用sudo systemctl restart vsftpd.service,而是用sudo service vsftpd restart。 这个还是挺难想到的。

附上一些对话:

人生如梦,一樽还酹江月!

6 其他参考文献

  • FTP的搭建和使用

本文标签: 服务器阿里数据电脑拷贝到