搭建ftp服务器
因为我最近想玩一下云服务器,发现要搭建服务。
然后我又发现如果要用 filezilla 去连接服务器上传文件,就必须要要先给服务器搭个ftp服务。于是 ,我又用 xshell 连接云服务器,搭建vsftpd服务。
这里我使用买的centos7的系统,
我顺便去看了下系统的版本:
[root@iZm5e718ve5m3erz7v65ozZ etc]# cat redhat-release CentOS Linux release 7.6.1810 (Core) [root@iZm5e718ve5m3erz7v65ozZ etc]# cat /proc/version Linux version 3.10.0-957.21.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019
这里补充个知识点:
/etc/redhat-release 和 /etc//proc/version 的区别?
/etc/rehat-release文件下保存的Redhat版本/发行版本
/etc//proc/version 中保存的是Linux内核的版本
1、安装vsftpd服务
yum install -y vsftpd
2、设置开机自启动(根据自身需求来)
systemctl enable vsftpd
3、开启vsftpd服务
systemctl start vsftpd
4、查看服务是否开启
netstat -antup | grep ftp
显示如下即可:

5、 创建用户登录ftp的用户(为啥要创建,你接着看后面,辛酸泪啊)
创建用户:
useradd ftpuser
给刚刚创建的用户ftpuser设置密码:
passwd ftpuser
创建 FTP 服务使用的文件目录:
mkdir /data/ftp
修改目录权限:
chown -R ftpuser:ftpuser /var/ftp/test
6、配置vsftpd.config文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES allow_writeable_chroot=YES local_root=/data/ftp write_enable=YES
重启服务即可。
systemctl restart vsftpd
ps:如果没啥问题的话,这里用客户端filezilla连上,大家就皆大欢喜了。但生活总是这样,喜欢给人创造亿点点惊喜,so,我们接着来:
后面我搭建好了一直连不上

原来是因为vsftpd服务的配置文件中有两个文件中的用户是不能直接登录ftp的,而root用户就在那两个文件中。所以,如果要使用root登录,要么删除文件,要么去文件里删除root,或者重新创建一个专用登录ftp的用户
[root@iZm5e718ve5m3erz7v65ozZ vsftpd]# cat /etc/vsftpd/ftpusers # Users that are not allowed to login via ftp root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody
[root@iZm5e718ve5m3erz7v65ozZ vsftpd]# cat /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody
然后我选择在增加一个用于ftp登录的用户,ftpuser。 这里其实如果是自己弄着玩的,或者是嫌麻烦的,可以直接在我上面说的两个文件里,用vim命令打开,然后给root前面加上#注释掉就可以了。
连接不上,尝试在服务器本地连接,也是一直在报错:-bash: ftp: command not found
找百度,发现是因为Linux没有安装ftp命令。要手动安装
yum -y install ftp
可以连接了,但是又报错了:530 Login incorrect.
[root@iZm5e718ve5m3erz7v65ozZ vsftpd]# ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) Name (127.0.0.1:root): ftpuser 331 Please specify the password. Password: 530 Login incorrect. Login failed.
又是重复,莫得感情的搜索机器,巴拉巴拉,long times。。。。
终于把这个给解决了,大哭.jpg
原来是IP给输错了:
ftp 127.0.01
改成
ftp 127.0.0.1
就对了,这种低级错误竟然费了我几个小时的时间。
本地测试后,终于可以连上了
filezilla还是连不上,然后我xx(此处消音)发现我选错了连接的协议,应该选择 SFTP协议,这个我目前不知道是什么原因

连接后.................
又又又报错了,如下:
状态: Using username "ftpuser".
命令: Pass: ********
状态: Connected to 47.105.137.248
错误: FATAL ERROR: Received unexpected end-of-file from SFTP server
错误: 无法连接到服务器
又百度,找到了一位大佬,天啦,终于解决了!!生活不易
解决办法如下:
1、 vi编辑/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
2、找到如下一行代码(可以使用:?查找)# Subsystem sftp /usr/lib/openssh/sftp-server
替换Subsystem sftp internal-sftp
3、重启sshdservice sshd restart
附上大佬的链接:https://blog.csdn.net/wm9028/article/details/79463509
最最最后就是,我连上了服务器!!!

浙公网安备 33010602011771号