前言

由于项目原因,需要做一个 docker 镜像文件(源代码方式制作),就需要有 Linux 环境提供镜像构建,这途中就需要 windows 和 linux 来回的拷贝传输文件,于是就找了一个工具【FileZilla】来使用,奇怪的是 ftp 竟然连接失败,为了解决这个问题,顺便做个笔记。

软件环境

  • Ubuntu Server 20.04 lts
  • Windows 10 专业工作站版 21H1
  • FileZilla v3.7.3

错误现象

在这里插入图片描述
命令: open “xxx@192.168.xx.xxx” 21
错误: Network error: Connection refused
错误: 无法连接到服务器
状态: 正在等待重试…
状态: 正在连接 192.168.xx.xxx:21…
响应: fzSftp started

注释:linux server 是一个中间件部署环境,此处顺便做个docker 镜像构建环境

解决办法

此处网络环境是ok的,下面是解决步骤:

  • 安装 VSFTP
  1. 打开终端,在 linux server 环境上面安装一个 ftp 服务【vsftpd】,输入:sudo apt-get install vsftpd
    在这里插入图片描述
  2. 使用以下命令启动并启用该服务:
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
    在这里插入图片描述
  3. 检查 ftp 服务是否开启,输入命令:sudo /etc/init.d/vsftpd status(显示active(running)即为开启状态)
    在这里插入图片描述
  4. 创建FTP用户
    为了方便使用,我们为 ftp 服务创建一个用户,让后可以将该用户提供给其他需要的人员使用(并且在服务器上没有用户帐户)。这可以被视为通用FTP使用的帐户。您可以随时创建更多,服务器上具有用户帐户的任何人都可以通过FTP进行登录。
    4.1创建 ftpuser,输入命令:sudo useradd -m ftpuser
    4.2设置用户密码,输入命令:sudo passwd ftpuser
    在这里插入图片描述
  5. 修改VSFTP配置文件,输入命令:sudo vim /etc/vsftpd.conf
    默认只需要开启 write_enable=YES 即可。修改配置参数后重启服务,输入命令:sudo systemctl restart vsftpd

【vsftpd.conf 配置】全部可选参数说明:

listen=NO
listen_ipv6=YES
anonymous_enable=NO #是否允许匿名访问
local_enable=YES #是否允许服务器本地登录
# write_enable=YES #是否允许对ftp文件上传和修改,默认是被注释掉,如果你需要用户上传文件,就将#去掉即可,见下文
#local_umask=022
#anon_upload_enable=YES #是否允许匿名用户上传文件,创建文件夹,默认被注释掉
#anon_mkdir_write_enable=YES #是否允许匿名创建目录,默认是被注释掉
dirmessage_enable=YES #目录信息
use_localtime=YES #文件列表的上传时间
xferlog_enable=YES #上传下载的日志
connect_from_port_20=YES #ftp连接的端口,不要改
#chown_uploads=YES #切换文件上传的目录,小心,这个操作可以会被用户误操作,建议别改
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log #默认的上传下载文件的日志存放路径,不用改,要查看日志见本文最后面
#xferlog_std_format=YES #日志格式
#idle_session_timeout=600 #会话的超时时间,默认10分钟
#data_connection_timeout=120 #设定单次最大的连续传输时间,这里使用默认
#nopriv_user=ftpsecure
#设定支撑vsftpd 服务的宿主用户为手动建立的vsftpd用户。
#async_abor_enable=YES
#设定支持异步传输功能

#ascii_upload_enable=YES
#ascii_download_enable=YES
# 设置ACII码文件上下传输

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
  • 准备 filezilla 客户端
    【filezilla 客户端】下载地址:https://filezilla-project.org/download.php?type=client#close
  1. 打开 filezilla 客户端,打开【文件】,选择【站点管理器】,点击【新站点】,协议处选择【FTP-文件传输协议】,主机中输入 ubuntu ip 地址,用户名和密码输入创建的ftp 用户和密码,点击连接即可。
    在这里插入图片描述

注意:ftp 默认是 21 端口,关闭防火墙 或者 开放 21 端口

查看端口占用,输入命令:lsof -i:21
在这里插入图片描述
查看防火墙状态,输入命令:ufw status
此处 Status: inactive 是关闭状态。
在这里插入图片描述
以上就是 ftp 服务连接 linux server 的解决办法,希望能帮到更多的小伙伴。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐