搭建 FTP 文件服务vsftpd
安装并启动 FTP 服务
安装 VSFTPD
使用 yum 安装 vsftpd:
yum install vsftpd -y
vsftpd是在 Linux 上被广泛使用的 FTP 服务器,根据其[官网介绍][https://security.appspot.com/vsftpd.html],它可能是 UNIX-like 系统下最安全和快速的 FTP 服务器软件。
启动 VSFTPD
安装完成后,启动 FTP 服务:
service vsftpd start
启动后,可以看到系统已经[监听了 21 端口]:
netstat -nltp | grep 21
此时,访问 ftp://<您的 CVM IP 地址> 可浏览机器上的 /var/ftp 目录了。
FTP 协议默认使用 21 端口作为服务端口
配置 FTP 权限
目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限
了解 VSFTP 配置
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
- vsftpd.conf 为主要配置文件
- ftpusers 配置禁止访问 FTP 服务器的用户列表
- user_list 配置用户访问控制
阅读上述配置以了解更多信息。如果您准备好了,点击下一步开始修改配置来设置权限。
阻止匿名访问和切换根目录
匿名访问和切换根目录都会给服务器带来[安全风险],我们把这两个功能关闭。
编辑 /etc/vsftpd/vsftpd.conf,[找到下面两处配置]并修改:
# 禁用匿名用户
anonymous_enable=NO
# 禁止切换根目录
chroot_local_user=YES
编辑完成后,按 Ctrl + S 保存配置,重新启动 FTP 服务,如:
service vsftpd restart
匿名访问让所有人都可以上传文件到服务器上而无需鉴权,而允许切换根目录则可能产生越权访问问题。
在代码编辑器中,用
Ctrl + F进行搜索,Mac 用户用Cmd + F进行搜索
创建 FTP 用户
创建一个用户 ftpuser [?]:
useradd ftpuser
为用户 ftpuser 设置密码 [?]:
echo "Password" | passwd ftpuser --stdin
为了方便后面的实验步骤,不建议使用其它的用户名
下面命令中的密码为实验室为您生成,为了方便后面的实验步骤,不建议使用其他密码
限制该用户仅能通过 FTP 访问
限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器:
usermod -s /sbin/nologin ftpuser
为用户分配主目录
为用户 ftpuser 创建[主目录]并约定:
/data/ftp 为主目录, 该目录不可上传文件
/data/ftp/pub 文件只能上传到该目录下
mkdir -p /data/ftp/pub
创建登录欢迎文件 [?]:
echo "Welcome to use FTP service." > /data/ftp/welcome.txt
设置访问权限:
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub
设置为用户的主目录:
usermod -d /data/ftp ftpuser
用户的主目录是用户通过 FTP 登录后看到的根目录
方便用户登录后可以看到欢迎信息,并且确定用户确实登录到了主目录上。
准备域名和证书
注:如果您不需要通过域名访问 FTP 服务器则可以直接点击“已完成,下一步”跳过域名和证书的准备环节
域名注册
域名解析
ping www.yourdomain.com
如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。
注意替换下面命令中的
www.yourmpdomain.com为您自己的注册的域名
访问 FTP 服务
FTP 服务已安装并配置完成,下面我们来使用该 FTP 服务
访问 FTP 服务
根据您个人的工作环境,选择一种方式来访问已经搭建的 FTP 服务
通过 Windows 资源管理器访问
Windows 用户可以复制下面的[链接]到资源管理器的地址栏访问:
ftp://ftpuser:Password@<您的 CVM IP 地址>
通过 FTP 客户端工具访问
FTP 客户端工具众多,下面推荐两个常用的:
- WinSCP - Windows 下的 FTP 和 SFTP 连接客户端
- FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac
下载和安装 FTP 客户端后,使用下面的凭据进行连接即可:
[主机]:
用户:
ftpuser
密码:
Password
如果能够正常连接,那么大功告成,您可以开始使用属于您自己的 FTP 服务器了!
接下来,请上传任意一张图片到您的 FTP 服务器上的pub目录下,然后,就可以在 /data/ftp/pub 中看到了。
注意: 请不要直接上传文件到根目录下,您应该选择上传到 pub 目录下
如果您申请了域名,可以将链接中的 Ip 地址替换为对应的域名访问 FTP 服务
如果您申请了域名,可以将Ip 地址替换为对应的域名作为访问凭据
大功告成
常用错误:
1. 解决方法 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
vsftp出现550 Failed to change directory.错误分析
出现上面的错误分析
/etc/vsftpd/vsftp.conf
文件发现
修改下面2条记录:
# users to NOT chroot().
chroot_list_enable=NO
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
之后问题解决。
或者
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
在/etc/vsftpd/chroot_list
故障解决方案一:
Server sent passive reply with unroutable address 172.18.202.164, using host address instead.
监测到超时!
无法获得目录列表
Entering Passive Mode (172,18,202,164,78,195)
列出'/'的目录项时出错。

搭建 FTP 文件服务vsftpd的更多相关文章
- 腾讯云-搭建 FTP 文件服务
搭建 FTP 文件服务 目的:搭建认证登录的FTP具有读写权限 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...
- 腾讯云,搭建 FTP 文件服务
腾讯云,搭建 FTP 文件服务 腾讯云,搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...
- 基于 Ubuntu 搭建 FTP 文件服务
搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 apt-get 安装 vsftpd: sudo apt-get install vsft ...
- 腾讯云:ubuntu搭建 FTP 文件服务
搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 apt-get 安装 vsftpd: sudo apt-get install vsft ...
- 基于CentOS 搭建 FTP 文件服务
系统要求: CentOS 7.2 64 位操作系统 一. 安装 VSFTPD (vsftpd 是在 Linux 上被广泛使用的 FTP 服务器,根据其[官网介绍][https://security.a ...
- 使用FileZilla快速搭建FTP文件服务
为了便于平时对文件的存储访问,特意搭建FTP服务 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. F ...
- 搭建 FTP 文件服务
1.安装并启动 FTP 服务 2.配置 FTP 权限 3.准备域名和证书 4.访问 FTP 安装 VSFTPD 使用 yum 安装 vsftpd: yum install vsftpd -y vsft ...
- Linux CentOS安装搭建FTP文件服务
本文环境:centos7,IP=192.168.1.11 1.安装vsftpd和默认配置启动 1.1 安装vsftpd yum install -y vsftpd 1.2 启动vsftpd syste ...
- 基于 CentOS 搭建 FTP 文件服务
https://www.linuxidc.com/Linux/2017-11/148518.htm
随机推荐
- 把UIView转成UIImage,解决模糊失真问题
近期工作中,遇到一个需求,须要把一个UIView对象转成UIImage对象显示.经过网络搜索.找到例如以下答案: ? 1 2 3 4 5 6 7 8 -(UIImage*)convertViewToI ...
- date 增加一个小时 减少一个小时
# date -s `date -d -1hour +%T`
- Python+Django+js+echarts引入本地js文件的操作方法
1. 选择正确的echarts.js,开发版选择echarts.baidu.com上的源码版,避免出现问题 2. 在项目主目录中新建static文件夹,里面建立js.css.images文件夹 3. ...
- python3打印26个英文字母
for a in range(ord('a'), ord('z') + 1): print(chr(a) , end="") for a in range(ord('A'), or ...
- Idea2016配置并破解jrebel
http://blog.csdn.net/my_chen_suo_zhang/article/details/72677772
- spark.Accumulator
scala> val accum = sc.accumulator() accum: org.apache.spark.Accumulator[Int] = scala> sc.paral ...
- Java项目中如何扩展第三方jar包中的类?
有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比 ...
- C语言 · 报时助手
基础练习 报时助手 时间限制:1.0s 内存限制:512.0MB 锦囊1 判断,字符串输出. 锦囊2 按要求输出,判断特殊情况. 问题描述 给定当前的时间,请用英文的读法 ...
- kubernetes 数据持久化
pod本身是无状态,所以很多有状态的应用,就需要将数据进行持久化. 1:将数据挂在到宿主机.但是pod重启之后有可能到另外一个节点,这样数据虽然不会丢但是还是有可能会找不到 apiVersion: v ...
- HBase shell 命令。
HBase shell 命令. 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证( ...