前言
由于项目原因,需要做一个 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
的,下面是解决步骤:
1、安装 VSFTP
1.1 打开终端,在 linux server
环境上面安装一个 ftp
服务【vsftpd
】,输入如下命令:
sudo apt install vsftpd
1.2 使用以下命令启动并启用该服务:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
1.3 检查 ftp
服务是否开启,输入命令:
sudo /etc/init.d/vsftpd status
# 显示active(running)即为开启状态
1.4 创建 ftp
用户
为了方便使用,我们为 ftp
服务创建一个用户,让后可以将该用户提供给其他需要的人员使用(并且在服务器上没有用户帐户)。这可以被视为通用FTP使用的帐户。您可以随时创建更多,服务器上具有用户帐户的任何人都可以通过FTP进行登录。
- 创建
ftpuser
,输入命令:
sudo useradd -m ftpuser
- 设置用户密码,输入命令:
sudo passwd ftpuser
1.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
2、准备 filezilla
客户端
【filezilla 客户端】下载地址:https://filezilla-project.org/download.php?type=client#close
2.1 打开 filezilla
客户端
打开【文件】,选择【站点管理器】,点击【新站点】,协议处选择【FTP-文件传输协议】,主机中输入 ubuntu ip
地址,用户名和密码输入创建的 ftp 用户和密码,点击连接即可。
注意:ftp 默认是 21 端口,关闭防火墙 或者 开放 21 端口
2.2 查看端口占用,输入命令:
lsof -i:21
2.3 查看防火墙状态,输入命令:
ufw status
此处 Status: inactive
是关闭状态。
以上就是 ftp
服务连接 linux server
的解决办法,希望能帮到更多的小伙伴。