FTP服务搭建(linux)
一、下载(在线安装可跳过)
1、下载(见网盘)
下载服务端 vsftpd:下载地址
下载客户端 ftp
注:如果需要使用ftp命令,则客户端必须安装,否则无法使用(-bash: ftp: command not found)
二、安装
1、检查是否已经安装了vsftp
首先查看系统中是否成功安装了vsftpd,执行下面命令(有内容则安装了ftp)
rpm -qa | grep vsftpd
2、开始安装
- 在线安装
yum install vsftpd -y
- 若linux处于离线状态则无法使用yum命令安装
离线下载vsftp:
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)上传安装包到服务器,放在安装目录,比如/home/ 下离线安装
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
安装过程可能会报错,缺少依赖:
解决:安装相关依赖(centos7 的最新依赖包在博客资源里,可自行去下载)
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm
检查是否安装成功
rpm -qa | grep vsftpd
服务启动
systemctl start vsftpd.service
三、配置
1、进入cd /etc/vsftpd目录
cd /etc/vsftpd
2、编辑vsftpd.conf文件
养成备份的好习惯cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.backup.confvim vsftpd.conf
修改如下:
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#本地用户上传文件的umask
local_umask=022
#设置本地用户登录后所在目录
local_root=/home/vsftpd/ftpuser
#全部用户是否被限制在主目录
#如果设置成YES会导致你用java代码创建文件夹时失败,因为他被限制在了宿主目录
#chroot_local_user=YES
#开启被动模式
pasv_enable=YES
pasv_addr_resolve=YES
#FTP服务器公网IP(也就是当前阿里云服务器的公网 IP)
pasv_address=120.xx.xx.xx
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=10000
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=10088#是否在进入新目录时显示 message_file 文件中的内容
dirmessage_enable=YES
#启用日志
xferlog_enable=YES
#日志是否进行格式化
xferlog_std_format=YES
#独立服务
listen=YES
#centos7增加此设置,开启后默认监控ipv4和ipv6
listen_ipv6=NO
#认证模式
pam_service_name=vsftpd
#启用用户列表
userlist_enable=YES
#可以上传(全局控制)
write_enable=YES
#允许下载
download_enable=YES
3、创建ftp用户
这里主要需要创建的用户无法使用普通登录功能或者telnet,只允许使用ftp登录
useradd -s /sbin/nologin -d /home/vsftpd/ftpuser ftpuser
4、为用户设置密码
passwd ftpuser
5、将该用户加入到用户列表中(可选)
vi /etc/vsftpd/user_list
6、防火墙设置
# 方法一:关闭防火墙
systemctl stop firewalld# 方法二:开放端口
# 提示:防火墙iptables是centos7之前的服务,centos7开始是firewalld服务,开放端口流程请自行百度。另外注意云服务器需要在云平台上设置安全组开放端口
开启
# iptables -I INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
# iptables -I OUTPUT -o eth0 -p tcp --sport 20 -j ACCEPT
保存
# /etc/rc.d/init.d/iptables save
重启防火墙
# service iptables restart
7、修改selinux,将SELINUX改为disabled
SELINUX=disabled
8、设置自启
chkconfig vsftpd on
9、服务重启
systemctl restart vsftpd.service其他命令#开启
service vsftpd start
#停止
service vsftpd stop
#重启
service vsftpd restart
四、测试
安装ftp客户端后,可以进行测试。230代表连接成功
#连接ftp服务 [root@fan102 ~]# ftp 172.16.1.102 21 Connected to 172.16.1.102 (172.16.1.102). 220 (vsFTPd 3.0.2) Name (172.16.1.102:root): zion 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit 221 Goodbye.
windows使用FileZilla可以测试ftp是否可以登录
linux或mac使用命令
sftp 用户名@地址登录
注:如果登录出现提示331 Please specify the password,执行下面命令即可:
echo "/sbin/nologin" >> /etc/shells
设置ftp用户只能在自己目录中,这里有两种方式
第一种:
chroot_local_user=YES #设置是否锁定本地用户在自己的主目录中,将所有用户限定在主目录内(登录后无法cd到父目录或同级目录中)
chroot_list_enable=YES #设置是否将用户锁定在自己的主目录中 ,YES表示要启用chroot_list_file
chroot_list_file=/etc/vsftpd/chroot_list #定义哪些用户将会锁定在自己的主目录中,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
第二种:
chroot_local_user=NO #NO则所有用户不被限定在主目录内
chroot_list_enable=YES #YES表示要启用chroot_list_file
chroot_list_file=/etc/vsftpd/chroot_list #因为chroot_local_user=NO,这时列出的是那些“会被限制在主目录下”的用户。
五、登录失败
1.错误代码:530
530 Login incorrect
#查看日志
tail /var/log/secure
日志内容:pam_unix(vsftpd:auth): authenticatio,pam_unix(vsftpd:auth): check pass pam_unix(vsftpd:auth): authentication failure,logname= uid=0
原因
这个是因为你创建的用户是不需要登陆的你设置了nologin
,然后登陆的时候会去/etc/passwd
下面检查这个用户,必须为/etc/shells
类型才能登陆。
解决
#第四行 设置为nologin,或者注释掉
#修改配置文件
[root@fan102 ~]# vi /etc/pam.d/vsftpd
#第四行 设置为nologin,或者注释掉
1 #%PAM-1.0
2 session optional pam_keyinit.so force revoke
3 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
4 auth required pam_nologin.so
5 auth include password-auth
6 account include password-auth
7 session required pam_loginuid.so
8 session include password-auth
2.错误代码:500
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
原因:用户没有变更根目录的权限,ftp用户默认的根目录是/home/vsftpd/ftpuser
,如果要切换登陆目录,需要给予权限
解决
第一步:
#修改配置文件
vi /etc/vsftpd/vsftpd.conf#内容如下
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
**第二步:**在/etc/vsftpd/vsftpd
创建chroot_list
并将用户(ftpuser
)加入该文件
#创建chroot_list并将用户加入该文件
[root@fan102 ~]# /etc/vsftpd/vsftpd/chroot_list
#文件内容
ftpuser
FTP服务搭建(linux)相关推荐
- 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)
详解FTP服务完成Linux和WIN10之间的信息传输(实验详解) 一.FTP简介 1. FTP服务--用来传输文件的协议 2.端口 3.数据连接模式 二.相关配置 1.安装FTP服务 2.设置匿名用 ...
- FTP服务搭建小白教程
前言: 完成FTP服务搭建,实现局域网内所有用户电脑 可连接FTP服务 如 局域网内 所有用户电脑 都可以用 通过 此链接 ftp://10.14.152.150:21 链接到FTP服务器了 前期准备 ...
- linux下FTP服务搭建(1)
1.FTP介绍: FTP (File Transfer Protocol,文件传输协议)主要用来文件传输,尤其适用于大文件传输,提供上传下载功能 FTP官方网站:https://filezilla-p ...
- 【FTP】FTP服务搭建
基本介绍: FTP是文件传输协议的缩写,基于网络来传输文件的应用层协议. FTP支持两种模式:Standard(PORT方式,主动方式),Passive(PASV,被动方式). Port模式: FTP ...
- FTP服务搭建与配置 (资源)
2019独角兽企业重金招聘Python工程师标准>>> FTP介绍 • FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Inter ...
- FTP服务搭建与配置
FTP介绍 大企业多使用自动化发布程序,例如:git等工具 使用vsftpd搭建ftp 安装vsftpd: yum install -y vsftpd 创建一个普通的系统用户: useradd -s ...
- linux下ftp服务教案,linux下ftp服务
Linux ftp命令的一般格式如下: $ ftp 主机名/IP 其中"主机名/IP"是所要连接的远程机的主机名或IP地址.在命令行中,主机名属于选项,如果指定主机名,ftp将试图 ...
- FTP服务搭建(ftpd、pure-ftpd、vsftpd)
1.简介: FTP(File Transfer Protocol)文件传输协议,用于控制网络文件双向 2.方式: FTP支持两种模式:Standard (PORT方式,主动方式),Passive (P ...
- windows server 2016下FTP服务搭建教程图文详解
一.什么是FTP? FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件. 接下来我给大家分享快速搭建FTP服务器的方法. 二.安 ...
最新文章
- MySQL 性能优化,索引和查询优化
- idea删除后能还原吗_热水管能过100度热水吗
- 人生致命的8个经典问题,你也常常犯傻
- MySQL 删除数据的最好的方式
- 聊一聊顺序消息(RocketMQ顺序消息的实现机制)
- Windows右键添加command(命令行)
- iText的一些总结
- DSSM模型的原理简介,预测两个句子的语义相似度
- 基础IT必备知识(一)
- java实现汽车租赁系统
- 混合 html5蓝牙打印小票怎么排版,蓝牙打印机打印小票项目版
- 美国无人机技术及相关项目
- OIS利率查询_图表加数据OIS隔夜基准利率掉期
- php网站扫描工具,网站目录文件扫描工具dirbuster
- 那李逵是穿山度岭 水浒
- 全面认识Scratch少儿编程
- Python socket 基于TCP协议智能门锁服务端
- 谜语大全及答案api调用实现
- 杭州儿童居住证续签(时间+入口)
- python 字节流分段_由Python历史「解密」Python底层逻辑