搭建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、重启sshd
service sshd restart

附上大佬的链接:https://blog.csdn.net/wm9028/article/details/79463509

 

最最最后就是,我连上了服务器!!!

 

posted @ 2020-09-24 20:04  不安于世  阅读(128)  评论(0)    收藏  举报